gpt4 book ai didi

graphite - 难以从 Graphite 中获取准确的数字

转载 作者:行者123 更新时间:2023-12-04 13:32:45 31 4
gpt4 key购买 nike

我有一个应用程序,它通过statsd向 Graphite 发布许多统计信息。每当服务接收到一条消息时,其中一个统计信息就会简单地向statsd发送一个统计增量。我需要显示一个图表,显示此统计信息随时间推移的相对流量。一般而言,我应该能够显示一个图表,该图表每隔10秒刷新一次,并显示这10秒内收到的邮件数量以及给定时间段内的历史记录。但是,无论我如何格式化API查询,我似乎都无法获得准确的数据。我已经阅读了许多文章,其中包括:

http://code.hootsuite.com/accurate-counting-with-graphite-and-statsd/

这似乎可以提供一些很好的见解,但仍然不能完全满足我的需求。这是我关闭的时间:

积分(hitcount(stats.receiveved,“10seconds”))

但是,我不喜欢这样做的累加结果,当我运行它时,我得到的统计数据与我收到的消息的日志中所看到的相差甚远。我可以接受一些数据包丢失,但我们谈论的是数量级。我知道我做错了。只是希望有人可以给我一些见识。

最佳答案

要检查/尝试的几件事:

为Statsd配置 Graphite

检查并确保您已使用Graphite中的retention schemaaggregation设置,这些设置与Statsd发送数据的方式匹配(即,每10秒刷新间隔发送一个数据点)。

运行单个Statsd聚合器

确保只运行一个Statsd实例,因为运行多个statsd守护程序会导致指标下降(因为Graphite将配置为仅存储一个数据点,因为10s:6h的精度最高)

将UI或URL API中的时间范围限制为少于6小时

当显示的数据超过6小时阈值(例如,从现在到7小时之前)的图形时,您将开始看到所显示图形的值(value)1分钟的汇总计数数据(如果您已使用retentions = 10s:6h,1min:7d,10min:5y为statsd配置了Graphite)。汇总将基于时间范围内最早的数据点发生(例如,直到7天以上=您将获得10分钟的汇总)。

如果发送稀疏或“突发”数据并显示旧时间范围(触发聚合)

确认您的xFilesFactor足够低,以至于即使产生很高的空值率,聚合也会产生非空值。例如,在前10秒钟内有100个请求,而在一分钟内剩余的50秒钟内没有一个请求,将导致存储100, null, null, null, null, null,如果XFilesFactor高于1/6,则在数据老化时,其合计为null。使用statsd推荐的 Graphite 配置可以解决此问题,但是很高兴知道...,因为这样可能会导致丢失数据的情况出现。

保存架构或聚合更改

如果在存储任何度量后(以低语= Graphite 的存储)更改了 Graphite 模式或聚合设置,则需要删除该度量的.wsp文件( Graphite 将重新创建它们)或运行whisper-resize.py

验证设置

您可以通过在.wsp文件上运行whisper-info.py来针对某些耳语数据验证设置。在/graphite/storage/whisper/中找到其中一个指标的.wsp文件
运行:whisper-info.py my_metric_data.wsp。 whisper-info.py的输出应该告诉您有关存储设置如何工作的更多信息。

TLDR;

您应确保将Graphite设置为每10秒间隔为来自StatsD的指标存储一个数据点。您应确保Graphite对来自Statsd的计数数据求和(而不是求平均值)。可以使用推荐的Statsd configuration settings处理这两种情况。不要运行多个Statsd聚合器。使用UI时,将返回的数据限制为少于6小时,或者在查看超过保留阈值的数据时了解正在查看的汇总。最后,确保设置正确(如果您已经在发送指标)。

关于graphite - 难以从 Graphite 中获取准确的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476140/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com