我想知道是否可以使用Java客户端从Prometheus收集所有指标?
例如Go指标,主机指标等。
如果是,是否可以像在HTTP api上一样查询这些指标?
答案 0 :(得分:2)
请您澄清一下:“工具化”通常意味着将度量标准从应用程序的代码公开到Prometheus端点。该问题表明您是要从应用程序中读取指标,还是要从已经抓取指标的Prometheus实例中读取指标。
对于这个答案,我假设您正在运行的Prometheus实例已经抓取了指标。
如果您想读取Prometheus从应用程序中抓取的最新值,则可以通过HTTP使用Prometheus' federation endpoint:您可以一次性读取所有具有其当前读数的指标,也可以进行查询。我不知道有Java库可以解析格式,but you find the definition here.您可以使用相同的方法直接查询应用程序。
如果您想接收可能更易于解析的JSON,则可以使用Prometheus's HTTP API。
如果您想在Prometheus查询值时立即接收值的更新,则可以连接到remote write API。已经存在现有的集成,但是乍一看还没有Java集成。您可以使用Kafka作为中介。另外,这可能比您在此问题中要求的要多。