计算计数器指标的范围向量中第一个元素与最后一个元素之间的差

问题描述 投票:0回答:1

我正在使用PromQL查询来计算最近60分钟内通过任何节点上的某些接口推送/接收的累积流量。使用Prometheus Node Exporter的指标:

delta(node_network_receive_bytes_total{device=~"ens.*"}[60m])*8

并且非常好只要节点在该间隔内没有重新启动,该值就是向量的尖端与尾部之间的差。当系统重新启动并且计数器重置时,该功能的含义停止反映该结果。

例如这是node_network_transmit_bytes_total的图形:

IPv6 traffic

...该函数将返回-9MiB,而不是10.2MiB。

我想我可以同时使用rate()来获得估算值。但是,是否有更好的功能/方式来获取actual something

prometheus promql prometheus-node-exporter
1个回答
2
投票

delta()的文档中所述:

增量仅应与量规一起使用。

您应该使用increase()特有的counters功能。

单调性中断(例如由于目标重启而导致的计数器重置)。>

这是区分量规和计数器的主要原因之一。参见this answer about the difference

您可以通过以下方法之一来识别计数器:

  • 文本文件输出中的类型(例如:# TYPE http_requests_total counter
  • 该值单调增加(grafana在检测到该值时会提出与计数器相关的功能)
  • 名称应以_total结尾(如果出口商尊重best practices
© www.soinside.com 2019 - 2024. All rights reserved.