24
2
Fork 0

Compare commits

...

5 Commits

7 changed files with 19 additions and 127 deletions

View File

@ -1,7 +1,7 @@
#! /bin/bash
TEMPLATE=/srv/xmpp.chapril.org/tools/chaprilinfos/template-chaprilinfos.properties
TARGET_FILE=/srv/chaprilinfos/well-known/xmppchaprilorg.properties
TEMPLATE=/srv/xmpp.chapril.org/tools/chatonsinfos/template-chatonsinfos.properties
TARGET_FILE=/srv/chatonsinfos/well-known/xmppchaprilorg.properties
main() {
cat "${TEMPLATE}" \

View File

@ -27,12 +27,14 @@ ejabberdctl_stats() {
echo "PUTVAL \"${HOSTNAME}/xmpp_accounts_created_lastday/count\" interval=$INTERVAL $(date +%s):$(_count_accounts_created_lastday)"
echo "PUTVAL \"${HOSTNAME}/xmpp_accounts_created_lasthour/count\" interval=$INTERVAL $(date +%s):$(_count_accounts_created_lasthour)"
echo "PUTVAL \"${HOSTNAME}/xmpp_total_mam_rows/count\" interval=$INTERVAL $(date +%s):$(_count_mam_rows)"
echo "PUTVAL \"${HOSTNAME}/xmpp_total_mam_size/count\" interval=$INTERVAL $(date +%s):$(_estimate_mam_size)"
echo -n "PUTVAL \"${HOSTNAME}/xmpp_public_rooms_occupants/count\" interval=$INTERVAL $(date +%s):" ; _xmpp_public_rooms_total_occupants
}
http_upload_disk_usage() {
subfolders_count=$(find ${HTTP_UPLOAD_DATADIR} -mindepth 1 -maxdepth 1 -type d | wc -l)
total_size=$(du -s ${HTTP_UPLOAD_DATADIR} | awk '{print $1}')
total_size=$(du --exclude=lost+found -s ${HTTP_UPLOAD_DATADIR} | awk '{print $1}')
avg=$(( ${total_size} / ${subfolders_count} ))
echo "PUTVAL \"${HOSTNAME}/xmpp_upload_data_total/count\" interval=$INTERVAL $(date +%s):${total_size}"
echo "PUTVAL \"${HOSTNAME}/xmpp_upload_data_avg/count\" interval=$INTERVAL $(date +%s):${avg}"
@ -58,6 +60,18 @@ _count_accounts_created_lasthour() {
"
}
_count_mam_rows() {
_sql_ejabberd "SELECT reltuples::bigint AS estimate FROM pg_class WHERE relname = 'archive'"
}
_estimate_mam_size() {
_sql_ejabberd "
select pg_relation_size(relid) as mam_size
from pg_catalog.pg_statio_user_tables
where relname = 'archive'
"
}
_xmpp_public_rooms_total_occupants() {
# keep results in a cache file for 5 minutes
local cache_file=/var/tmp/cache_collectd_xmpp_rooms.data

View File

@ -22,15 +22,6 @@ main() {
echo "* Total disk usage: $(du -sh ${STORAGE_DIR} | awk '{print $1}')"
per_account_storage_usage
DATE=$(get_last_month)
echo ""
echo "h2. ## Audio/Video Call usage:"
echo ""
echo "* Total calls: $(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Offering stun" | wc -l)"
echo "* Data relayed per protocol per call:"
echo "** UDP: avg $(get_avg_UDP_turn_relayed_data) MiB, max $(get_max_UDP_turn_relayed_data) MiB, total $(get_total_UDP_turn_relayed_data) MiB"
echo "** TCP: avg $(get_avg_TCP_turn_relayed_data) MiB, max $(get_max_TCP_turn_relayed_data) MiB, total $(get_total_TCP_turn_relayed_data) MiB"
echo "** TLS: avg $(get_avg_TLS_turn_relayed_data) MiB, max $(get_max_TLS_turn_relayed_data) MiB, total $(get_total_TLS_turn_relayed_data) MiB"
echo ""
echo "h2. ## XMPP/IRC Bridge (Biboumi) usage:"
echo ""
@ -214,64 +205,4 @@ get_last_month() {
echo $yearMonth
}
get_total_UDP_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Relayed" | grep "UDP" | cut -d" " -f6-6 | paste -sd+ - | bc)
echo "scale=4; $n / 1024" | bc -l
}
get_total_TCP_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Relayed" | grep "TCP" | cut -d" " -f6-6 | paste -sd+ - | bc)
echo "scale=4; $n / 1024" | bc -l
}
get_total_TLS_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Relayed" | grep "TLS" | cut -d" " -f6-6 | paste -sd+ - | bc)
echo "scale=4; $n / 1024" | bc -l
}
get_max_UDP_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Relayed" | grep "UDP" | cut -d" " -f6-6 | sort -g | tail -n 1)
echo "scale=4; $n / 1024" | bc -l
}
get_max_TCP_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Relayed" | grep "TCP" | cut -d" " -f6-6 | sort -g | tail -n 1)
echo "scale=4; $n / 1024" | bc -l
}
get_max_TLS_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Relayed" | grep "TLS" | cut -d" " -f6-6 | sort -g | tail -n 1)
echo "scale=4; $n / 1024" | bc -l
}
get_avg_UDP_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Offering stun" | wc -l)
total=$(get_total_UDP_turn_relayed_data)
if [ $n -eq 0 ]; then
echo 0
else
echo "scale=2; $total / $n" | bc -l
fi
}
get_avg_TCP_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Offering stun" | wc -l)
total=$(get_total_TCP_turn_relayed_data)
if [ $n -eq 0 ]; then
echo 0
else
echo "scale=2; $total / $n" | bc -l
fi
}
get_avg_TLS_turn_relayed_data() {
n=$(zgrep "$DATE" /var/log/ejabberd/ejabberd.log* | grep -i -e "Offering stun" | wc -l)
total=$(get_total_TLS_turn_relayed_data)
if [ $n -eq 0 ]; then
echo 0
else
echo "scale=2; $total / $n" | bc -l
fi
}
main

