munin-contrib/plugins/chat/tinychat_users_

56 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#########################
# tinychat_users_
#########################
# Munin Plugin to track monitor the number of users a tinychat room gets.
# Author Phil Wray ( http://www.infjs.com )
#
#
#
# Usage:
# ln -s /usr/share/munin/plugins/tinychat_users_ /etc/munin/plugins/tinychat_users_your-room
#
# Get the Tinychat Room by parsing this scripts filename.
room=${0##*tinychat_users_}
##
# autoconf
##
if [ "$1" = "autoconf" ]; then
# Check that curl is installed
if command -v curl >/dev/null 2>&1; then
echo "yes"
else
echo "no (no curl installed)"
fi
exit 0
fi
##
# config
##
if [ "$1" = "config" ]; then
echo "graph_title Tinychat Users for $room"
echo 'graph_vlabel Room Users'
echo 'graph_args --base 1000'
echo 'graph_scale no'
echo 'graph_vlabel Room Users'
echo 'graph_category chat'
echo 'total_count.label Room Users'
echo 'total_count.draw AREA'
echo 'broadcaster_count.draw STACK'
echo 'broadcaster_count.label Broadcasting'
exit 0
fi
##
# Main
##
# Get current Room Users.
tinychat_users=$(curl -s http://api.tinychat.com/${room}.json | grep -Eo 'total_count":[0-9]+' | cut -d':' -f2)
broadcasting_users=$(curl -s http://api.tinychat.com/${room}.json | grep -Eo 'broadcaster_count":[0-9]+' | cut -d':' -f2)
# Output Room Users.
echo "total_count.value $tinychat_users"
echo "broadcaster_count.value $broadcasting_users"