如果请求的时间超过 30 分钟,石墨数据就会消失

如果请求的时间超过 30 分钟,石墨数据就会消失

这是 CentOS 6.5 上相当新的 Graphite 安装。它通过 AMQP (RabbitMQ) 从 Sensu 接收指标。

作为概念验证,我有一个平均负载监视器,每 60 秒向 sensu/graphite 报告一次数据。我可以看到数据到达 Graphite 的监听器日志中。

如果我选择一些数据进行绘图,那么只有我的周期在“过去 30 分钟”内时,我才能看到数据。(然后,只有当我将线模式设置为“连接线”时,它才可见,因为点会消失。)

如果我将时间段设置为“查看过去 31 分钟”,则所有数据都会从图表中消失。

我曾尝试使用 storage-schemas.conf,但没有发现任何明显的变化。

如果我超过 30 分钟,数据是否会以某种方式被丢弃或过滤掉?我应该检查什么?

这是storage-schemas.conf:

[load_averages]
pattern = \.load_avg\.
retentions = 10s:14d,1m:90d

答案1

我确信我现在明白这里发生了什么。

正如我所怀疑的,它与度量的采样率以及 Whisper 数据库预期的采样率有关。

关键是 storage-schemas.conf 文件,它指定要存储的采样率。

我使用 echocat/graphite puppet 模块配置了 graphite。这将设置前 30 分钟的默认频率为 1s,前 1 天的默认频率为 1m,2 年的默认频率为 5m。

我试图绘制的平均负载指标的采样周期为 1 分钟或 60 秒。因此,whisper 数据库每分钟将存储 59 个空值和一个值。当请求超过 30 分钟时,graphite 会丢弃真实数据。

必须发生两件事:

首先,更改 storage-schemas.conf 中的初始采样率(使用 puppet),以便存储箱与采样频率相匹配。

其次,现有的 Whisper 数据库文件必须被丢弃或调整大小。

Whisper 有一个实用程序 (whisper-resize.py),但就我而言,我没有有价值的数据可以保留。我擦除了受影响的 Whisper DB 文件并让它们重新创建。

相关内容