View File

@ -1,52 +0,0 @@
xmpp_user_rooms_count() {
sudo -u ejabberd ejabberdctl get_user_rooms ${1} chapril.org | wc -l
}
xmpp_user_contacts_count() {
sudo -u ejabberd ejabberdctl get_roster ${1} chapril.org | wc -l
}
xmpp_user_info() {
echo "${1}:$(xmpp_user_contacts_count ${1}):$(xmpp_user_rooms_count ${1})"
}
xmpp_users() {
for user in $(sudo -u ejabberd ejabberdctl registered_users chapril.org); do
xmpp_user_info "${user}"
done
}
xmpp_ban_user_by_patern() {
LIST=$(sudo -u ejabberd ejabberdctl registered_users chapril.org | grep ${1} | uniq)
for ADDRESS in $LIST
do
sudo -u ejabberd ejabberdctl kick_user $ADDRESS chapril.org
sudo -u ejabberd ejabberdctl unregister $ADDRESS chapril.org
echo Done with $ADDRESS
done
}
xmpp_send_server_notice() {
sudo -u ejabberd ejabberdctl send_message headline xmpp-admin@chapril.org \
chapril.org/announce/online "Annonce du Serveur" "${1}"
}
xmpp_send_server_notice_to_connected() {
LIST=$(sudo -u ejabberd ejabberdctl connected_users_info | cut -f 1 | cut -d "/" -f 1 | uniq)
for ADDRESS in $LIST
do
sudo -u ejabberd ejabberdctl send_message headline chapril.org "$ADDRESS" "Annonce du Serveur" "${2}"
echo Done with $ADDRESS
done
}
xmpp_send_server_notice_by_pattern() {
LIST=$(sudo -u ejabberd ejabberdctl registered_users chapril.org | grep ${1} | uniq)
for ADDRESS in $LIST
do
sudo -u ejabberd ejabberdctl send_message headline chapril.org "$ADDRESS" "Annonce du Serveur" "${2}"
echo Done with $ADDRESS
done
}

View File

@ -27,8 +27,7 @@ xmpp_ban_users() {
}
xmpp_send_server_notice_all() {
sudo -u ejabberd ejabberdctl send_message headline xmpp-admin@chapril.org \
chapril.org/announce/online "Annonce du Serveur" "${1}"
sudo -u ejabberd ejabberdctl send_message chat chapril.org chapril.org/announce/online "Annonce du Serveur" "${1}"
}
xmpp_send_server_notice_connected() {
@ -41,7 +40,7 @@ xmpp_send_server_notice_connected() {
done
}
xmpp_send_server_notice() {
xmpp_send_server_notice_pattern() {
LIST=$(sudo -u ejabberd ejabberdctl registered_users chapril.org | grep ${1} | uniq)
for ADDRESS in $LIST