当前位置: 首页 > 知识库问答 >
问题:

如何编写返回标签值的Prometheus查询?

孙渝
2023-03-14

我正在制作一个Grafana仪表盘,想要一个面板,报告我们的应用程序的最新版本。版本在app_version(say)度量中作为标签报告,如下所示:

app_version_updated{instance="eu99",version="1.5.0-abcdefg"}

我尝试了许多Prometheus查询,从这个时间序列的最新成员中提取作为字符串的版本标签,但没有效果。

例如,查询

count(app_version_updated) by (version)

返回值为1{version=“1.5.0-abcdefg”}元素。当将Grafana仪表板放在单个值面板中时,它不会显示版本字符串,而是显示计数值(1)。

如何构造返回版本字符串的Prometheus查询?

共有1个答案

曹铭晨
2023-03-14

我的回答试图详细阐述卡尔的回答。我假设自2016年以来GUI布局可能发生了一点变化,所以我花了while时间才找到“name”选项。

假设您有如下度量:

# 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的值。

请执行以下步骤:

  • 创建“SingleStat”可视化。
  • 转到“查询”选项卡:
    • 输入度量的名称(此处为db2_prometheus_adapter_info)。
    • 使用{{[label]}}符号(此处为{{app_state}})输入标签名称作为图例。
    • 激活“即时”选项。

    • 转到“可视化”选项卡:
      • 在“value-stat”下选择值“name”。

      关于“即时”设置的注意事项:此设置从范围查询切换到仅返回度量的最新值的简化查询(另请参见基于prometheus的grafana graphs中的“即时”复选框是做什么的?)。如果未激活,则当度量的历史记录中标签有多个不同的值时,面板将显示错误。对于“正常”度量,您可以通过在“value-stat”选项中选择“current”来解决这个问题。但在这里这样做会阻止显示标签值。

 类似资料:
  • 我想计算唯一标签值的数量。有点像 例如,如果我的度量“hello_info”有标签a和b,我想计算唯一a的数量。这里a=“1”、“2”、“3”的计数为3。

  • 我正在机器学习项目中使用和从对数据集中的标签(国家名称)进行编码。一切正常,我的模型运行良好。该项目将根据包括客户所在国家在内的许多特征(数据)对银行客户是否继续或离开银行进行分类。 当我想预测(分类)一个新客户(仅一个)时,我的问题就出现了。新客户的数据仍未预处理(即,国家名称未编码)。如下所示: 在我学习机器学习的在线课程中,讲师打开包含编码数据的预处理数据集,手动检查法国代码,并在中进行更新

  • 问题内容: 假设我有一个文件。我怎么写“你好” TAB“ alex”? 问题答案: 这是代码: 字符串的内部是水平制表符的转义序列。

  • 我有这样一个指标: 我想得到所有独特的标签值

  • 问题内容: 我有标签: 后面的代码: 和: 如何返回多个值?该标签仅显示单个值,但表中还有6个值。 问题答案: 试试这个: 当然,这 只是 一个示例,并不能完全解决您的问题,但是应该作为一个起点:)

  • 问题内容: 例如,我要创建一个可以返回任何数字(负数,零或正数)的函数。 但是,基于某些异常,我希望函数返回 有没有一种方法可以编写可以返回 或 的函数? 好的,因此收到了很多答复。我知道我只是在错误地解决问题,因此我应该在方法中使用某种异常。为了获得更好的答案,我将提供一些示例代码。请别取笑:) 问题答案: 不,您不能在Java中做到这一点。 您可以返回一个。通过返回一个对象,您可以从技术上返回