經過幾天的谷歌搜索,我一直無法找到答案。我有一個在 Marathon/Mesos 中運行的服務。我有一個 Prometheus 集群抓取指標。我的 Marathon 指標端口配置如下所示:{
"containerPort": 8081,
"hostPort": 0,
"servicePort": 31301,
"protocol": "tcp",
"labels": {
"metrics": "/metrics"
}}Prometheus,僅配置了樣板 marathon-sd 配置,成功找到了這個目標,但它隨后會監聽以下指標__address__ = [NodeIP]:31301:因此它使用服務端口而不是動態分配的主機端口偵聽主機的 IP,而服務端口僅對 Marathon-LB 重要。我知道 Marathon 將$PORT0容器中的環境變量定義為主機端口,但是我不知道如何從 Prometheus SD 配置訪問它,也不知道如何訪問 Marathon 動態配置的其他字段,例如Endpoints. 有沒有人有什么建議?我不能/不想分配一個靜態變量hostPort,因為我的容器數量多于集群中的物理節點數量,容器編排的意義就在于此。
1 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
這是Prometheus 中的一個已知錯誤:它使用servicePort
Marathon 應用程序定義屬性而不是那個hostPort
。它已在 v2.6.0 中修復。
- 1 回答
- 0 關注
- 178 瀏覽
添加回答
舉報
0/150
提交
取消