源数据是用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 之类的会更准确一些?
1
picone 11 天前
你需要的可能是明细数据? 你是不是在找 Clickhouse
|
3
DeadLion 11 天前
prometheus 定期去 exporter 拉数据,这个间隔是可配的,默认好像是 15s ,exporter 里的数据是不带时间戳的,我的理解这个时间戳就是 prometheus 去拉的时间
所以你的元数据虽然是 1s 一个,但是拉取的时候 15s 才拉一次,所以 prometheus 的 step 应该是 15s 。 要同步 1s 一个你需要去改下拉取间隔配置 |