Prometheus - JMX:为什么 Prometheus 不通过 JMX 端口提取信息而不是要求在目标系统上安装 Jar?

Prometheus - JMX: Why doesn't Prometheus pull information via JMX port instead of requiring installation of a Jar on the target system?

我是普罗米修斯的新手。我正在寻找方法来监视不附带 Prometheus 支持但附带 JMX 的应用程序服务器。

此类应用程序提供一些配置以启用通过 JMX 端口的连接。

为什么 Prometheus 需要将 Prometheus 特定的 jar 放在目标系统上(java-agent 的东西)?它可以只连接到 JMX 端口并提取它需要的任何信息。

Prometheus 的目标不是在一个二进制文件中支持所有可能的应用程序——太多了。取而代之的是大约 500 家出口商充当翻译者,Prometheus 可以专注于它最擅长的事情。

在 JMX Exporter 的 Github 页面上找到了答案:

This exporter is intended to be run as a Java Agent, exposing a HTTP server and serving metrics of the local JVM. It can be also run as an independent HTTP server and scrape remote JMX targets, but this has various disadvantages, such as being harder to configure and being unable to expose process metrics (e.g., memory and CPU usage). Running the exporter as a Java Agent is thus strongly encouraged.