簡體   English   中英

使用Prometheus的容器指標

[英]Use Container Metrics from Prometheus

我將Prometheus以及cAdvisor和Grafana部署到了群集中。 它工作得非常好。 我在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實現的。

有沒有辦法讓我獲得更精確的指標?

Prometheus支持與語言無關的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" ]
         }
      ]
   }
}

還有更多細節, 在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM