V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imherer
V2EX  ›  程序员

prometheus 使用 HTTP API 查询的时候 step 应该如何计算,同时如何保证数据的准确性

  •  
  •   imherer · 4 小时 23 分钟前 · 175 次点击

    源数据是用Gauge记录的,记录方式是每 1 秒记录一条,现在想直接通过 prometheus 和 HTTP API 集成要自己的系统中。

    因为 API 查询返回数据有数量限制( 11000 条),所以在查询 1 小时或 3 小时数据的时候 step=1 没问题,因为源数据是 1 秒产生一条,step=1 的时候相当于把源数据里的每一条数据都返回了(应该是这样的吧)。但是在查询更大时间范围的时候就需将 step 调大,调大之后就会丢弃掉一部分数据( prometheus 内部应该是这个意思吧,没去了解它的实现),这样就会导致查询出来的结果变化很大,比如我查询最近 7 天的数据,第一次查询一次的结果和过几秒在查的结果会变化很大(图表上能看到明显的变化)。

    我现在 step 的计算方式是=(end-start)/11000

    我在 Grafana 里看了下,它查询出来的结果却不变化(没仔细看数据结果有没有变化,但是但从图表上肉眼是看不到变化的),不知道它是怎么实现的。 实在不行把 Grafana 的页面嵌入到自己的系统里也行,但是 Grafana 能实现嵌入的页面在我们的系统里登录之后即可访问而不需要再登录一次 Grafana 吗?

    另外这种统计是不是把 Gauge 换成 Histogram 然后统计 P95 之类的会更准确一些?

    2 条回复    2024-12-19 14:00:53 +08:00
    picone
        1
    picone  
       20 分钟前
    你需要的可能是明细数据? 你是不是在找 Clickhouse
    imherer
        2
    imherer  
    OP
       11 分钟前
    @picone 想了一圈,感觉好像如果真的每一条数据都要的话,好像 prometheus 不行,还真得要 ch
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:12 · PVG 14:12 · LAX 22:12 · JFK 01:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.