gpt4 book ai didi

graphite - 获取准确的 Graphite stats_counts

转载 作者:行者123 更新时间:2023-12-03 13:52:40 27 4
gpt4 key购买 nike

我们运行 etsy/statsd 节点应用程序,它每 10 秒将统计信息刷新到 carbon/whisper。如果您发送 100 个增量(计数),在前 10 秒内,graphite 会正确显示它们,例如:

localhost:3000/render?from=-20min&target=stats_counts.test.count&format=json

[{"target": "stats_counts.test.count", "datapoints": [
[0.0, 1372951380], [0.0, 1372951440], ...
[0.0, 1372952460], [100.0, 1372952520]]}]

然而,10 秒后,这个数字下降到 0、null 和或 33.3。最终它稳定在初始增量数的 1/6 处,在本例中为 16.6。 .
/opt/graphite/conf/storage-schemas.conf是:
[sixty_secs_for_1_days_then_15m_for_a_month]
pattern = .*
retentions = 10s:10m,1m:1d,15m:30d

我想获得准确的计数, Graphite 是在 60 秒的窗口中平均数据而不是求和吗?使用积分函数,经过一段时间后,显然给出:
localhost:3000/render?from=-20min&target=integral(stats_counts.test.count)&format=json

[{"target": "stats_counts.test.count", "datapoints": [
[0.0, 1372951380], [16.6, 1372951440], ...
[16.6, 1372952460], [16.6, 1372952520]]}]

最佳答案

Graphite data storage

Graphite 使用存储在 中的设置组合来管理数据的保留。存储架构.conf 存储聚合.conf .我看到您的保留策略(您的 storage-schemas.conf 中的片段)告诉 Graphite 仅存储 1 个数据点以获得最高分辨率(例如 10s:10m ),并且它应该将这些数据点的聚合作为数据进行管理老化并移动到较旧的间隔(定义了较低的分辨率 - 例如 1m:1d )。在您的情况下,数据在 10 分钟时进入下一个保留间隔,10 分钟后数据将根据 storage-aggregation.conf 中的设置汇总。

Aggregation / Downsampling

当数据老化并落入指定较低分辨率保留的时间间隔时,会发生聚合/下采样。在您的情况下,您将每 10 秒间隔存储 1 个数据点,但是一旦该数据超过 10 分钟,旧 Graphite 现在会将数据存储为 1 个数据点,间隔 1 分钟。这意味着您必须告诉 Graphite 它应该如何获取 10 秒的数据点(其中一分钟有 6 个)并将它们聚合成一整分钟的 1 个数据点。应该平均吗?应该加起来吗?正如您在帖子中所暗示的,根据数据的类型(例如时间、计数器),这可能会产生很大的不同。

默认情况下, Graphite 将平均数据,因为它聚合成较低分辨率的数据。当应用于计时器(甚至仪表)数据时,使用平均值来执行聚合是有意义的。也就是说,您正在处理计数器,因此您需要求和。

例如,在 storage-aggregation.conf 中:

[count]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum

UI(和原始数据)聚合/下采样

在查看图表或查看不同时间段的原始 (json) 数据时,了解聚合/下采样数据的表示方式也很重要,因为数据保留模式阈值直接影响图表。在您的情况下,您正在查询 render?from=-20min它跨越了你的 10s:10m 边界。

Graphite 将根据定义的最低分辨率精度显示(并执行实时下采样)数据。换句话说,这意味着如果您绘制跨越一个或多个保留间隔的数据,您将获得相应的汇总。一个例子会有所帮助(假设保留:retentions = 10s:10m,1m:1d,15m:30d)

任何数据不早于过去 10 分钟的图表都将显示 10 秒聚合。当您超过 10 分钟阈值时,您将开始看到根据 storage-aggregation.conf 中设置的策略汇总的 1 分钟计数数据。

摘要/tldr;

因为您正在绘制/查询 20 分钟的数据(例如 render?from=-20min ),所以您肯定会陷入较低精度的存储设置(即 10s:10m、 1m:1d ,15m:30d),这意味着该聚合是根据您的聚合策略进行的。 您应该确认您使用的是 sum storage-aggregation.conf 文件中的正确模式。 此外,您可以将图形/查询时间范围缩短到不到 10 分钟,这将避免动态汇总。

关于graphite - 获取准确的 Graphite stats_counts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17474505/

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