Prometheus 标签语法是如何工作的?

Posted

技术标签:

【中文标题】Prometheus 标签语法是如何工作的?【英文标题】:How does Prometheus labeling syntax works? 【发布时间】:2021-08-31 02:35:56 【问题描述】:

我是 Prometheus 的新手,我有一个非常基本的问题。

向我的指标添加标签的语法是什么? 我尝试了以下方法:

1. Gauge.build().name(name).labelNames("label"="someLabel").help(helpMsg).register(registry);
2. Gauge.build().name(name).labelNames(label=someLabel).help(helpMsg).register(registry);
4. Gauge.build().name(name).labelNames("someLabel").help(helpMsg).register(registry);

文档说字符串值,我试过了...

有人吗?

【问题讨论】:

【参考方案1】:

您的问题缺乏帮助回答的有用细节。

我假设您使用的是 Java SDK。

这是文档的链接:

https://github.com/prometheus/client_java#labels

看来你应该使用:

g = Gauge.build()
  .name(name)
  .labelNames("someLabel")
  .help(helpMsg)
  .register(registry);

然后,当您更新仪表 (g) 时,您需要指定标签值:

g
  .labels("someLabelValue")
  .set(...);

【讨论】:

我试过了。虽然我在 Prometheus 指标列表中看到了我的指标,但我没有看到标签出现 更新了我的答案......当你例如Set Gauge 的值,你也需要设置标签值。 我明白了...谢谢 DazWilkin!

以上是关于Prometheus 标签语法是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

prometheus问题赏析-填坑的心路历程

Prometheus 中的高基数标签有多危险?

Prometheus-PQL

如何在 Prometheus/Grafana 中不指定标签的情况下通过唯一标签计算指标数量?

如何查询 Prometheus 中所有具有特定标签值的时间序列?

如何使用 Grafana 警报显示 Prometheus 标签