1.开启慢查询日志
curl -X PUT "localhost:9200/my-index-000001/_settings?pretty" -H 'Content-Type: application/json' -d'
{
"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"
}
'
2. 查询时在header 传入 X-Opaque-ID (这里我建议设置项目名称,不需要粒度太细),这是一个查询标记,当出现慢查询日志时,会把这个ID打印在es服务器上的慢查询日志里,最新的es8.9 见文档
https://www.elastic.co/guide/en/elasticsearch/reference/8.9/api-conventions.html#x-opaque-id
当出现慢查询时,es会把这个opaque-id 打印在慢查询日志里,可以根据ID/表名/查询条件 定位是哪个业务组的、哪个项目、具体到哪一行代码用该表导致的慢查询。