惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
Last Week in AI
Last Week in AI
博客园_首页
I
InfoQ
T
Tailwind CSS Blog
爱范儿
爱范儿
雷峰网
雷峰网
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
V
Visual Studio Blog
有赞技术团队
有赞技术团队
P
Proofpoint News Feed

Hunsh's Blog

生成个人的 Github PR List 如何选择合适的加密手段 Nginx SNI Proxy 如何优雅导入 k8s.io/kubernetes Make Go mod and Git to use specify .netrc 多架构镜像的体积优化 使用 buildkit 进行多架构构建并提取产物 如何修改镜像 layer(以 sourcemap-less grafana 为例) acme.sh 自动化 Google CA 申请证书 微信小程序嵌入任意公众号文章 k8s && bazel 项目从 go1.20 升级 go1.21 go serve http and https on same port typecho 迁移到 hexo 实现 hexo 文章和资源在同一目录下 golang mitm 遇到的问题 流式数据专用的 mine-type Golang 正向代理对于 Host 的处理 (RFC 7230) 分享 MacOS 的一些系统fix脚本(dns、sleep) [油猴脚本] USTB Everywhere 为校外访问添加访问任意网站的能力
prometheus rate/increase/delta/sum等函数不符合预期或出现...
2022-08-23 · via Hunsh's Blog

大概是一周前遇到这个问题,我期望通过 delta(process[5m]) 来统计 5m 内 process 失败的数量,从在阅读了文档之后我确认这句 PromQL 是正确的,符合我的需求的(数据比较特殊,每一个 metric 都只有 1,我期望在 metric 范围外为 0,这样 delta 可以计算到得到 1)。

情况大概是这样

2022-08-23T07:55:28.png

data 为[2, 2, 7, 7, 7, ...]

但是做 1m 的 delta 之后会得到[10, 10, 0, 0, 0, ...]

甚至于 2m 的 delta 曲线更奇怪

2022-08-23T07:57:08.png

看到 2m 的曲线就可以判断是 prometheus 的推断导致的了,具体可以看 link

但奇怪的是在线上环境类似语句工作良好,与预期相符。

经过很长时间的搜索,才找到 victoria 的这个 issue

简单来说就是同样的 PromQL 在 victoria 和 prometheus 的返回结果是不一致的,原因是 prometheus 使用了推断(并且这个特性无法关闭),victoria 的实现方式与其不一致。

然后去线上看了一下,grafana 使用的数据源就是来自 victoria 的…

所以最终解决方案就是使用第三方 tsdb 查询,prometheus 并未提供精确的计算函数(有 pr,但被驳回了)