如何在Prometheus中仅为特定Istio指标保留criticality标签?
你的配置逻辑搞反了——现在是先给所有指标加上criticality标签,然后把目标指标的这个标签删掉,完全和需求相反。
要实现只给istio_request_duration_milliseconds_bucket和istio_requests_total这两个指标添加criticality标签,推荐用带条件匹配的replace动作,直接只给符合条件的指标赋值标签:
- action: replace # 同时取注解值和指标名称作为源标签 sourceLabels: - __meta_kubernetes_pod_annotation_fire_layout_criticality - __name__ # 正则匹配:注解值任意,指标名称是指定的两个之一 regex: '(.+);(istio_request_duration_milliseconds_bucket|istio_requests_total)' targetLabel: criticality # 提取注解值作为标签值 replacement: '$1'
如果习惯先给所有指标加标签再清理,也可以这么写:
# 先给所有指标添加上criticality标签 - action: replace sourceLabels: [__meta_kubernetes_pod_annotation_fire_layout_criticality] targetLabel: criticality # 然后移除非目标指标的criticality标签 - action: labeldrop regex: criticality # 匹配所有不是目标指标的名称 sourceLabels: [__name__] regex: '^(?!istio_request_duration_milliseconds_bucket$|istio_requests_total$).*'
两种方式都能实现需求,第一种更高效,避免多余的标签操作。
内容的提问来源于stack exchange,提问作者Dylan
相关产品推荐
相关产品推荐

