【问题标题】:Relabelling in prometheus在普罗米修斯中重新标记
【发布时间】:2019-09-20 21:16:32
【问题描述】:

我在复制 Kafka 的现有指标后尝试重新标记,仅用于以下匹配

Kafka_log_size{partition=“1”, topic=“ab_bc_cd_12345_ef_001”,} 10

我希望输出为: Kafka_log_size{partition=“1”,主题=“ab_bc_cd_12345_ef_001”,} 10 Kafka_log_size_uniq{partition=“1”, uniq=“12345”,} 10

通过阅读多篇文章,这似乎可以通过重新标记来实现。但不知道如何入手请指教。谢谢

【问题讨论】:

  • 我正在检查更多选项,是否可以输出为:Kafka_log_size{partition=“1”, topic=“ab_bc_cd_12345_ef_001”, uniq=“12345”, } 10

标签: grafana prometheus promql


【解决方案1】:

您有两个选项可以在 Prometheus 中重新标记您的指标:

在这两种情况下,您都需要有一个与topic 标签的内容相匹配的正则表达式并提取您需要的内容。

在配置中重新标记

在您为 Kafka 抓取的工作中,您必须匹配要替换的指标名称和 use relabeling config

metric_relabel_configs:
  - source_labels: [topic] 
    regex: '[a-z_]+_([0-9]+)_.*'
    action: replace
    target_label: uniq
    replacement: $1

然后添加一个规则来删除标签

  - regex: 'topic'
    action: droplabel

在请求中重新标记

使用标签替换生成新标签:

label_replace(Kafka_log_size, "uniq", "$1", "topic", "[a-z_]+_([0-9]+)_.*")

然后,应用aggregation operator 删除不需要的标签:

max(label_replace(Kafka_log_size, "uniq", "$1", "topic", "[a-z_]+_([0-9]+)_.*")) without(topic)

【讨论】:

  • 谢谢迈克尔,我尝试了重新标记请求,它成功了。我想尝试你提到的第一个选项,所以我可以在配置 yaml 文件中一个接一个地编写重新标记配置规则?
猜你喜欢
  • 1970-01-01
  • 2022-12-02
  • 2020-01-10
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2022-12-11
  • 2021-11-25
相关资源
最近更新 更多