[英]How do I add elements (labels) to a Prometheus query for use in Grafana
[英]Grafana query for distinct labels number
对于带有 label ticker
收报机的请求,我有普罗米修斯计数器input_requests
:
{ticker: TSLA},
{ticker: AAPL},
{ticker: TSLA},
{ticker: META},
我想在每个时间段内制作带有唯一标签编号的图表,例如 1 分钟。
count(changes(input_requests[1m]))
以下 PromQL 查询应返回 label ticker
在最后一分钟的唯一值的数量:
count(
count(last_over_time(input_requests[1m])) by (ticker)
)
此查询按以下方式工作:
内部的last_over_time(input_requests[1m])
返回每个时间序列在最后一分钟内具有input_requests
名称的最后一个值。 请参阅last_over_time() 文档。
然后内部count(...) by (ticker)
返回步骤 1 中每个唯一ticker
值分组的唯一时间序列的数量。 请参阅count() 文档。
然后外部count()
返回从步骤 2 返回的系列数。这实际上是最后一分钟看到的唯一ticker
值的数量。
请注意,如果在 Grafana 中使用查询,则上面的查询是针对图表上的每个点独立计算的,例如,它返回图表上每个点结束的最后一分钟内唯一ticker
值的数量。 如果要获取每分钟步长的图表,则存在以下选项:
min step
设置为1m
(例如一分钟)。last_over_time(
count(
count(last_over_time(input_requests[1m] offset -1m)) by (ticker)
)[1m:1m]
)
它将原始查询转换为子查询,子查询以 1 分钟为步长计算,然后外层last_over_time(...[1m:1m])
返回一个以 1 分钟为步长的图。 该查询添加负偏移量以显示每给定分钟看到的ticker
值的数量。 如果未设置offset
,则查询将在图表上每 1 分钟步长显示前一分钟的ticker
值数量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.