Skip to content

Instantly share code, notes, and snippets.

@tatsuru
Created December 19, 2014 10:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tatsuru/2d67e5b8cb32b4acfd79 to your computer and use it in GitHub Desktop.
Save tatsuru/2d67e5b8cb32b4acfd79 to your computer and use it in GitHub Desktop.
Theschwartz job count plugin for Mackerel
#!/bin/bash
usage() {
echo "Usage: $0 [-m METRIC_NAME] [-u USER] [-p PASSWORD] [-d DATABASE] [-h]"
}
METRIC_NAME=theschwartz.count
DBUSER=root
DBPASS=
DATABASE=theschwartz
while getopts m:u:p:d:h OPT
do
case $OPT in
h) usage && exit 0 ;;
m) METRIC_NAME=$OPTARG ;;
u) DBUSER=$OPTARG ;;
p) PASSWORD=$OPTARG ;;
d) DATABASE=$OPTARG ;;
esac
done
shift $(($OPTIND - 1))
MYSQL="mysql --skip-column-names -u${DBUSER} ${DATABASE}"
[ -z $PASSWORD ] || MYSQL="${MYSQL} -p${PASSWORD}"
SQL="select funcname, count(jobid) from job right join funcmap using(funcid) group by funcmap.funcid;"
now=$(date +%s)
$MYSQL -e "$SQL" | while read job count; do
echo -e "${METRIC_NAME}.${job//::/_}\t${count}\t${now}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment