summaryrefslogtreecommitdiff
path: root/src/pmieconf/xtractnames
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmieconf/xtractnames')
-rwxr-xr-xsrc/pmieconf/xtractnames70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/pmieconf/xtractnames b/src/pmieconf/xtractnames
new file mode 100755
index 0000000..33aab7b
--- /dev/null
+++ b/src/pmieconf/xtractnames
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+# Extract metric names (or likely looking ones) from pmieconf files
+# In comparison to the tools/xtractnames version, this one is a little
+# more context sensitive, and not PMNS-driven
+#
+
+for d in ../include ../../include /etc
+do
+ if [ -f $d/pcp.conf ]
+ then
+ . $d/pcp.conf
+ break
+ fi
+done
+
+tmp=`mktemp -d /tmp/pcp.XXXXXXXXX` || exit 1
+trap "rm -rf $tmp; exit" 0 1 2 3 15
+
+_usage()
+{
+ echo "Usage: xtractnames [file ...]"
+}
+
+while getopts "?" c
+do
+ case $c
+ in
+ ?)
+ _usage
+ exit 1
+ ;;
+ esac
+done
+shift `expr $OPTIND - 1`
+
+if [ $# -eq 0 ]
+then
+ # no args, from stdin
+ cat >$tmp/in
+ set -- $tmp/in
+fi
+
+for file
+do
+ awk <$file '
+/^[ ]*predicate[ ]*=/ { want = 1 }
+/^[ ]*enabled[ ]*=/ { exit }
+want == 1 { print }' \
+ | tr -cs 'a-zA-Z0-9_.' '[\012*]' \
+ | grep '[a-zA-Z].*\.[a-zA-Z0-9_]'
+done \
+| $PCP_SORT_PROG -u
+
+exit