Ta bort spikar / extremer ur RRD, läs här hur!
Postat: 07 maj 2010, 12:11
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.
Kör sedan:
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.
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"
Kod: Markera allt
sh killspike2.sh energi 10 energi.rrd
(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.