Graph rrdtool图形忽略--步骤?

Graph rrdtool图形忽略--步骤?,graph,percentile,rrdtool,rrd,Graph,Percentile,Rrdtool,Rrd,我有包含多个月PDP数据的RRD文件(间隔5分钟) 对于通用图形,当rrdtool自动决定使用哪个RRA来显示图形时,它会很好 但我的一些图表在图例中包含95%的数据,我需要根据“精确”的5分钟间隔数据来计算,因为从聚合数据点计算百分位(从本质上讲)可能会导致严重错误的值。” 我可以以300的步长从RRD文件中获取数据,我将获得正确的数据,自己计算百分位数 问题:当以300步长绘制图形时,显示的百分位值根据图形的宽度而变化,即使时间范围相同,并且整个时间范围都有300秒的数据可用 如果1个月图

我有包含多个月PDP数据的RRD文件(间隔5分钟)

对于通用图形,当rrdtool自动决定使用哪个RRA来显示图形时,它会很好

但我的一些图表在图例中包含95%的数据,我需要根据“精确”的5分钟间隔数据来计算,因为从聚合数据点计算百分位(从本质上讲)可能会导致严重错误的值。”

  • 我可以
    以300的步长从RRD文件中获取
    数据,我将获得正确的数据,自己计算百分位数
  • 问题:当以300步长绘制图形时,显示的百分位值根据图形的
    宽度
    而变化,即使时间范围相同,并且整个时间范围都有300秒的数据可用
  • 如果1个月图表的宽度为800px,则显示的百分比(以及最大值,例如)是错误的
  • 如果1个月图形的宽度为8000px,则值是正确的(与从提取数据中自行计算的值相匹配)
图表:

创建时使用:


这是由于在
VDEF
计算之前执行了数据合并

尽管
rrdtool图形
参数指定的步长为300秒,但它的宽度小于图形的一个像素,因此在到达
VDEF
之前,将进一步平均数据序列。所有的
CDEF
VDEF
功能将始终以每像素一个cdp的时间序列工作。从RRDTool手册:

注意:小于一个像素的步长将被忽略

这意味着,虽然可以降低数据的分辨率,但不能提高分辨率。遗憾的是,要获得准确的第95百分位,需要更高分辨率的数据

因此,如果在一个窄图中省略
——步骤300
,将会发生以下情况:

  • 你要求一个月的时间窗口
  • RRDTool计算1像素约为1小时
  • DS从1小时RRA中检索平均时间序列,每像素一个cdp(即小时)
  • VDEF然后将其合并为第95个百分位
  • 第95百分位计算不准确
对于
--步骤300
,过程略有不同,但结果相同:

  • 您请求一个1个月的时间窗口,步骤300
  • RRDTool计算1像素约为1小时
  • RRDTool DS从300秒RRA中检索一个月的数据
  • RRDTool使用平均值将此数据进一步整合到每像素1cdp(即每小时)
  • VDEF然后将其合并为第95个百分位
  • 第95百分位计算不准确
因此,您可以看到最终结果是相同的-这正是300秒->1小时整合发生的地方,无论是在RRA中还是在图表时间

使用宽图形时,每个像素的时间会变小,RRDTool不再需要执行额外的数据合并,从而实现更精确的计算:

  • 你要求一个月的时间窗口
  • RRDTool计算1像素约为5分钟
  • RRDTool DS从300秒RRA中检索一个月的数据
  • 无需进一步合并
  • VDEF然后将其合并为第95个百分位
  • 第95个百分位数的计算是准确的
当您使用
rrdtool fetch
1检索原始数据时,此额外的合并不会发生,因此您会得到:

  • 您在步骤300中要求1个月的时间窗口
  • RRDTool DS从300秒RRA中检索一个月的数据
  • 这些数据被输出
  • 然后,您的电子表格将计算第95个百分位数
  • 第95个百分位数的计算是正确的(间隔5分钟,尽可能接近)
你的下一个问题可能是,我如何阻止这种情况发生?不幸的是,你不能。RRDTool没有百分比类型CF,因此无法在RRA中执行正确的计算(这将是唯一真正的解决方案)


MRTG的Routers2前端计算了图形的第95个百分位,其方法是执行高分辨率的
获取
,以获取原始数据并在内部计算值,然后在制作图形时将其传递到
规则
。换句话说,由于您遇到的这个问题,它根本不使用
VDEF

您能给出完整的图形命令,包括DS定义和开始/结束吗?我怀疑问题在于隐式RRA选择,可能是由于fencepost错误
...
--step 300
...
"VDEF:perca=a,95,PERCENT",
...
        '-s', '300',
       ...
        "RRA:AVERAGE:0.5:1:53568",      # 6 months pdp
        "RRA:AVERAGE:0.5:12:8904",      # 1 hour, 1 year.
        "RRA:AVERAGE:0.5:288:730",      # 1 day, 2 years.
        "RRA:AVERAGE:0.5:2016:520",     # 1 week, 10 years.
        "RRA:MAX:0.5:1:600",            # 5 min: 2 days
        "RRA:MAX:0.5:12:8904",          # 1 hour, 1 year.
        "RRA:MAX:0.5:288:730",          # 1 day, 2 years.
        "RRA:MAX:0.5:2016:520",         # 1 week, 10 years