我想知道我是否可以使用普罗米修斯数据中的“信息”(https://github.com/prometheus/client_python#info)指标来显示grafana中的信息/数据。关于使用该指标,我尚未在网上找到任何有意义的示例。我已经检查了示例仪表板,但没有看到该指标的任何使用。我尝试使用上面的链接中的示例将数据发送到普罗米修斯:
from prometheus_client import Info, push_to_gateway, CollectorRegistry
regis = CollectorRegistry()
i = Info('my_build_version', 'Description of info')
i.info({'version': '1.2.3', 'buildhost': 'foo@bar'})
push_to_gateway('http://localhost:9091', job="Try_Info_metric", registry=regis)
任何人都可以在grafana中使用有意义的查询/图像吗?我试图查看是否可以将其显示为表格。
答案 0 :(得分:1)
我有一个build_info
度量标准,由所有看起来像这样的服务导出:
build_info{commit_id="42806c2f7f1e17a63d94db9d561d220f53d38ee0",commit_time="2019-11-16 13:53:46Z",build_time="2019-11-16 13:57:20Z",branch="v19.57.x",version="19.57.3",} 1.0
以及服务仪表板上的可用性图,显示有多少实例作为填充区域正在运行(加上应该运行的实例行数count(up{job="$job",env="$env"})
和警报阈值;仪表板定义了{{ 1}}和$job
模板变量),如下所示:
因此,我正在使用$env
标签(当该标签不可用时,例如对于测试部署,则使用Git version
)作为正在运行的实例计数的标签。
commit_id
最后得出的指标如下:
label_replace(
label_replace(
label_join(
sum without(instance) (
build_info{job="$job",env="$env"} # Take labels of `build_info`
* on(job, env, instance) group_left # Multiplied by `up`, for the actual value
up{job="$job",env="$env"}),
"build", "_", "version", "commit_id"), # Join `version` and `commit_id` label values into label `build`
"build", "$1", "build", "MASTER_(.{7}).+"),# Retain the `commit_id` if `version == "MASTER"
"build", "$1", "build", "(.+)_.+") # Else, retain `version`
最后,在Grafana的查询图例格式中,我将{branch="v19.57.x",build="19.57.3",build_time="2019-11-16 14:02:38Z",commit_id="42806c2f7f1e17a63d94db9d561d220f53d38ee0",commit_time="2019-11-16 13:53:46Z",env="prod",job="foo-service",version="19.57.3"} 10
放在图例中以Version {{ build }}
结尾。
在图表上,您会注意到例如我们从19.57.2降至19.58.3,但由于回归,不得不在昨晚回落至19.57.3。
编辑。这是一个表格面板的JSON,几乎可以显示您想要的内容。 (它基于对您提供的https://play.grafana.org/d/000000065/prometheus-console-tables?orgId=1仪表板的编辑。)
Version 19.57.3
答案 1 :(得分:0)
我意识到,查看pushgateway信息度量标准是一个值为1的度量标准。 我想我可以使用仪表来建立带有指标的表格。