Drop a single sample from munin data
graph, linux, monitoring
Solution
Presuming you’re running Linux, it goes something like this:
# 1) Stop the cron job from running
sudo mv /etc/cron.d/munin /tmp/munin-cron-job
# 2) Run as munin account
sudo su - munin
# 3) Wait a minute, else run this to make sure any
# background munin-cron is finished
munin-cron
# 4) Export data file to XML
rrdtool dump \
/var/lib/munin/example.com/www.example.com-$PLUGIN-d.rrd \
> /tmp/data.xml
# 5) Run your favorite editor on the XML file
# (The data will likely have been transformed.
# Making a backup first wouldn't hurt.)
vi /tmp/data.xml
# 6) Import the changes
rrdtool restore \
/tmp/data.xml \
/var/lib/munin/example.com/www.example.com-$PLUGIN-d.rrd
rm /tmp/data.xml
# You might want to delete related graphic files /var/cache/munin/...
# 7) Exit munin account and re-enable cron job
exit
sudo mv /tmp/munin-cron-job /etc/cron.d/munin
Problem
I'm using munin to monitor a postgresql database and I made a 1 time change that caused munin to get a bad sammple (queries per second many orders of magnitude out of the normal range) that is screwing up my graphs. Is there any way I can easily delete a single data point from the munin data? I guess I need an rrd editor of some kind, but I'm not sure what will be easiest. Annoying that the data isn't just stored in plaintext :(