使用 Java 客户端检测 Prometheus 指标

alx*_*xbx 0 java prometheus

我想知道是否可以使用 Java 客户端从 Prometheus 收集所有指标?

例如 Go 指标、主机指标等。

如果是,是否可以像在 HTTP api 上一样查询这些指标?

ahu*_*us1 5

您能否澄清一下:“检测”通常意味着将应用程序代码中的指标暴露给 Prometheus 端点。问题是您想要从应用程序或已经抓取指标的 Prometheus 实例中读取指标。

对于这个答案,我假设您正在运行一个已经抓取了指标的 Prometheus 实例。

如果您想读取 Prometheus 从应用程序中抓取的最新值,您可以通过 HTTP 使用Prometheus 的联合端点:您可以一次性读取所有指标及其当前读数,或应用查询。我不知道有哪个 Java 库可以解析该格式,但您可以在此处找到定义。您可以使用相同的方法直接查询您的应用程序。

如果您想接收可能更容易解析的 JSON,可以使用Prometheus 的 HTTP API

如果您希望在 Prometheus 查询值时立即接收值的更新,您可以连接到远程写入 API。已经存在集成,但乍一看还没有 Java 集成。您可以使用 Kafka 作为中介。另外,这可能比您在这个问题中要求的更多。