Solr 7/8中avgRequestsPerSecond与avgTimePerRequest指标查询及启用问题
解答:Solr 7/8中获取avgTimePerRequest和avgRequestsPerSecond指标的方法
我刚好对Solr的metrics系统比较熟悉,帮你梳理下这个问题:
核心原因:Solr 7+重构了Metrics系统
在Solr 6及更早版本中,avgTimePerRequest和avgRequestsPerSecond是作为单独的MBean指标暴露的,但从Solr 7.x开始,官方重构了metrics采集逻辑,不再单独提供这两个指标,而是通过基础metrics的计算值来替代,目的是减少重复计算、降低内存占用——这也正好契合你开发轻量Golang版exporter的需求😉
如何从现有metrics中得到目标指标
你已经能通过/solr/admin/metrics接口拿到的那些字段,其实已经包含了你需要的信息,直接映射即可:
- avgTimePerRequest:对应返回结果里的
mean_ms字段,这个值就是所有请求的平均耗时(单位:毫秒),完全等价于旧版本的avgTimePerRequest。 - avgRequestsPerSecond:对应返回结果里的
meanRate字段,这个值的单位是「请求/秒」,代表从Solr实例启动到当前的平均QPS。如果需要滑动窗口的QPS(比如最近1分钟、5分钟、15分钟),可以直接使用1minRate、5minRate、15minRate字段。
举个实际返回的例子帮你对应:
{ "count": 120, "meanRate": 3.0, // 这就是你要的avgRequestsPerSecond(平均每秒3个请求) "1minRate": 2.8, "5minRate": 2.5, "15minRate": 2.2, "mean_ms": 33.3, // 这就是你要的avgTimePerRequest(平均每个请求33.3毫秒) "median_ms": 30.0, ... }
是否需要手动启用?
不需要!这些metrics是Solr默认启用的,你能通过/solr/admin/metrics接口拿到返回结果,就说明metrics采集已经正常工作了,不需要额外配置任何开关。
内容的提问来源于stack exchange,提问作者HoanTV
相关产品推荐
相关产品推荐

