Назад | Перейти на главную страницу

Рассчитайте среднее значение каждых 5 образцов с помощью rrdtool или других языков

Я хочу сделать в среднем 5 образцов и вычислить одно значение:

Токовый выход - я ставлю разрешение 5 минут, но получаю 5 отсчетов:

$ rrdtool fetch file.rrd  AVERAGE -r 300 --start 1200000000 --end 1200000300
1200000000: 1.3938888889e+00
1200000060: 4.9572222222e+00
1200000120: 7.1675000000e+00
1200000180: 1.0982500000e+01
1200000240: 7.6136111111e+00
1200000300: 7.2169444444e+00

Желаемый результат:

$ rrdtool fetch file.rrd  AVERAGE -r 300 --start 1200000000 --end 1200000300
1200000000: 1.3938888889e+00
1200000300: x.xxxxxxxxxxe+00 - average

Я хочу вычислить его с помощью rrdtool или другого языка, такого как perl, bash и т. Д.

В fetch команда извлекает данные только из необработанного RRA; если у вас нет RRA с запрошенной степенью детализации, будет использоваться ближайший доступный, но никакие дополнительные вычисления производиться не будут.

Добавьте новый RRA в ваш файл RRD при создании файла RRD с правилом 1cdp == 5pdp. НАПРИМЕР

    rrdtool create file.rrd -s 60 
        DS:ds0:GAUGE:120:0:100 
        RRA:AVERAGE:0.5:1:400 RRA:AVERAGE:0.5:5:400

В этом примере устанавливается 400 строк; вы можете захотеть использовать больше.

Если у вас есть RRA 5pdp, вы можете использовать rrdtool fetch -r 300, в противном случае, если у вас есть только RRA 1pdp, вы можете использовать только разрешение 60 (один шаг).

Вы также можете взглянуть на rrdtool xport который (так же, как rrdtool graph) позволяет вам определять выходные рассчитанные значения, которые могут быть сводными.

   rrdtool xport  --step 300 --start 1200000000 --end 1200000300
        --maxrows 400
        DEF:value=file.rrd:ds0:AVERAGE
        XPORT:value

Это предполагает, что ваш DS будет именами ds0 конечно, и это не так эффективно, как выполнение fetch когда у вас уже есть необходимое RRA.