Сумма два графика, когда второй файл RRD начинается только сейчас

StackOverflow https://stackoverflow.com/questions/2378571

  •  24-09-2019
  •  | 
  •  

Вопрос

Я не знаю, как объяснить свою проблему .... но у меня есть два файла RRD:

a.rrd
b.rrd

Я пытаюсь суммировать оба файла и сложить их в графике. подобно:

my $bla = RRDs::graph "-",

    "--title","Test",
    "--imgformat=PNG",
    "--width=680",
    "--height=200",

    "DEF:Default0_=a.rrd:default:AVERAGE",
    "DEF:Real0_=a.rrd:real:AVERAGE",

    "DEF:Default1_=b.rrd:default:AVERAGE",
    "DEF:Real1_=b.rrd:real:AVERAGE",


    "CDEF:Default=Default0_,Default1_,+",        
    "CDEF:Real=Real0_,Real1_,+",


    'AREA:Default#00CF00:Default Test',
    'GPRINT:Default:MIN:Min\: %10.0lf%s',
    'GPRINT:Default:MAX:Max\: %10.0lf%s',
    'GPRINT:Default:AVERAGE:Average\: %10.0lf%s',
    'GPRINT:Default:LAST:Current\: %10.0lf%s \l',

    'STACK:Real#006699:Real Test',
    'LINE2:Real#000000',
    'GPRINT:Real:MIN:Min\: %10.0lf%s',
    'GPRINT:Real:MAX:Max\: %10.0lf%s',
    'GPRINT:Real:AVERAGE:Average\: %10.0lf%s',
    'GPRINT:Real:LAST:Current\: %10.0lf%s \l',

И мой результат:

Alt Text http://www.freeimagehosting.net/uploads/8d99a4a675.jpg.

Проблема: она не печатает значения из файла a.rrd, он отображает график только из положения файла b.rrd.

Институт чего-то вроде этого (только первая часть будет с нулями):

Alt Text http://www.freeimagehosting.net/uploads/e036f93797.jpg.

Очевидно, что это потому, что второй график не имеет временных меток Unix, когда первый график.

Так как я могу заполнить его нулями? Или изменить мой график конф?

Это было полезно?

Решение

Вот решение вашей проблемы :)http://oss.oetiker.ch/rrdtool/tut/cdeftutorial.en.html. Посмотрите на использование, если, время, GT и т. Д. Функции. Вы можете попробовать это: CDEF: Real = Time, ameimestamp, gt, real0_, real0_, un, 0, real0_, если, если, время, ameimestamp, gt, real1_, real1_, un, 0, real1_, если, если, + Это означает: если (время ()> oneimestamp) возвращайте Real0_ else, если (Real0_ == un (это значение NAN в файлах RRD)) Возврат 0 Evel Возврат Real0_ Сделайте то же самое для Real1_ и сделайте сумму двух результат. Надеюсь, я помог :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top