使用 Java 客户端检测 Prometheus 指标
Instrumenting Prometheus metrics with Java client
我想知道是否可以使用 Java 客户端从 Prometheus 收集所有指标?
例如 Go 指标、主机指标等
如果是,是否可以像在 HTTP api 上那样查询这些指标?
您能否澄清一下:"instrumenting" 通常意味着将应用程序代码中的指标公开给 Prometheus 端点。问题是您想要从应用程序或已经抓取指标的 Prometheus 实例中读取指标。
对于这个答案,我假设您是 运行 一个已经抓取指标的 Prometheus 实例。
如果您想读取 Prometheus 从您的应用程序中抓取的最新值,您可以使用 Prometheus' federation endpoint via HTTP: you can read all metrics with their current readings in one go, or apply a query. I'm not aware of a Java library to parse the format, but you find the definition here. 您可以使用相同的方法直接查询您的应用程序。
如果您想接收一个可能更容易解析的 JSON,您可以使用 Prometheus's HTTP API。
如果您想在 Prometheus 查询值时立即接收更新,您可以连接到 remote write API。已经存在集成,但乍一看没有 Java 集成。您可以使用 Kafka 作为中介。此外,这可能比您在此问题中要求的更多。
我想知道是否可以使用 Java 客户端从 Prometheus 收集所有指标?
例如 Go 指标、主机指标等
如果是,是否可以像在 HTTP api 上那样查询这些指标?
您能否澄清一下:"instrumenting" 通常意味着将应用程序代码中的指标公开给 Prometheus 端点。问题是您想要从应用程序或已经抓取指标的 Prometheus 实例中读取指标。
对于这个答案,我假设您是 运行 一个已经抓取指标的 Prometheus 实例。
如果您想读取 Prometheus 从您的应用程序中抓取的最新值,您可以使用 Prometheus' federation endpoint via HTTP: you can read all metrics with their current readings in one go, or apply a query. I'm not aware of a Java library to parse the format, but you find the definition here. 您可以使用相同的方法直接查询您的应用程序。
如果您想接收一个可能更容易解析的 JSON,您可以使用 Prometheus's HTTP API。
如果您想在 Prometheus 查询值时立即接收更新,您可以连接到 remote write API。已经存在集成,但乍一看没有 Java 集成。您可以使用 Kafka 作为中介。此外,这可能比您在此问题中要求的更多。