[rrd-users] how can i rebuild my rrd files ?

mozatkey mozatkey at gmail.com
Wed Jul 4 03:48:37 CEST 2012


thanks Karl, about #2

i am trying this:
1.rrdtool dump old.rrd tmp.xml
2.modify tmp.xml add HWPREDICT SEASONAL DEVSEASONAL DEVPREDICT FAILURES 
default unkonwn
3.rrdtool restore tmp.xml new.rrd

if it works, i will response you as soon as possible.


于 2012年07月02日 23:20, Karl Fischer 写道:
> Am 02.07.2012 11:21, schrieb mozatkey:
>> hi,all:
>>
>> 1. How can I get the creating script if only having xxx.rrd ?
>> There are a lot of rrd files, i can't get all the creating script for
>> each one, because they have been modified many times by handle operation.
>>
>> 2.How can I set the HWPREDICT with those old rrd files?
>> These old rrds files don't set the HWPREDICT, but now i have to use it.
>>
>> 3. Is there any orders like: "show create rrd" and "alter xxx.rrd add
>> HWPREDICT" in rrdtool , just as what we did in pl/sql?
> can't answer #2, but as a "show create" I'm using a little bash script.
> On purpose it's bash only, no sed, no awk, no perl etc.
>
> It's not perfect (eg. doesn't support the HWPREDICT stuff etc.) but it
> works for my purpose. Feel free to add the missing functions ...
>
> it works like this:
>
> showcreate.sh /tmp/CPU.rrd
>
> rrdtool create "/tmp/CPU.rrd"
>          --step 2
>          DS:loadavg:GAUGE:120:0:1e+03
>          DS:user:COUNTER:120:0:1e+02
>          DS:nice:COUNTER:120:0:1e+02
>          DS:system:COUNTER:120:0:1e+02
>          DS:iowait:COUNTER:120:0:1e+02
>          DS:irq:COUNTER:120:0:1e+02
>          DS:softrq:COUNTER:120:0:1e+02
>          RRA:AVERAGE:5e-01:2:345600
>          RRA:AVERAGE:5e-01:30:576000
>          RRA:AVERAGE:5e-01:300:157680
>          RRA:AVERAGE:5e-01:1800:52560
>
>
> $ cat /usr/local/bin/showcreate.sh
>
> #!/bin/bash
>
> RRDTOOL=($(which rrdtool))
>
> function rrdinfo() {
>    $RRDTOOL info $1 \
>    | while read line; do
>        key=${line%% = *}
>        pri=${key%%[*}
>        ind=${key%%]*}
>        ind=${ind##*[}
>        sub=${key##*.}
>        value=${line##* = }
>        num=${value/0000e/e}
>        num=${num/0000e/e}
>        num=${num/00e/e}
>        num=${num/0e/e}
>        num=${num/.e/e}
>        num=${num/e+00/}
>        num=${num/#NaN/U}
>        case "$pri" in
>          filename)
>            echo "rrdtool create $value"
>            ;;
>          step)
>            echo -e "\t--step $value"
>            ;;
>          ds)
>            case "$sub" in
>              value)
>                echo -e "\tDS:$DS:$TYPE:$HB:$MIN:$MAX"
>                ;;
>              type)
>                DS=$ind
>                TYPE=${value//\"}
>                case "$TYPE" in
>                  GAUGE|COUNTER|DERIVE|ABSOLUTE)
>                    # ok
>                    ;;
>                  *)
>                    echo "unknown data source type $TYPE"
>                    exit 1
>                    ;;
>                esac
>                ;;
>              minimal_heartbeat)
>                HB=$value
>                ;;
>              min)
>                MIN=$num
>                ;;
>              max)
>                MAX=$num
>                ;;
>            esac
>            ;;
>          rra)
>            case "$sub" in
>              unknown_datapoints)
>                if [ -n "$CF" ]; then
>                  echo -e "\tRRA:$CF:$XFF:$PDPS:$ROWS"
>                  CF=""
>                fi
>                ;;
>              cf)
>                CF=${value//\"}
>                case "$CF" in
>                  AVERAGE|MIN|MAX|LAST)
>                    # OK
>                    ;;
>                  *)
>                    echo "unknown consolidation $CF"
>                    exit 1
>                    ;;
>                esac
>                ;;
>              xff)
>                XFF=$num
>                ;;
>              pdp_per_row)
>                PDPS=$num
>                ;;
>              rows)
>                ROWS=$num
>                ;;
>            esac
>            ;;
>        esac
>      done
>      echo ""
> }
>
> while [ -n "$1" ]; do
>    if [ -r $1 ]; then
>      rrdinfo $1
>    fi
>    shift
> done




More information about the rrd-users mailing list