Docker 使用来自普罗米修斯的容器度量
我在集群上部署了普罗米修斯以及卡迪维瑟和格拉法纳。它工作得非常好。我在Grafana的用户界面上获得了所需的所有数据。 为了使用这些数据,我开始使用Prometheus Java API。例如,获取CPU使用率,如果它具有某个值,则将执行某些操作 我在Grafana上显示的是每个容器的容器CPU使用情况。现在,如果可能的话,我想通过JavaAPI获得这些信息(如果不可能的话,我想做些什么)。但是当然,PromQL查询在Java程序中是不可用的(根据我的尝试,我可能错了) 我想到了几种方法:Docker 使用来自普罗米修斯的容器度量,docker,docker-swarm,prometheus,Docker,Docker Swarm,Prometheus,我在集群上部署了普罗米修斯以及卡迪维瑟和格拉法纳。它工作得非常好。我在Grafana的用户界面上获得了所需的所有数据。 为了使用这些数据,我开始使用Prometheus Java API。例如,获取CPU使用率,如果它具有某个值,则将执行某些操作 我在Grafana上显示的是每个容器的容器CPU使用情况。现在,如果可能的话,我想通过JavaAPI获得这些信息(如果不可能的话,我想做些什么)。但是当然,PromQL查询在Java程序中是不可用的(根据我的尝试,我可能错了) 我想到了几种方法: 克
- 克隆cAdvisor项目并直接实现我想在Go中执行的操作
- 使用docker stat命令创建一个bash脚本,以获取相关的容器和CPU使用情况
- 或者可能实际上有一种方法可以发送PromQL查询。 例如,我们通过Java或Prometheus接口按名称获取度量:
node\u cpu
会给我一些数据。
但是如果我想要更精确的东西,我需要发送一个请求,例如irate(node_cpu{job=“prometheus”}[5m])
,这是通过Java无法实现的
有什么方法可以让我获得更精确的指标吗?普罗米修斯支持REST API请求,这与语言无关。您只需要在查询中发送HTTP请求并处理响应 请参见下面的示例,从他们的站点复制 以下HTTP GET请求:
http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z
返回如下内容:
{
"status" : "success",
"data" : {
"resultType" : "vector",
"result" : [
{
"metric" : {
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
"value": [ 1435781451.781, "1" ]
},
{
"metric" : {
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9100"
},
"value" : [ 1435781451.781, "0" ]
}
]
}
}
更多细节