Calcule a média de cada 5 amostras com rrdtool ou outras linguagens

3

Eu quero fazer uma média de 5 amostras e calcular um valor único:

Saída atual - eu coloquei resolução de 5 minutos mas recebi 5 amostras:

$ 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

Resultado desejado:

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

Eu quero calculá-lo com rrdtool ou outra linguagem como perl, bash, etc ...

    
por Jaime 13.06.2012 / 19:55

1 resposta

1

O comando fetch recupera apenas dados do RRA bruto; se você não tiver um RRA da granularidade solicitada, o mais próximo disponível será usado, mas nenhum cálculo adicional será realizado.

Adicione um novo RRA ao seu arquivo RRD ao criar seu arquivo RRD, com uma regra 1cdp == 5pdp. EG

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

Este exemplo define 400 linhas; você pode querer usar mais.

Quando você tem um RRA de 5pdp, então você pode usar rrdtool fetch -r 300 , caso contrário, se você tiver apenas um RAD de 1pdp, você só pode usar uma resolução de 60 (um passo).

Você também pode dar uma olhada em rrdtool xport que (da mesma forma que rrdtool graph ) permite definir valores calculados de saída que podem ser resumos.

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

Isso pressupõe que seu DS seja ds0 , e não é tão eficiente quanto fazer um fetch quando você já tem o RRA necessário.

    
por 09.08.2013 / 04:58