Prometheus 查询以计算唯一标签值
Posted
技术标签:
【中文标题】Prometheus 查询以计算唯一标签值【英文标题】:Prometheus query to count unique label values 【发布时间】:2019-01-23 17:08:11 【问题描述】:我想计算唯一标签值的数量。有点像
select count (distinct a) from hello_info
例如,如果我的指标“hello_info”有标签 a 和 b。我想计算唯一 a 的数量。对于 a = "1"、"2"、"3",这里的计数为 3。
hello_info(a="1", b="ddd")
hello_info(a="2", b="eee")
hello_info(a="1", b="fff")
hello_info(a="3", b="ggg")
【问题讨论】:
【参考方案1】:count(count by (a) (hello_info))
首先,您需要一个聚合器,每个值的结果为 a
,然后您可以计算它们。
【讨论】:
似乎对我不起作用,第一个计数返回一个度量矩阵(其中每个值也是一个向量),并且对其运行计数返回一个无意义的值,例如 "1.3" 。 ..有什么想法吗? 我认为这个查询返回的是一个时间序列,而不是为特定标签记录的所有值的数量。【参考方案2】:其他示例: 如果要根据标签的不同值(例如:app)来统计Kubernetes集群中部署的应用数量:
count(count(kube_pod_labelsapp=~".*") by (app))
【讨论】:
以上是关于Prometheus 查询以计算唯一标签值的主要内容,如果未能解决你的问题,请参考以下文章