RRD - 如何绕过非合并 CDP 的 MIN 和 MAX RRA 为 NaN 的限制
RRD - How to bypass the limitation of MIN and MAX RRAs being NaN for non consolidated CDPs
假设我有一个包含 3 个数据源的 RRD:rtt_min
、rtt_avg
和 rtt_max
存储来自网络数据包往返时间测试的数据。每个DS的解释都比较明显:
rtt_min
是单次测试中所有RTT时间的最小值。
rtt_avg
是单次测试中所有RTT时间的平均值。
rtt_max
是单次测试中所有RTT时间的最大值。
这些树浮点值在每次测试后存储在 RRD 文件中(假设频率与 RRD 步长值相同)。我的目标是绘制 rtt_avg
值以及 rtt_min
和 rtt_max
作为边界值。有两种明显的情况:
我可以为每个 DS 绘制 AVERAGE
图表,这将为 RRA 生成准确的结果,其中每一行都有一个 PDP(1CDP = 1PDP;最新数据没有合并)。但是对于旧数据,rtt_min
和 rtt_max
的平均值不是我想要的,因为我需要绘制这两个数据源的最小值和最大值,而 AVERAGE
函数不是最好的。
我可以绘制 rtt_min:MIN
、rtt_avg:AVERAGE
和 rtt_max:MAX
的图形,这将按照我想要的合并(旧)数据的方式运行,绘制最小值、平均值和最大值合并间隔的 DS 值,但将为 rtt_min
和 rtt_max
的最新数据提供低分辨率数据。这是因为 MIN
和 MAX
CDP 在 1PDP RRA 中是 NaN
。只有在整合之后,这些 CDP 才有价值,但使用它们会得到较低分辨率的数据,因为每个 CDP 都有多个 PDP。而这两个在分辨率更高的 rtt_avg
旁边看起来会很奇怪。
我需要两者的结合。由于 MIN
和 MAX
对于 1PDP RRA 是 NaN
,是否有一种简单的方法来绘制 rtt_max:LAST
期间有数据的 LAST
,以及更早的数据要使用的数据 rtt_max:MAX
?我现在能想到的唯一解决方案是以某种方式计算我们在 LAST
中有数据的时间,并在该时间之前绘制 MAX
和之后的 LAST
。
I can graph rtt_min:MIN, rtt_avg:AVERAGE and rtt_max:MAX which would behave as i want
这是你应该做的;对 MIN 和 MAX 类型使用不同的 CF。
but would provide low resolution data for latest data for rtt_min and rtt_max.
This is because MIN and MAX CDPs are NaN in 1PDP RRAs.
这不应该是这样的。对于 1PDP RRA,MIN 和 MAX 应该给出与 AVERAGE 相同的结果。我认为可能发生这种情况的唯一原因是您使用不正确的 xff 或心跳错误定义了 RRA 或 DS。
如果没有你的 RRD 的定义,我不能确定,但我想是这样的。过去,我在 1pdp-RRA 上使用 MAX 和 MIN 没有问题。
一个潜在的问题是,有时 RRA 中的最后一个值是未知的 (NaN),因为直到该时隙完全过去并收到新的数据样本时才设置它。过去,我检索了 RRD 的最后更新时间并将其用作图形基准时间而不是 'now' 以避免这种情况。如果您的更新频率相对较小,那么这应该不是问题。
假设我有一个包含 3 个数据源的 RRD:rtt_min
、rtt_avg
和 rtt_max
存储来自网络数据包往返时间测试的数据。每个DS的解释都比较明显:
rtt_min
是单次测试中所有RTT时间的最小值。rtt_avg
是单次测试中所有RTT时间的平均值。rtt_max
是单次测试中所有RTT时间的最大值。
这些树浮点值在每次测试后存储在 RRD 文件中(假设频率与 RRD 步长值相同)。我的目标是绘制 rtt_avg
值以及 rtt_min
和 rtt_max
作为边界值。有两种明显的情况:
我可以为每个 DS 绘制
AVERAGE
图表,这将为 RRA 生成准确的结果,其中每一行都有一个 PDP(1CDP = 1PDP;最新数据没有合并)。但是对于旧数据,rtt_min
和rtt_max
的平均值不是我想要的,因为我需要绘制这两个数据源的最小值和最大值,而AVERAGE
函数不是最好的。我可以绘制
rtt_min:MIN
、rtt_avg:AVERAGE
和rtt_max:MAX
的图形,这将按照我想要的合并(旧)数据的方式运行,绘制最小值、平均值和最大值合并间隔的 DS 值,但将为rtt_min
和rtt_max
的最新数据提供低分辨率数据。这是因为MIN
和MAX
CDP 在 1PDP RRA 中是NaN
。只有在整合之后,这些 CDP 才有价值,但使用它们会得到较低分辨率的数据,因为每个 CDP 都有多个 PDP。而这两个在分辨率更高的rtt_avg
旁边看起来会很奇怪。
我需要两者的结合。由于 MIN
和 MAX
对于 1PDP RRA 是 NaN
,是否有一种简单的方法来绘制 rtt_max:LAST
期间有数据的 LAST
,以及更早的数据要使用的数据 rtt_max:MAX
?我现在能想到的唯一解决方案是以某种方式计算我们在 LAST
中有数据的时间,并在该时间之前绘制 MAX
和之后的 LAST
。
I can graph rtt_min:MIN, rtt_avg:AVERAGE and rtt_max:MAX which would behave as i want
这是你应该做的;对 MIN 和 MAX 类型使用不同的 CF。
but would provide low resolution data for latest data for rtt_min and rtt_max. This is because MIN and MAX CDPs are NaN in 1PDP RRAs.
这不应该是这样的。对于 1PDP RRA,MIN 和 MAX 应该给出与 AVERAGE 相同的结果。我认为可能发生这种情况的唯一原因是您使用不正确的 xff 或心跳错误定义了 RRA 或 DS。
如果没有你的 RRD 的定义,我不能确定,但我想是这样的。过去,我在 1pdp-RRA 上使用 MAX 和 MIN 没有问题。
一个潜在的问题是,有时 RRA 中的最后一个值是未知的 (NaN),因为直到该时隙完全过去并收到新的数据样本时才设置它。过去,我检索了 RRD 的最后更新时间并将其用作图形基准时间而不是 'now' 以避免这种情况。如果您的更新频率相对较小,那么这应该不是问题。