Skip to content

Instantly share code, notes, and snippets.

@jjasghar
Forked from deepak/mon_passenger.sh
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jjasghar/4c46691969a915767ee2 to your computer and use it in GitHub Desktop.
Save jjasghar/4c46691969a915767ee2 to your computer and use it in GitHub Desktop.
#!/bin/bash
# collectd plugin to monitor passenger
# has better memory-requirement than a ruby script
# TODO: try writing it in c - if it makes a difference
HOSTNAME=`hostname -s`
PASSENGER_STATUS="/usr/local/bin/passenger-status"
PASSENGER_MEMORY_STATS="/usr/local/bin/passenger-memory-stats"
INTERVAL="${COLLECTD_INTERVAL:-10}"
PLUGIN_NAME="passenger_status"
while sleep "$INTERVAL"
do
$PASSENGER_STATUS > /tmp/collectd_passenger_stat
$PASSENGER_MEMORY_STATS > /tmp/collectd_passenger_mem
max=$(cat /tmp/collectd_passenger_stat | grep -i max | awk '{print $5}')
processes=$(cat /tmp/collectd_passenger_stat | grep -i processes | awk '{print $3}')
top_level=$(cat /tmp/collectd_passenger_stat | grep top-level | awk '{print $6}')
sessions=$(awk '/Sessions: / {sum+=$5} END {print sum}' /tmp/collectd_passenger_stat)
echo "PUTVAL $HOSTNAME/$PLUGIN_NAME/gauge-max interval=$INTERVAL N:$max"
echo "PUTVAL $HOSTNAME/$PLUGIN_NAME/gauge-processes interval=$INTERVAL N:$processes"
echo "PUTVAL $HOSTNAME/$PLUGIN_NAME/gauge-top_level interval=$INTERVAL N:$top_level"
echo "PUTVAL $HOSTNAME/$PLUGIN_NAME/gauge-sessions interval=$INTERVAL N:$sessions"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment