有几件事要检查/尝试:
为 Statsd 配置 Graphite
检查以确保您在 Graphite 中使用了与 Statsd 发送数据的方式相匹配 的保留模式和聚合设置(即,它每 10 秒刷新间隔发送一个数据点)。
运行单个 Statsd 聚合器
确保您只运行一个 Statsd 实例,因为运行多个 statsd 守护进程会导致指标被丢弃(因为 Graphite 将被配置为仅存储一个数据点,因为它的最高精度为10s:6h
)
将 UI 或 URL API 中的时间范围限制在 6 小时以内
当显示数据超过 6 小时阈值的图表时(例如,从现在到 7 小时前),您将开始看到所显示图表的 1 分钟聚合计数数据(如果您已将 Graphite 配置为 statsd retentions = 10s:6h,1min:7d,10min:5y
)。汇总将根据时间范围内最早的数据点进行(例如,现在到 7 天以上 = 您将获得 10 分钟的汇总)。
如果发送稀疏或“突发”数据并显示旧时间范围(触发聚合)
确认您的 xFilesFactor 足够低,即使空值率很高,聚合也会产生非空值。例如,100, null, null, null, null, null
如果 XFilesFactor 高于 1/6,则前 10 秒内有 100 个请求,而一分钟内剩余 50 秒内没有请求,将导致当数据老化时,其存储总计为 null。使用 statsd 推荐的石墨配置可以解决此问题,但最好了解...因为这可能会导致数据丢失。
保存架构或聚合更改
如果您在存储任何指标后更改了石墨模式或聚合设置(在 Whisper = 石墨的存储中),您需要删除指标的 .wsp 文件(石墨将重新创建它们)或运行whisper-resize.py
.
验证设置
您可以通过在 .wsp 文件上运行 Whisper-info.py 来针对某些耳语数据验证设置。在 /graphite/storage/whisper/ Run: 中找到您的指标之一的 .wsp 文件whisper-info.py my_metric_data.wsp
。Whisper-info.py 输出应该告诉你更多关于存储设置是如何工作的。
TLDR;
您应该确保 Graphite 设置为每 10 秒间隔存储一个数据点,用于来自 StatsD 的指标。您应该确保 Graphite 对来自 Statsd 的计数数据求和(而不是平均)。这两个都可以通过使用推荐的Statsd 配置设置来处理。不要运行多个 Statsd 聚合器。使用 UI 时,将返回的数据限制在 6 小时以内,或者在查看超过保留阈值的数据时了解您正在查看的汇总。最后,确保设置正确(如果您已经发送了指标)。