簡體   English   中英

ECS 中 docker 任務的 Prometheus 指標抓取

[英]Prometheus metrics scraping of docker tasks in ECS

我在 ECS 中有多個集群,每個集群有多個服務,每個服務運行 1 個以上的任務。 每個任務在隨機端口上公開具有不同值的/metrics 我想做某種動態發現並廢棄這些指標(每個任務具有不同的端口和不同的 IP,因為它們在多個容器實例上運行),將來自同一服務的任務的指標組合在一起並使用 prometheus 廢棄它們。 我該怎么做?

我們遇到了同樣的挑戰,有兩種方法:

  1. 根據正在運行的任務標記EC2實例,然后根據標記在Prometheus中查找EC2實例。 當我們每個實例有一個任務時,這很有效,因為指標端口是已知的。 可能有多種方法可以擴展它並支持多項任務。
  2. 每個 EC2 實例運行一個任務,該任務用作在該實例上運行的所有任務的導出器。 它詢問 ECS,查找任務和每個任務的偵聽端口並抓取所有任務。 在 Prometheus 中,您可以找到集群中的所有 EC2 實例,並在每個實例中抓取此導出器。 顯然,您需要根據從中讀取的任務來標記指標。

如果我必須再做一次,我會考慮使用 Consul 來注冊任務並在 Prometheus 中發現它們。 如果你已經在使用 Consul,這個方向可能是一個很好的嘗試。

希望這可以幫助。

如果您不願意像 Consul 或 AWS 本地服務發現(參見https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/ )這樣的適當服務發現,您可以利用 Prometheus 文件服務發現以及查詢 AWS API、檢索所有必需信息並為 Prometheus 准備文件的服務。 可以在此處找到此類工具的一個示例: https : //pypi.org/project/prometheus-ecs-discoverer/ (由我基於另一個類似項目創建)。

暫無
暫無

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

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