Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / router / bbox @ 59fcde25

Historique | Voir | Annoter | Télécharger (3,88 ko)

1
#! /bin/sh
2
# Parse bbox information - https://fr.wikipedia.org/wiki/Bbox
3
# (c) 2018 - GPLv2 - Steve Schnepp <steve.schnepp@pwkf.org>
4
#
5
# Configuration is done via ENV vars, here is the default :
6
#
7
# [bbox]
8
# env.IP 192.168.1.254
9

    
10

    
11
# fail on error
12
set -e
13

    
14
IP=${IP:-"192.168.1.254"}
15

    
16
if [ "$1" = "config" ]
17
then
18
	echo multigraph bbox_adsl_bw
19
	echo graph_title BBox Adsl Bandwidth
20
	echo graph_category network
21
	echo up.label UpStream
22
	echo down.label DownStream
23

    
24
	echo multigraph bbox_adsl_att
25
	echo graph_title BBox Adsl Attenuation
26
	echo graph_category network
27
	echo up.label UpStream
28
	echo down.label DownStream
29

    
30
	echo multigraph bbox_adsl_snr
31
	echo graph_title BBox Adsl SignalNoise Ratio
32
	echo graph_category network
33
	echo up.label UpStream
34
	echo down.label DownStream
35

    
36
	echo multigraph bbox_adsl_pkt
37
	echo graph_title BBox Adsl Packets
38
	echo graph_category network
39
	echo graph_order up down up_f down_f up_c down_c up_u down_u
40
	echo graph_vlabel packets/\${graph_period}
41
	echo graph_args --base 1000 --logarithmic --lower-limit 0.001
42
	echo up.label UpStream
43
	echo down.label DownStream
44
	echo up_f.label UpStream "(FEC)"
45
	echo down_f.label DownStream "(FEC)"
46
	echo up_c.label UpStream "(CRC)"
47
	echo down_c.label DownStream "(CEC)"
48
	echo up_u.label UpStream "(HEC)"
49
	echo down_u.label DownStream "(HEC)"
50
	echo up.type DERIVE
51
	echo down.type DERIVE
52
	echo up_f.type DERIVE
53
	echo down_f.type DERIVE
54
	echo up_c.type DERIVE
55
	echo down_c.type DERIVE
56
	echo up_u.type DERIVE
57
	echo down_u.type DERIVE
58
	echo up.min 0
59
	echo down.min 0
60
	echo up_f.min 0
61
	echo down_f.min 0
62
	echo up_c.min 0
63
	echo down_c.min 0
64
	echo up_u.min 0
65
	echo down_u.min 0
66

    
67
	echo multigraph bbox_adsl_bytes
68
	echo graph_title BBox Adsl Usage
69
	echo graph_category network
70
	echo graph_order up down
71
	echo graph_vlabel bytes/\${graph_period}
72
	echo graph_args --base 1024 --lower-limit 0
73
	echo up.label UpStream
74
	echo up.type DERIVE
75
	echo down.label DownStream
76
	echo down.type DERIVE
77
	echo up.min 0
78
	echo down.min 0
79

    
80
	echo multigraph bbox_adsl_uptime
81
	echo graph_title BBox Adsl Uptime
82
	echo graph_category network
83
	echo graph_vlabel days
84
	echo uptime.label Uptime
85
	echo uptime.cdef uptime,3600,/,24/
86

    
87
	exit 0
88
fi
89

    
90
TMPFILE="$(mktemp -d)"
91
trap 'rm -Rf "$TMPFILE"' EXIT
92

    
93
cd "$TMPFILE"
94

    
95
curl -s "http://$IP/api/v1/wan/ip" > "ip.json" &
96
curl -s "http://$IP/api/v1/wan/ip/stats" > "ip-stats.json" &
97
curl -s "http://$IP/api/v1/wan/xdsl" > "xdsl.json" &
98
curl -s "http://$IP/api/v1/wan/xdsl/stats" > "xdsl-stats.json" &
99

    
100
wait
101

    
102
if [ "$MUNIN_DEBUG" = 1 ]
103
then
104
	for i in *
105
	do
106
		echo "========= $i ========"
107
		cat "$i"
108
	done
109
fi
110

    
111
echo multigraph bbox_adsl_bw
112
echo up.value $(jq -r ".[].wan.xdsl.up.bitrates" < xdsl.json)
113
echo down.value $(jq -r ".[].wan.xdsl.down.bitrates" < xdsl.json)
114

    
115
echo multigraph bbox_adsl_att
116
echo up.value $(jq -r ".[].wan.xdsl.up.attenuation" < xdsl.json)
117
echo down.value $(jq -r ".[].wan.xdsl.down.attenuation" < xdsl.json)
118

    
119
echo multigraph bbox_adsl_snr
120
echo up.value $(jq -r ".[].wan.xdsl.up.noise" < xdsl.json)
121
echo down.value $(jq -r ".[].wan.xdsl.down.noise" < xdsl.json)
122

    
123
echo multigraph bbox_adsl_pkt
124
echo up.value $(jq -r ".[].wan.ip.stats.tx.packets" < ip-stats.json)
125
echo down.value $(jq -r ".[].wan.ip.stats.rx.packets" < ip-stats.json)
126
echo up_f.value $(jq -r ".[].wan.xdsl.stats.remote_fec" < xdsl-stats.json)
127
echo down_f.value $(jq -r ".[].wan.xdsl.stats.local_fec" < xdsl-stats.json)
128
echo up_c.value $(jq -r ".[].wan.xdsl.stats.remote_hec" < xdsl-stats.json)
129
echo down_c.value $(jq -r ".[].wan.xdsl.stats.local_hec" < xdsl-stats.json)
130
echo up_u.value $(jq -r ".[].wan.xdsl.stats.remote_crc" < xdsl-stats.json)
131
echo down_u.value $(jq -r ".[].wan.xdsl.stats.local_crc" < xdsl-stats.json)
132

    
133
echo multigraph bbox_adsl_bytes
134
echo up.value $(jq -r ".[].wan.ip.stats.tx.bytes" < ip-stats.json | tr -d '"')
135
echo down.value $(jq -r ".[].wan.ip.stats.rx.bytes" < ip-stats.json | tr -d '"')
136

    
137
echo multigraph bbox_adsl_uptime
138
echo uptime.value $(jq -r ".[].wan.xdsl.showtime" < xdsl.json)
139

    
140
exit 0