raspiblitz/home.admin/assets/telegraf/etc-telegraf/getserviceuptime.sh

34 lines
2.8 KiB
Bash

#!/bin/bash
#
###############################################################################
# File: getserviceuptime.sh
# Date: 2020-10-12
###############################################################################
# collect the service uptimes into variables
# some of the variables may contain "" as the pidof/pgrep may fail due to non-existens of that process
#
bitcoind_uptime=$(ps -p `pidof bitcoind` -o etimes='' 2>/dev/null | tr -d '[:space:]')
lnd_uptime=$(ps -p `pidof lnd` -o etimes='' 2>/dev/null | tr -d '[:space:]')
electrs_uptime=$(ps -p `pidof electrs` -o etimes='' 2>/dev/null | tr -d '[:space:]')
telegraf_uptime=$(ps -p `pidof telegraf` -o etimes='' 2>/dev/null | tr -d '[:space:]')
sshd_uptime=$(ps -p `pgrep -f /usr/sbin/sshd` -o etimes='' 2>/dev/null | tr -d '[:space:]')
rtl_uptime=$(ps -p `pgrep -f RTL` -o etimes='' 2>/dev/null | tr -d '[:space:]')
btcrpexp_uptime=$(ps -p `pgrep -f "sh -c node ./bin/www"` -o etimes='' 2>/dev/null | tr -d '[:space:]')
mempool_uptime=$(ps -p `pgrep -f "/usr/bin/node --max-old-space-size=2048 dist/index.js"` -o etimes='' 2>/dev/null | tr -d '[:space:]')
#
# whenever a variable contains a valid integer...spit out a line in influx-line-format
# (see https://stackoverflow.com/a/19116862 for details "Test whether string is a valid integer")
#
if [ "$bitcoind_uptime" -eq "$bitcoind_uptime" ] 2>/dev/null; then echo "service_uptime,service=bitcoind uptime=${bitcoind_uptime}i" ;fi
if [ "$lnd_uptime" -eq "$lnd_uptime" ] 2>/dev/null; then echo "service_uptime,service=lnd uptime=${lnd_uptime}i" ;fi
if [ "$electrs_uptime" -eq "$electrs_uptime" ] 2>/dev/null; then echo "service_uptime,service=electrs uptime=${electrs_uptime}i" ;fi
if [ "$telegraf_uptime" -eq "$telegraf_uptime" ] 2>/dev/null; then echo "service_uptime,service=telegraf uptime=${telegraf_uptime}i" ;fi
if [ "$sshd_uptime" -eq "$sshd_uptime" ] 2>/dev/null; then echo "service_uptime,service=sshd uptime=${sshd_uptime}i" ;fi
if [ "$rtl_uptime" -eq "$rtl_uptime" ] 2>/dev/null; then echo "service_uptime,service=RTL uptime=${rtl_uptime}i" ;fi
if [ "$btcrpexp_uptime" -eq "$btcrpexp_uptime" ] 2>/dev/null; then echo "service_uptime,service=btcrpcexplorer uptime=${btcrpexp_uptime}i" ;fi
if [ "$mempool_uptime" -eq "$mempool_uptime" ] 2>/dev/null; then echo "service_uptime,service=mempool uptime=${mempool_uptime}i" ;fi
# -eof-