-
-
Save jjasghar/4c46691969a915767ee2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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