Aller au contenu

Log des slow queries de ElasticSearch

Dans une optique d'optimisation des performances, il est intéressant de log les slow queries afin de les optimiser si possible. Par défaut, rien n'est log :(

Les options sont propres à chaque index.

Il faut d'abord lister les index :

curl 127.0.0.1:9200/_cat/indices
green open insee_and_postal_codes                      qA2bya4sRpu4WHlK3W5jgA 5 0   35856      0  21.9mb  21.9mb
green open x_images_20210402185809                     oAY_xCe0QjqMhpKg6WTcCg 5 0  103208     97  52.3mb  52.3mb
green open x_search_results_20210402185209             ouWAT_bBQKOPVNqXhumCGA 5 0 1584142 169124 972.3mb 972.3mb

Puis on applique les seuils que l'on veut :

curl -X PUT "localhost:9200/x_search_results_20210402185209/_settings?pretty" -H Content-Type: application/json -d
{
  "index.search.slowlog.threshold.query.warn": "3s",
  "index.search.slowlog.threshold.query.info": "1s",
  "index.search.slowlog.threshold.query.debug": "2s",
  "index.search.slowlog.threshold.query.trace": "500ms",
  "index.search.slowlog.threshold.fetch.warn": "1s",
  "index.search.slowlog.threshold.fetch.info": "800ms",
  "index.search.slowlog.threshold.fetch.debug": "500ms",
  "index.search.slowlog.threshold.fetch.trace": "200ms"
}

Les logs seront dans /var/log/elasticsearch/ et les options propres aux slowlog dans le fichier log4j2.properties