mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
Add strelaysrv plugin
Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
This commit is contained in:
parent
f1afd73f71
commit
cc24efff2d
145
plugins/syncthing/strelaysrv_
Executable file
145
plugins/syncthing/strelaysrv_
Executable file
@ -0,0 +1,145 @@
|
||||
#!/usr/bin/env bash
|
||||
: <<=cut
|
||||
=head1 NAME
|
||||
strelaysrv_ - Plugin to monitor Syncthing relay server
|
||||
|
||||
=head1 DESCRIPTION
|
||||
This plugin gathers metrics from a Syncthing relay server.
|
||||
|
||||
This plugin requires the jq utility : https://stedolan.github.io/jq/
|
||||
This plugin requires the curl utility : https://curl.haxx.se/
|
||||
|
||||
Available plugins :
|
||||
strelaysrv_goroutine #
|
||||
strelaysrv_num #
|
||||
strelaysrv_proxied #
|
||||
strelaysrv_transfer #
|
||||
strelaysrv_uptime #
|
||||
|
||||
=head1 CONFIGURATION
|
||||
To make the plugin connect to the Syncthing relay server one has to use this type of
|
||||
configuration
|
||||
[strelaysrv_*]
|
||||
|
||||
env.STR_HOST 127.0.0.1
|
||||
env.STR_PORT 22070
|
||||
|
||||
=head1 AUTHOR
|
||||
Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
|
||||
|
||||
=head1 LICENSE
|
||||
MIT
|
||||
=cut
|
||||
|
||||
function num {
|
||||
case $1 in
|
||||
config)
|
||||
cat <<'EOM'
|
||||
graph_title Syncthing relay numbers
|
||||
graph_category network
|
||||
graph_vlabel numbers
|
||||
strelaysrv_num_sessions.label sessions
|
||||
strelaysrv_num_connections.label connections
|
||||
strelaysrv_num_pending.label pending session keys
|
||||
strelaysrv_num_proxies.label proxies
|
||||
EOM
|
||||
exit 0;;
|
||||
*)
|
||||
NS=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numActiveSessions ')
|
||||
NC=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numConnections ')
|
||||
NK=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numPendingSessionKeys ')
|
||||
NP=$($CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.numProxies ')
|
||||
printf "strelaysrv_num_sessions.value $NS\nstrelaysrv_num_connections.value $NC\nstrelaysrv_num_pending.value $NK\nstrelaysrv_num_proxies.value $NP\n"
|
||||
esac
|
||||
}
|
||||
|
||||
function uptime {
|
||||
case $1 in
|
||||
config)
|
||||
cat <<'EOM'
|
||||
graph_title Syncthing relay uptime
|
||||
graph_vlabel uptime in seconds
|
||||
graph_category network
|
||||
strelaysrv_uptime.label uptime
|
||||
EOM
|
||||
exit 0;;
|
||||
*)
|
||||
printf "strelaysrv_uptime.value "
|
||||
$CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.uptimeSeconds'
|
||||
esac
|
||||
}
|
||||
|
||||
function goroutine {
|
||||
case $1 in
|
||||
config)
|
||||
cat <<'EOM'
|
||||
graph_title Syncthing relay go routines
|
||||
graph_vlabel number of go routines
|
||||
graph_category network
|
||||
strelaysrv_goroutine.label routines
|
||||
EOM
|
||||
exit 0;;
|
||||
*)
|
||||
printf "strelaysrv_goroutine.value "
|
||||
$CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.goNumRoutine'
|
||||
esac
|
||||
}
|
||||
|
||||
function proxied {
|
||||
case $1 in
|
||||
config)
|
||||
cat <<'EOM'
|
||||
graph_title Syncthing relay total proxied bits
|
||||
graph_category network
|
||||
graph_vlabel bits
|
||||
graph_args --base 1000
|
||||
strelaysrv_proxied.label bits
|
||||
strelaysrv_proxied.cdef strelaysrv_proxied,8,*
|
||||
EOM
|
||||
exit 0;;
|
||||
*)
|
||||
printf "strelaysrv_proxied.value "
|
||||
$CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.bytesProxied '
|
||||
esac
|
||||
}
|
||||
|
||||
function transfer {
|
||||
case $1 in
|
||||
config)
|
||||
cat <<'EOM'
|
||||
graph_title Syncthing relay transfer rate
|
||||
graph_category network
|
||||
graph_vlabel bps
|
||||
graph_args --base 1000
|
||||
strelaysrv_transfer.label bps
|
||||
strelaysrv_transfer.cdef strelaysrv_transfer,1000,*
|
||||
EOM
|
||||
exit 0;;
|
||||
*)
|
||||
printf "strelaysrv_transfer.value "
|
||||
$CURL -s http://$STR_HOST:$STR_PORT/status | $JQ '.kbps10s1m5m15m30m60m[2] '
|
||||
esac
|
||||
}
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
CURL=$(which curl)
|
||||
JQ=$(which jq)
|
||||
|
||||
case $(basename $0) in
|
||||
strelaysrv_num)
|
||||
num $1
|
||||
exit 0;;
|
||||
strelaysrv_uptime)
|
||||
uptime $1
|
||||
exit 0;;
|
||||
strelaysrv_goroutine)
|
||||
goroutine $1
|
||||
exit 0;;
|
||||
strelaysrv_proxied)
|
||||
proxied $1
|
||||
exit 0;;
|
||||
strelaysrv_transfer)
|
||||
transfer $1
|
||||
exit 0;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user