metrics.sh/sysmetricsd.sh

43 lines
847 B
Bash
Raw Normal View History

2015-02-19 20:15:38 +01:00
#!/bin/sh
2015-02-21 18:18:27 +01:00
# config
INTERVAL=2
REPORTER=stdout
# init
source utils.sh
_METRICS=()
# load reporter
source ./reporters/${REPORTER}.sh
copy_function report _r_${REPORTER}_report
unset -f report
# load metrics
for file in $(find ./metrics -type f -name '*.sh'); do
source $file
filename=$(basename $file)
metric=${filename%.*}
copy_function collect _m_${metric}_collect
_METRICS+=($metric)
unset -f collect
unset -f init
done
# init metrics
for metric in ${_METRICS[@]}; do
[ "`type -t _m_${metric}_init`" != 'function' ] && continue
echo init metric "$metric"
_m_${metric}_init
done
# collect metrics
while true; do
for metric in ${_METRICS[@]}; do
[ "`type -t _m_${metric}_collect`" != 'function' ] && continue
result=$(_m_${metric}_collect)
_r_${REPORTER}_report $metric $result
done
sleep $INTERVAL
2015-02-19 20:15:38 +01:00
done