ES有request时间99分位监控吗?

Hello大家好, 我是最近刚开始接触ES, 之前用过Lucene和Solr, 最近在把公司的Solr替换为ES.
我们现在的监控是用prometheus社区提供的elasticsearch-exporter将ES的admin/metrics接口提供的系统运行信息记录到prometheus里. 然后我发现貌似ES的admin/metrics接口并没有提供查询的99分位时间信息.
之所以问这个问题是因为我知道Solr是有这个指标的.

在Solr的文档里有以下描述:

p99_ms: Request processing time in milliseconds for the request 
which belongs to the 99th Percentile. E.g., if 100 requests are 
received, then the 99th fastest request time will be reported 
in this statistic.

https://solr.apache.org/guide/8_11/performance-statistics-reference.html

Solr的这个p99应该是core级别的(也就是对应的一个完整lucene索引), 用ES的术语来说, 就是每个shard(primary and replica respectively).

如果确认ES自身没有提供这个指标的话我感觉那就只有三种思路能解决了:

  1. 自己想办法通过插件方式让ES支持统计99分位, 然后自己改exporter, 这个不知道是否能实现.
  2. 从外部调用系统去统计, 比如加个网关.
  3. 另外做个日志系统, 把所有的ES日志收集下来, 把response里的took time记录下来, 然后自己做统计.
    哪种思路靠谱一些? 更适合ES?

这个问题之前我发在英语的版块里过, 可能因为我表达的不清晰, 没得到回复, 所以来中文版块再重新问下.英文版块提问的连接:

是否可以尝试:开启 ES 的自监控,自监控的数据会存在 ES 的索引里,然后如果你需要做某个指标的 p99 的运算的话,就可以从 es 里面直接做了,然后从 es 的查询里直接取走数据 ,而不需要使用Elasticsearch-exporter。

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.