![](/img/trans.png)
[英]How to graph RRD stackable data by standard deviation to maximize readability
[英]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
存储来自 .network 数据包往返时间测试的数据。 每个 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
function 并不是最适合它的。
我可以绘制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
。
我可以绘制 rtt_min:MIN、rtt_avg:AVERAGE 和 rtt_max:MAX 图表,它们的行为与我想要的一样
这是你应该做的; 对 MIN 和 MAX 类型使用不同的 CF。
但会为 rtt_min 和 rtt_max 的最新数据提供低分辨率数据。 这是因为 MIN 和 MAX CDP 在 1PDP RRA 中是 NaN。
事实并非如此。 对于 1PDP RRA,MIN 和 MAX 应该给出与 AVERAGE 相同的结果。 我认为可能发生这种情况的唯一原因是您使用不正确的 xff 或心跳错误定义了 RRA 或 DS。
如果没有您的 RRD 的定义,我无法确定,但我可以想象是这种情况。 过去,我曾在 1pdp-RRA 上毫无问题地使用过 MAX 和 MIN。
一个潜在的问题是,有时 RRA 中的最后一个值是未知的 (NaN),因为直到该时隙完全过去并收到新的数据样本时才设置它。 过去,我检索了 RRD 的最后更新时间并将其用作图形基准时间而不是“现在”以避免这种情况。 如果您的更新频率相对较小,那么这应该不是问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.