[英]PromQL change label value (not name) into a specific metric in all TSDB
我想使用來自 metric rundeck_system_stats_uptime_since
的 PromQL 更改 Prometheus DB 中 label instance
的值(不是 label 名稱)。
我在攝取之前設法做到了這一點:
- source_labels: [__meta_kubernetes_pod_container_name,__meta_kubernetes_pod_container_port_number]
action: replace
separator: ":"
target_label: instance
所以我涵蓋了未來的指標,但我想對現有值( instance
label)執行此操作。
預期結果:
rundeck_system_stats_uptime_since{app="rdk-exporter", instance="rdk-exporter:9620", [...]}
因為它是 k8s 中的容器,所以我對該容器/主機/節點等的 IP 不感興趣,因為它總是在變化,我只對指標感興趣。
謝謝
您可以使用MetricsQL中的label_replace
你可以在 victoriametrics play中檢查它是如何工作的
所以例如我有三個指標
process_cpu_seconds_total{cluster_num="1"cluster_retention="1m"instance="play-1m-1-vmagent.us-east1-b.c.victoriametrics-test.internal:8429"job="vmagent"}
process_cpu_seconds_total{cluster_num="1"cluster_retention="accounting"instance="play-accounting-1-vmagent.us-east1-b.c.victoriametrics-test.internal:8429"job="vmagent"}
process_cpu_seconds_total{cluster_num="1"cluster_retention="admin"instance="play-admin-1-vmagent.us-east1-b.c.victoriametrics-test.internal:8429"job="vmagent"}
如果我將使用此查詢
label_replace(process_cpu_seconds_total{instance=~".*:8429"}, "instance", "some:$2", "instance", "(.*):(.*)")
我會得到下一個回應
process_cpu_seconds_total{cluster_num="1"cluster_retention="1m"instance="some:8429"job="vmagent"}
process_cpu_seconds_total{cluster_num="1"cluster_retention="accounting"instance="some:8429"job="vmagent"}
process_cpu_seconds_total{cluster_num="1"cluster_retention="admin"instance="some:8429"job="vmagent"}
其中實例將具有相同的主機。
希望此解決方案對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.