我們希望從 Prometheus 服務器中獲取按特定標簽過濾的所有指標名稱。
第 1 步:使用以下查詢獲取所有指標名稱,所有指標名稱查詢成功。
curl -g 'http://localhost:9090/api/v1/label/__name__/values
第 2 步:使用以下查詢獲取按標簽過濾的所有指標名稱,但查詢仍回傳所有指標名稱。
curl -g 'http://localhost:9090/api/v1/label/__name__/values?match[]={job!="prometheus"}'
有人可以幫我通過 http 上的標簽過濾所有指標名稱嗎?謝謝
curl -G -XGET http://localhost:9090/api/v1/label/__name__/values --data-urlencode 'match[]={__name__=~". ", job!="prometheus"}'
@anemyte,仍然回傳所有結果。你能檢查一下查詢嗎
uj5u.com熱心網友回復:
雖然這乍一看似乎很簡單,但事實證明這是一件非常棘手的事情。
必須對
match[]引數及其值進行編碼。curl可以通過--data-urlencode論證做到這一點。編碼
match[]引數必須出現在 URL 中,而不是出現在application/x-www-form-urlencoded標題中(curl默認情況下放置編碼值)。因此,-G(大寫的!)鍵也是必需的。{job!="prometheus"}不是有效的查詢。它給出了以下錯誤:決議錯誤:向量選擇器必須至少包含一個非空匹配器
這是可能與此低效正則運算式選擇來克服:
{__name__=~". ", job!="prometheus"}。如果可能{job="foo"},最好將其替換為另一個選擇器(例如 )。
放在一起:
curl -XGET -G 'http://localhost:9090/api/v1/label/__name__/values' \
--data-urlencode 'match[]={__name__=~". ", job!="prometheus"}'
自從 Prometheus 發布v2.24.0.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396435.html
標籤:休息 卷曲 普罗米修斯 prometheus-alertmanager 普罗米修斯-java
