Last active
October 21, 2020 00:29
-
-
Save samber/0d6b91aae7600d8cfede66ab63263e19 to your computer and use it in GitHub Desktop.
Ejabberd Prometheus exporter
This file contains hidden or 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 | |
NAMESPACE="ejabberd" | |
EJABBERD_CLI="docker exec -i ejabberd-1 ejabberdctl" | |
function gauge() { | |
metric_name=$NAMESPACE"_"$1 | |
help_message=$2 | |
value=$3 | |
echo " | |
# HELP $metric_name $help_message\r\n | |
# TYPE $metric_name gauge\r\n | |
$metric_name{} $value\r\n | |
" | |
} | |
function slash_metrics() { | |
gauge "visitors" "Number of visitors connected to Ejabberd" `$EJABBERD_CLI connected_users_info | grep customer | wc -l` | |
gauge "agents" "Number of agents connected to Ejabberd" `$EJABBERD_CLI connected_users_info | grep operators | wc -l` | |
gauge "http" "Number of http connections to Ejabberd" `$EJABBERD_CLI connected_users_info | grep http-bind | wc -l` | |
gauge "websocket" "Number of websocket connections to Ejabberd" `$EJABBERD_CLI connected_users_info | grep websocket | wc -l` | |
gauge "muc" "Number of muc started on Ejabberd" `$EJABBERD_CLI muc_online_rooms global | wc -l` | |
gauge "instances" "Number of instances in the Ejabberd cluster" `$EJABBERD_CLI list_cluster | wc -l` | |
gauge "registered_users" "Number of users registered in Ejabberd" `$EJABBERD_CLI stats registeredusers` | |
gauge "users" "Number of users in Ejabberd" `$EJABBERD_CLI stats onlineusers` | |
gauge "processes" "Number of processes started in Ejabberd cluster" `$EJABBERD_CLI stats processes` | |
} | |
if [ "$1" = "start" ]; then | |
echo "Starting server" | |
path=$0 | |
socat tcp-l:9000,reuseaddr,fork EXEC:$path | |
else | |
echo -ne "HTTP/1.1 200 OK\r\n\r\n"`slash_metrics` | |
fi |
Author
samber
commented
Dec 6, 2016
•
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment