Включение поиска медленного входа в ElasticSearch

Как включить медленный поиск в логе упругого поиска.

Я использую ES версию 5.2

Я попытался запустить приведенную ниже команду, но, похоже, это не работает. Кажется, ничего не записано в файл.

PUT /articles-dev-19-06-2017-15-20-48/_settings
{
"index.search.slowlog.threshold.query.warn": "10s",
"index.search.slowlog.threshold.query.info": "5s",
"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",
"index.indexing.slowlog.threshold.index.warn": "10s",
"index.indexing.slowlog.threshold.index.info": "5s",
"index.indexing.slowlog.threshold.index.debug": "2s",
"index.indexing.slowlog.threshold.index.trace": "500ms",
"index.indexing.slowlog.level": "trace",
"index.indexing.slowlog.source": "100"
}

Вот настройки по индексу

{
  "articles-dev-19-06-2017-15-20-48": {
    "settings": {
      "index": {
        "search": {
          "slowlog": {
            "threshold": {
              "fetch": {
                "warn": "1s",
                "trace": "200ms",
                "debug": "500ms",
                "info": "800ms"
              },
              "query": {
                "warn": "10s",
                "trace": "500ms",
                "debug": "2s",
                "info": "5s"
              }
            }
          }
        },
        "indexing": {
          "slowlog": {
            "level": "trace",
            "threshold": {
              "index": {
                "warn": "10s",
                "trace": "500ms",
                "debug": "2s",
                "info": "5s"
              }
            },
            "source": "100"
          }
        },
        "number_of_shards": "2",
        "provided_name": "advice-articles-dev-19-06-2017-15-20-48",
        "creation_date": "1497885649676",

2 ответа

Решение

Может быть, запросы, которые вы выполняете, не достаточно медленные, чтобы их регистрировать. - Вы можете изменить настройки на 1 мс и посмотреть, поможет ли это. Я попробовал эти настройки, и у меня это сработало.

Попытка с некоторым случайным подстановочным запросом:

{"query": {"bool": {"must": {"wildcard": {"message": "* 123 *"}}}}}

Операции Elasticsearch часто выполняются в микросекундах. Поэтому они не будут захвачены даже вашими самыми агрессивными настройками.

Чтобы проверить это, вы должны установить свои настройки предупреждений на 0 секунд, которые будут ловить все:

PUT /articles-dev-19-06-2017-15-20-48/_settings
{"index.search.slowlog.threshold.query.warn": "0s",
"index.search.slowlog.threshold.fetch.warn": "0s",
"index.indexing.slowlog.threshold.index.warn": "0s"
}

Проверьте ваши журналы после этого. Если они начнут заполняться, вы будете знать, что это работает.

После того, как вы довольны тем, что он работает, просто установите для него значение, которое вы хотите использовать в течение длительного времени. Пример:

PUT /articles-dev-19-06-2017-15-20-48/_settings
{"index.search.slowlog.threshold.query.warn": "10s",
"index.search.slowlog.threshold.fetch.warn": "10s",
"index.indexing.slowlog.threshold.index.warn": "10s"
}
Другие вопросы по тегам