繁体   English   中英

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_minrtt_avgrtt_max存储来自 .network 数据包往返时间测试的数据。 每个 DS 的解释都比较明显:

  • rtt_min是单个测试期间所有 RTT 时间的最小值。
  • rtt_avg是单个测试期间所有 RTT 时间的平均值。
  • rtt_max是单个测试期间所有 RTT 时间的最大值。

这些树浮点值在每次测试后存储在 RRD 文件中(假设频率与 RRD 步长值相同)。 我的目标是绘制rtt_avg值以及rtt_minrtt_max作为边界值。 有两种明显的情况:

  1. 我可以为每个 DS 绘制AVERAGE图表,这将为 RRA 生成准确的结果,其中每一行都有一个 PDP(1CDP = 1PDP;最新数据,没有合并)。 但是对于旧数据, rtt_minrtt_max的平均值不是我想要的,因为我需要绘制这两个数据源的最小值和最大值,而AVERAGE function 并不是最适合它的。

  2. 我可以绘制rtt_min:MINrtt_avg:AVERAGErtt_max:MAX ,它们的行为与我想要的合并(旧)数据一样,绘制合并间隔的最小、平均和最大 DS 值,但会为最新数据提供低分辨率数据rtt_minrtt_max 这是因为MINMAX CDP 在 1PDP RRA 中是NaN 只有在整合之后,这些 CDP 才有价值,但使用它们会得到较低分辨率的数据,因为每个 CDP 都有多个 PDP。 这两个在分辨率更高的rtt_avg旁边看起来会很奇怪。

我需要两者的结合。 由于MINMAX是 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM