In some cases you may want to delete all rrd archives from a specific datacollection for all nodes in all requisitions. This would be needed if you have changed the rrd configuration or collecting interval as these changes require fresh rrd files.
It can be very difficult because sometimes the metrics are stored directly in the rrd root folder of a node and there is no easy way to match against the files you want to delete.
(Note: this does not apply to Newts users as all data points are kept in the Newts database)
The following example is based on the ElasticSearch XML datacollection. With a little Bash kung fu, it is very easy to solve the problem.
Select all Elasticsearch metrics from the collection definition, add the file extension
.rrdat the end of the file name and create a temporary file list:
grep name $OPENNMS_HOME/etc/xml-datacollection/elasticsearch-cluster-stats.xml | cut -d'"' -f 2 | sed 's/$/\.rrd/' > filelist.txt
Based on the list, find all files and delete them:
find $OPENNMS_HOME/share/rrd/snmp/ | grep -f <(sed 's@^@/@; s/$/$/; s/\([\.[\*]\|\]\)/\\\1/g' filelist.txt) | xargs rm
This procedure also fits for other SNMP data collections. Just change search pattern in the first command and proceed with the second one as written above:
grep alias $OPENNMS_HOME/etc/datacollection/apc.xml | cut -d'"' -f 6 | sed 's/$/\.rrd/' > filelist.txt