我正在制作Grafana仪表板,并希望有一个面板报告我们应用的最新版本。该版本在app_version
(比如)指标中报告为标签,如下所示:
app_version_updated{instance="eu99",version="1.5.0-abcdefg"}
我已经尝试了一些Prometheus查询,从这个时间序列的最新成员中提取版本标签作为字符串,但没有效果。
例如,查询
count(app_version_updated) by (version)
返回值为{version="1.5.0-abcdefg"}
的{{1}}元素。当在单个值面板中放入Grafana仪表板时,这不显示版本字符串,而是显示计数值(1
)。
如何构建返回版本字符串的Prometheus查询?
答案 0 :(得分:11)
我们最近添加了对在单个统计面板(https://github.com/grafana/grafana/issues/4740)中将系列名称显示为值的支持。所以你必须运行我们的每晚构建,直到我们发布4.0。
只需确保查询返回一个系列,您就可以使用" name"选项中的下拉列表中的值 - >然后你可以使用图例格式化来格式化字符串。 Ex {{job}}将返回" node"作为一个系列名称。
我希望这能回答你的问题。
答案 1 :(得分:2)
这对我有用。
label_values(my_metric{type= "xxx", another_label="xxx"},target_label)
答案 2 :(得分:2)
答案 3 :(得分:1)
Prometheus没有任何返回字符串的函数,你正在寻找的是Grafana singlestat能够显示标签值 - 遗憾的是它还不支持。
答案 4 :(得分:1)
我的答案试图详细说明卡尔的答案。我认为自2016年以来,GUI布局可能已经发生了一些变化,因此我花了一些时间才找到“名称”选项。
假设您具有以下指标:
# HELP db2_prometheus_adapter_info Information on the state of the DB2-Prometheus-Adapter
# TYPE db2_prometheus_adapter_info gauge
db2_prometheus_adapter_info{app_state="UP") 1.0
,您想显示标签app_state
的值。
请按照以下步骤操作:
db2_prometheus_adapter_info
)。 {{[LABEL]}}
标记(此处为{{app_state}}
)输入标签名称作为图例。“即时”设置的注意事项:此设置从范围查询切换为简化查询,仅返回度量标准的最新值(另请参见What does the "instant" checkbox in grafana graphs based on prometheus do?)。如果未激活,则一旦度量标准历史记录中的标签有多个不同的值,面板就会显示错误。对于“正常”指标,您可以通过在“值-统计”选项中选择“当前”来解决此问题。但是,这样做会阻止您显示标签值。
答案 5 :(得分:0)
我想从 Prometheus 中获取标签的所有各种值,并将其放入 Grafana 中的变量中。我使用这个简单的查询来填充我的变量下拉列表:
label_values(myLabelName)
这返回了预期的“value01”、“value02”等
答案 6 :(得分:0)
使用 grafana 8.0.3 对最新的 kube-prometheus-stack 进行的另一个更新。我仍然面临这个问题,对我来说,在条形仪表中我仍然遇到这个问题,在它只返回 1 个值的情况下,但有 2 个以上的值时,图例字段可以正常工作。
我的解决方案:
转到编辑面板,找到显示名称,输入
<块引用>${__field.labels.insertYourLegendValueHere}