Grafana Singlestat Max 不匹配具有相同查询的图形

Grafana Singlestat Max not matching Graph with same query

我有一个使用相同查询的 Singlestat 面板和 Graph 面板,(Singlestat & Graph query). And, the Singlestat is set to max (Singlestat setting)。

不幸的是,该图清楚地显示了最大值大于最大单一状态(714 对 ~800):Singlestat vs Graph。从 Singlestat 上的迷你图来看,Singlestat 的计算似乎不如图表的精细。如果他们使用相同的基本查询,谁能解释为什么会这样?其他 singlestat 函数(如 Min、Avg 等)似乎工作正常。我最多只能看到这个问题。

注意:我查看了其他 Grafana Singlestat vs Graph 帖子,但这似乎是一个不同的问题。

如果您查看链接到的第一张图片,您会注意到有一个 Min step 输入,默认值为 5m。这就是您较低分辨率的来源。您可以将其明确设置为您的抓取间隔(或更短,以确保您不会因抓取间隔中的抖动而丢失任何样本,尽管最终可能会代价高昂),但如果您足够大地增加仪表板范围,您我:

  • (a) 可能有一个单一统计最大值高于图表上的任何值(因为您的图表现在的分辨率低于单一统计源数据);和
  • (b) 如果缩小到大于 11K 乘以抓取间隔的范围,将达到 Prometheus 的 11K 样本限制。

您最好的选择是使用 PromQL 来计算要在您的单一统计面板中显示的最大值。您仍然需要处理上面的 (a)(范围很长时的低分辨率图),但它将是实际的最大值(就像您实际上以某个固定间隔对值进行采样的事实所允许的那样)和它会更有效率。

问题是给定您的查询 - sum(jvm_thread_count) - 无法将其放入带有 max_over_time 的单个 PromQL 查询中。您必须定义一个记录规则(类似于 instance:jvm_thread_count:sum = sum(jvm_thread_count),然后让您的单一统计面板显示 max_over_time(instance:jvm_thread_count:sum[$__range_s]) 即时查询的结果(选中 Instant 复选框在你的单一统计设置中)。