Prometheus 按标签子字符串分组

2024-03-09

我正在尝试解决在 Prometheus 中按指标进行查询求和和分组的问题,其中分配给指标值的标签对于我的求和和分组要求是唯一的。

我有 ElasticSearch 索引的度量采样大小,其中索引名称标记在度量上。索引的命名如下,并放置在标签“index”中:

project.<projectname>.<uniqueid>.<date>

具体值如下所示:

project.sample-x.ad19f880-2f16-11e7-8a64-jkzdfaskdfjk.2018.03.12

project.sample-y.jkcjdjdk-1234-11e7-kdjd-005056bf2fbf.2018.03.12

project.sample-x.ueruwuhd-dsfg-11e7-8a64-kdfjkjdjdjkk.2018.03.11

project.sample-y.jksdjkfs-2f16-11e7-3454-005056bf2fbf.2018.03.11

因此,如果我在“index”标签中有简短版本的值,我就会这样做:

sum(metric) by (index)

但我想做的是这样的:

sum(metric) by ("project.<projectname>")

我可以在其中按“索引”标签的子字符串进行分组。如何通过 Prometheus 查询来完成此操作?我认为这可能可以使用 label_replace 作为组的一部分来解决,但我不能只看到如何“截断”标签值来实现此目的。

此致

拉斯·米兰德


虽然最好修复指标,但下一个最好的方法是使用metric_relabel_configs使用相同的技术这篇博文 https://www.robustperception.io/extracting-labels-from-legacy-metric-names/:

  metric_relabel_configs:
  - source_labels: [index]
    regex: 'project\.([^.]*)\..*'
    replacement: '${1}'
    target_label: project

然后你将拥有一个project您可以照常使用的标签。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prometheus 按标签子字符串分组 的相关文章

随机推荐