mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 02:51:03 +00:00
Add syncthing plugin
This commit is contained in:
parent
1bba76b53b
commit
6ee4fc8d30
6 changed files with 151 additions and 0 deletions
BIN
plugins/syncthing/example-graphs/syncthing_-1.png
Normal file
BIN
plugins/syncthing/example-graphs/syncthing_-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
plugins/syncthing/example-graphs/syncthing_-2.png
Normal file
BIN
plugins/syncthing/example-graphs/syncthing_-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
plugins/syncthing/example-graphs/syncthing_-3.png
Normal file
BIN
plugins/syncthing/example-graphs/syncthing_-3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
BIN
plugins/syncthing/example-graphs/syncthing_-4.png
Normal file
BIN
plugins/syncthing/example-graphs/syncthing_-4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
plugins/syncthing/example-graphs/syncthing_-5.png
Normal file
BIN
plugins/syncthing/example-graphs/syncthing_-5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
151
plugins/syncthing/syncthing_
Executable file
151
plugins/syncthing/syncthing_
Executable file
|
@ -0,0 +1,151 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# -*- sh -*-
|
||||||
|
: <<=cut
|
||||||
|
=head1 NAME
|
||||||
|
syncthing_ - Plugin to monitor Syncthing server
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
This plugin gathers metrics from a Syncthing server.
|
||||||
|
|
||||||
|
This plugin requires the jq utility : https://stedolan.github.io/jq/
|
||||||
|
|
||||||
|
Available plugins :
|
||||||
|
syncthing_cpu #
|
||||||
|
syncthing_mem #
|
||||||
|
syncthing_goroutine #
|
||||||
|
syncthing_transfer #
|
||||||
|
syncthing_uptime #
|
||||||
|
|
||||||
|
=head1 CONFIGURATION
|
||||||
|
To make the plugin connect to the Syncthing server one has to use this type of
|
||||||
|
configuration
|
||||||
|
[syncthing_*]
|
||||||
|
|
||||||
|
env.ST_APIKEY myapikey0123456789
|
||||||
|
env.ST_HOST 127.0.0.1
|
||||||
|
env.ST_PORT 8384
|
||||||
|
env.ST_PROTO http
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
|
||||||
|
|
||||||
|
=head1 LICENSE
|
||||||
|
MIT
|
||||||
|
=cut
|
||||||
|
|
||||||
|
function cpu {
|
||||||
|
case $1 in
|
||||||
|
config)
|
||||||
|
cat <<'EOM'
|
||||||
|
graph_title Syncthing server cpu usage
|
||||||
|
graph_args -u 100
|
||||||
|
graph_vlabel %
|
||||||
|
graph_category network
|
||||||
|
syncthing_cpu.label cpu
|
||||||
|
EOM
|
||||||
|
exit 0;;
|
||||||
|
*)
|
||||||
|
printf "syncthing_cpu.value "
|
||||||
|
curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.cpuPercent'
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function mem {
|
||||||
|
case $1 in
|
||||||
|
config)
|
||||||
|
cat <<'EOM'
|
||||||
|
graph_title Syncthing server memory
|
||||||
|
graph_category network
|
||||||
|
graph_order syncthing_mem_all syncthing_mem_sys
|
||||||
|
graph_args --base 1000
|
||||||
|
graph_vlabel bits
|
||||||
|
syncthing_mem_all.label allocated
|
||||||
|
syncthing_mem_all.cdef syncthing_mem_all,8,*
|
||||||
|
syncthing_mem_sys.label obtained
|
||||||
|
syncthing_mem_sys.cdef syncthing_mem_sys,8,*
|
||||||
|
EOM
|
||||||
|
exit 0;;
|
||||||
|
*)
|
||||||
|
ALL=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.alloc')
|
||||||
|
SYS=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.sys')
|
||||||
|
printf "syncthing_mem_all.value $ALL\nsyncthing_mem_sys.value $SYS\n"
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function uptime {
|
||||||
|
case $1 in
|
||||||
|
config)
|
||||||
|
cat <<'EOM'
|
||||||
|
graph_title Syncthing server uptime
|
||||||
|
graph_vlabel uptime in seconds
|
||||||
|
graph_category network
|
||||||
|
syncthing_uptime.label uptime
|
||||||
|
EOM
|
||||||
|
exit 0;;
|
||||||
|
*)
|
||||||
|
printf "syncthing_uptime.value "
|
||||||
|
curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.uptime'
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function goroutine {
|
||||||
|
case $1 in
|
||||||
|
config)
|
||||||
|
cat <<'EOM'
|
||||||
|
graph_title Syncthing server go routines
|
||||||
|
graph_vlabel number of go routines
|
||||||
|
graph_category network
|
||||||
|
syncthing_goroutine.label routines
|
||||||
|
EOM
|
||||||
|
exit 0;;
|
||||||
|
*)
|
||||||
|
printf "syncthing_goroutine.value "
|
||||||
|
curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/status | jq '.goroutines'
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function transfer {
|
||||||
|
case $1 in
|
||||||
|
config)
|
||||||
|
cat <<'EOM'
|
||||||
|
graph_title Syncthing server total transfer
|
||||||
|
graph_category network
|
||||||
|
graph_order syncthing_transfer_down syncthing_transfer_up
|
||||||
|
graph_args --base 1000
|
||||||
|
graph_vlabel bits in (-) / out (+) per ${graph_period}
|
||||||
|
syncthing_transfer_down.label received
|
||||||
|
syncthing_transfer_down.type COUNTER
|
||||||
|
syncthing_transfer_down.graph no
|
||||||
|
syncthing_transfer_down.cdef syncthing_transfer_down,8,*
|
||||||
|
syncthing_transfer_up.label bps
|
||||||
|
syncthing_transfer_up.type COUNTER
|
||||||
|
syncthing_transfer_up.negative syncthing_transfer_down
|
||||||
|
syncthing_transfer_up.cdef syncthing_transfer_up,8,*
|
||||||
|
EOM
|
||||||
|
exit 0;;
|
||||||
|
*)
|
||||||
|
IBT=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | jq '.total | .inBytesTotal')
|
||||||
|
OBT=$(curl -s -X GET -H "X-API-Key: $ST_APIKEY" $ST_PROTO://$ST_HOST:$ST_PORT/rest/system/connections | jq '.total | .outBytesTotal')
|
||||||
|
printf "syncthing_transfer_up.value $IBT\nsyncthing_transfer_down.value $OBT\n"
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
case $(basename $0) in
|
||||||
|
syncthing_cpu)
|
||||||
|
cpu $1
|
||||||
|
exit 0;;
|
||||||
|
syncthing_mem)
|
||||||
|
mem $1
|
||||||
|
exit 0;;
|
||||||
|
syncthing_uptime)
|
||||||
|
uptime $1
|
||||||
|
exit 0;;
|
||||||
|
syncthing_goroutine)
|
||||||
|
goroutine $1
|
||||||
|
exit 0;;
|
||||||
|
syncthing_transfer)
|
||||||
|
transfer $1
|
||||||
|
exit 0;;
|
||||||
|
esac
|
Loading…
Add table
Add a link
Reference in a new issue