首先是一些数据描述:
指标名称:query_seconds_count
示例值:
query_seconds_count{correlation_id="someUUID",instance="someIp:Port",job="someJob",query_type="query",segment="overall"}
我想做什么:
delta(query_seconds_count[1m])
问题:
标签correlation_id
对于每个查询都是唯一的,因此没有机会找到匹配的相关ID来计算增量。因此,Delta始终为0。
计算增量时,有什么方法可以忽略标签correlation_id
?
我了解了关键字ignoring
,without
和by
,但似乎它们不适用于delta函数。
可能的解决方法
我可以使用此方法解决delta函数,但这看起来并不优雅。
sum(query_seconds_count) without (correlation_id) - sum(query_seconds_count offset 1m) without (correlation_id)
答案 0 :(得分:2)
每个查询的标签related_id都是唯一的,因此没有机会找到匹配的相关id来计算增量。
这是事件日志记录,Prometheus根本不适用,因为这不是指标。您需要使用诸如ELK之类的系统来处理此类数据。如果要使用Prometheus,则需要在客户端代码中删除相关ID。
此外,您永远不要在计数器上使用delta
函数。您可能需要increase
。