prometheus - 如何从普罗米修斯绘制每天的平均值
问题描述
我必须从 Prometheus 指标创建可视化。我有一个计数器指标http_request_counter
,我想显示一天内服务的总请求的摘要。当我们将石墨作为数据源时,我就是这样做的。
alias(summarize(sumSeries(consolidateBy(nonNegativeDerivative(http_request_counter.count), 'sum')), '1d', 'sum', false), 'TPS per day')
我看到的文档很少,并尝试使用increase(http_requests_total[24h])
它绘制带有t-24h
值的图形。
有人可以帮我在普罗米修斯中找到等效的summarize
功能吗?
解决方案
你需要sum(increase(http_requests_total[24h]))
. 它返回图表上每个点在过去24 小时内的请求总数。默认情况下,Grafana 从 Prometheus 查询许多点,以便为图形的当前水平分辨率绘制平滑图形。min step
在 Grafana 中编辑图形时,可以使用选项调整图形上的点数。另一种选择是对外部查询使用具有所需步骤的子查询:
last_over_time(sum(increase(http_requests_total[24h]))[1d:1d])
它将以一天的步骤返回连续行。这些步骤将在过去一天移动,例如,当天的步骤将包含前一天发出的请求数。这种转变可以用负数来消除offset
:
last_over_time(sum(increase(http_requests_total[1d] offset -1d))[1d:1d])
不幸的是,这个查询在 Prometheus 中不能开箱即用,因为它默认不接受负偏移量。启动 Prometheus 时,必须使用 --enable-feature=promql-negative-offset 命令行标志启用它们。幸运的是, MetricSQL默认支持负偏移量。
推荐阅读
- flutter - 如何在颤动中将 Gridview 转换为 Listview?
- python - 将 GIF 与音乐节奏同步导致持续时间比预期的要短
- python - 根据条件加入两个不同大小的数组
- reactjs - 无法将道具传递给导入的组件
- javascript - JavaScript:在两个对象数组中查找匹配和差异
- jquery - 未捕获的类型错误:无法读取 shopify 自定义购物车弹出 jQuery ajax 中未定义的属性“id”
- sql - 替换部分字符串并更新 STANDARD SQL 中的列
- matplotlib - 如何将布尔矩阵转换为灰度图?
- java - 在 liquibase 中默认分配角色
- r - 在“NAMESPACE”中指定但未在包中定义的 S4 导出