【发布时间】:2017-03-30 11:01:07
【问题描述】:
我在我的集群以及 cAdvisor 和 Grafana 上部署了 Prometheus。它工作得非常好。我在 Grafana 的 UI 上获得了我需要的所有数据。 我开始使用 Prometheus Java API 来使用这些数据。例如获取 CPU 使用率,如果它有一定的值,就会做一些事情。
我在 Grafana 上显示的是每个容器的容器 CPU 使用率。现在,如果可能的话,我想用 Java API 获取这些信息(或者如果没有的话)。但当然,PromQL 查询不能从 Java 程序中使用(根据我的尝试,但我可能错了)。
我想了几个办法:
- 克隆 cAdvisor 项目,直接在 Go 中实现我想做的事情
- 使用 docker stat 命令创建一个 bash 脚本,它可以让我获得相关的容器和 CPU 使用情况
- 或者也许实际上有一种方法可以发送 PromQL 查询。 例如,我们通过 Java 或 Prometheus 接口按名称获取指标:
例如:node_cpu 会给我一些数据。
但是如果我想要更精确的东西,我需要发送一个请求,例如irate(node_cpu{job="prometheus"}[5m]),这是通过 Java 无法实现的。
有没有办法让我获得更精确的指标?
【问题讨论】:
标签: docker docker-swarm prometheus