【发布时间】:2017-06-27 02:51:44
【问题描述】:
Solr 等几个基于 Java 的项目提供了两种获取指标的方法:
- 通过 Jolokia AND 读取 JMX mbeans
- 通过metrics REST apis读取指标
理论上,什么会更高效?
(假设现在是一个单节点集群)。
看来,基于 Jolokia 的指标可能性能更高,因为 Jolokia 进程不会像 Jetty 那样通过服务器的 Web 容器。相反,Jolokia 会在 java-process-to-java-process 级别获取 JMX 指标。 REST API 肯定更容易理解和解析。但是,它涉及进行将通过码头的 REST 调用,可能会为每个请求占用一个线程?等等等等。
Server ---> JMX ---> Jolokia ---> REST api of Jolokia
Server ---> REST api of Server itself
Jolokia 在这方面是否更轻量级?请注意,轻量级意味着对服务器的影响,而不是整体延迟。 metrics-fetch 调用应该尽可能减少对服务器的负担,metrics-fetch 调用的整体延迟实际上并不那么重要。
我们希望在其中一种方法之间进行选择,以每分钟从所有 Solr 节点查询指标并推送到 grafana。
对此有一些建议会很棒。
【问题讨论】: