Sida 1 av 1

Ta bort spikar / extremer ur RRD, läs här hur!

Postat: 07 maj 2010, 12:11
av rothman
Jag hade min elmätare lite väl exponerad för solen och LED detektorn fick frispel. Jävligt trist för jag har samlat data över året som jag inte vill förlora.

Efter mycket sökande hittade jag ett sätt som funkar, killspike2:

Först! Ta en kopia på den RRD filen du ska jobba med!

Skapa en fil som heter killspike2.sh med följande innehåll.

Kod: Markera allt

#!/bin/sh

#
# killspike2
# Remove (presumably erroneous) peaks from RRD files
#
# Matt Zimmerman <mdz@debian.org>, 05/2002
#

set -e

usage() {
    >&2 echo "Usage: $0 <ds> <max> <rrd>..."
    >&2 echo
    >&2 echo "Remove all peaks above <max> from <ds> in the RRDs <rrd>..."
    exit $1
}

backupdir=backup.killspike2

ds=$1
max=$2

if [ -z "$ds" -o -z "$max" ]; then
    usage 1
fi

shift 2

rrds=$*

if [ "$ds" = "-h" -o -z "$rrds" ]; then
    usage 1
fi

[ ! -d $backupdir ] && mkdir $backupdir
echo "Making backups in $backupdir"

if type tempfile >/dev/null 2>&1; then
    tempfile=`tempfile`
else
    tempfile=killspike2.$$
fi

for rrd in $rrds; do
    echo $rrd

    oldmax=`rrdtool info "$rrd" | awk '$1 == "ds['$ds'].max" { print $3 }'`
    if [ -z "$oldmax" ]; then
        >&2 echo "Could not determine current max for DS '$ds' in $rrd"
        exit 1
    elif [ "$oldmax" = "NaN" ]; then
        oldmax=U
    fi

#    cp "$rrd" "$backupdir"
    rrdtool tune "$rrd" --maximum "$ds:$max"
    rrdtool dump "$rrd" > "$tempfile"
    mv "$rrd" "$backupdir"
    rrdtool restore -r "$tempfile" "$rrd"
    rrdtool tune "$rrd" --maximum "$ds:$oldmax"
done

rm -f "$tempfile"

Kör sedan:

Kod: Markera allt

sh killspike2.sh energi 10 energi.rrd
Där 10 är maximala värde, där får man laborera lite, börja högt och sänk mer och mer medans ni kollar på graferna. 4.5 ger mig max 10 kW. Your mileage may vary
(min datakälla heter energi i filen energi.rrd)


OBS! Denna sänker inte spikarna utan tar bort dom! Det blir alltså hål i graferna.

Re: Ta bort spikar / extremer ur RRD, läs här hur!

Postat: 29 sep 2010, 21:59
av andreas
Precis vad jag behövde för att städa bort spikar i min loggning av elförbrukning.

Re: Ta bort spikar / extremer ur RRD, läs här hur!

Postat: 13 feb 2013, 12:31
av Niklas
Idag så sket sig min rapportering med en jättespik när vi fick strömavbrott.

Scriptet verkar inte funka. Katastrof!

Så här är det innan scriptet:
energi-1day (1).png
energi-1day (1).png (22.03 KiB) Visad 2513 gånger
Så här blir det efter:
energi-1day.png
energi-1day.png (19.97 KiB) Visad 2513 gånger
Jag försökte att konvertera RRD-filen till XML och manuellt ta bort allt som hände från 9 och framåt men det blir likadant med scriptet. :(

HJÄLP!