設置
Prometheus節點導出器被註冊爲帶有各種標籤的consul代理的服務。提供給領事劑實施例的服務定義:在Prometheus中重新標記
{
"service":{
"id": "server-stats",
"name": "server-stats",
"tags": [
"a=1_meow",
"b=2_woof",
"c=3_moo",
"monkey"
],
"port": 9100,
"checks": [
{
"name": "Process #1",
"script": "/path/to/healthcheck/script.sh",
"interval": "5s"
}
]
}
}
普羅米修斯被設定爲尋找這個server-stats
服務,並使用由領事提供的配置(主機地址和端口)來從服務器刮統計信息。以上標籤在__meta_consul_tags
中以逗號分隔列表形式提供,可用於重新標記。
普羅米修斯重新貼標籤的配置:
relabel_configs:
- source_labels: [__meta_consul_tags]
separator: ','
#regex: '(.+)=(.+)'
regex: '([a-z_]+)=([a-z_]+|\d+)'
target_label: ${1}
replacement: ${2}
問題
我試圖揭露標籤普羅米修斯這樣我們就可以得到統計數據和基於標籤的圖表。考慮到上述服務配置,我希望每個度量標準除了Prometheus的內部標準外還有以下標籤: a=1_meow
,b=2_woof
,c=3_moo
並忽略monkey
,因爲它只是一個字符串。如果有需要=
的解決方案,我可以從我的標籤列表中刪除monkey
。上面所寫的relabel配置並沒有導致暴露任何標籤,似乎被忽略。運行日誌級別設置爲調試的Prometheus也不會產生任何結果。
相關的文檔
- https://prometheus.io/docs/operating/configuration/#%3Crelabel_config%3E
- https://www.robustperception.io/extracting-full-labels-from-consul-tags/
該鏈接已包含在我原始問題的相關文檔中。它沒有得到我所希望的。 – motomonger
鏈接完全覆蓋你想要做的事情,你需要以書面形式使用它 - 而不是你發佈的修改版本。 –
是的...我現在看到爲什麼需要做。我已經包括了我的理解以及我在回答中所做的工作。如果我在我的答案的某處出錯,請糾正我。 – motomonger