登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
园子
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Prometheus 历史峰值看不到了,这监控不准啊 ...
Prometheus 历史峰值看不到了,这监控不准啊
[ 复制链接 ]
每捎京
5 天前
经常在夜莺社区收到用户反馈,说查询某个监控指标,昨天的峰值是 xx,今天再次查询,发现昨天的峰值看不到了,然后开始吐槽,你们这监控怎么搞的,一点都不准啊。事实真的是这样吗?
真实原因
本质上这是因为 Prometheus 生态在查询历史数据时提供了一个 step 参数,大多数人对这个知识匮乏导致的疑问。
上图是 Prometheus 的官方文档,其他的时序库比如 VictoriaMetrics、Thanos 都是兼容 Prometheus 接口的,所以逻辑是相同的。其中说明了 step 参数的含义:Query resolution step width in duration format or float number of seconds。
比如 step=15,返回的数据就是每 15 秒一个数据点,如果 step=60,返回的数据就是每分钟一个数据点。假设原始数据采集的时候,是每 15 秒采集一次,那 step=15 就能完整展示原始数据,如果 step=60,就会有部分数据被丢掉,导致历史峰值看不到。
怎么控制 step 参数
大部分用户查询监控数据的时候,压根没有关注这个值,但是仍然可以查询数据。这是因为,Prometheus、Grafana、Nightingale 等都会根据用户选择的时间范围自动计算 step,以保证返回的数据不会太密集太多,也不会太稀疏太少。
不同的监控系统,对于数据稀疏与否的配置不同,以 Nightingale 举例。比如你要查询最近 1 小时的数据,Nightingale 自动计算的 step 就是 15:
如果查询最近 24h 的数据,Nightingale 自动计算的 step 就是 360:
当然,你也可以手工指定 step 的值,比如手工指定为 15:
可以看到,手工指定 step 为 15,返回的数据就是每 15 秒一个数据点,这样就能完整展示原始数据了,但是数据量会比较大,图表看起来也很稠密。如果要看一年的数据,仍然强制 step 为 15 话,返回的数据可能会把浏览器干蹦。
如何知道实际采集频率
Prometheus 这个设计逻辑,一个是可以保证查询效率,另一个是为了时间戳对齐,方便不同的指标之间做计算,并非是监控不准。如果你想使用原始数据绘图,那就把 step 的大小设置为监控数据采集时的频率即可。
但是作为用户,如果采集规则不是你配置的,你不知道采集频率怎么办?此时可以到 Nightingale 的即时查询页面,使用 Table 视图,查看指标一段时间的数据,比如:
Promql 最后加了一个 [5m] 是查询 5 分钟的数据,这是 Promql 的知识不展开了。下面的内容展示的是 5 分钟内的原始数据,并且时间戳自动展示为人类易读的方式,而且自动计算了时间戳之间的差值,这样就很方便知道采集频率了。上图中可以看到采集频率是 60 秒一次。
另外,在这个视图中如果你发现某个指标的采集频率不固定,那很可能是相同的数据重复采集了,比如同时有两个 categraf 在采集相同的一个监控目标,这种情况通常是不符合预期的,需要排查。
总结
Prometheus 生态的 step 参数是一个很重要的概念,对于监控数据的查询有着重要的影响。大部分情况下,用户不需要关心这个参数,因为监控系统会自动计算 step,以保证查询效率和数据展示的合理性。但是如果你想看原始数据,或者想了解监控数据的采集频率,那就需要了解 step 参数的含义,以及如何手工指定 step 参数啦。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
如何优雅上线、下线?原来 大厂应用 是这样 优雅发布的!
在 .NET 中将 EF Core 升级到 9.0.5 MySQL 连接提示 get_LockReleaseBehavior
开源情报中批判性思维因人工智能而逐渐衰落
sshd服务
AppFreeze与资源泄漏能力开放及常见问题定位方法介绍
HarmonyOS 5.0 分布式数据协同与跨设备同步
人工智能将如何影响语言的演变?
【UAP】使用 .NET Core App 编写 UAP
微软又退出中国。。。
Datawhale速通百炼RAG应用-Task1
【一步步开发AI运动APP】一、写在最前
不是哥们,26 岁程序员,去种头发了?
记录---前端图像五兄弟:网络 URL、Base64、Blob、ArrayBuffer、本地路径,全整明白!
MOSN(Modular Open Smart Network)是一款主要使用 Go 语言开发的云原生网络代理平台
在Ubuntu中部署.NET 8 Minimal WebAPI项目
JavaScript基础
康谋分享 | 自动驾驶仿真进入“标准时代”:aiSim全面对接ASAM OpenX
并发编程--下篇
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
代码
业界
签约作者
程序园优秀签约作者
发帖
每捎京
5 天前
关注
0
粉丝关注
9
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9996
谭皎洁
9998
常士
9998
4
斜素欣
9996
5
喝岖
9996
6
森萌黠
9996
7
堵赫然
9996
8
凶契帽
9996
9
贼瘁
9996
10
季卓然
9996
查看更多