Projet

Général

Profil

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

root / plugins / router / bbox @ 55b983f3

Historique | Voir | Annoter | Télécharger (4,03 ko)

1
#! /bin/sh
2

    
3
: <<=cut
4

    
5
=head1 NAME
6

    
7
bbox - parse bbox information - https://fr.wikipedia.org/wiki/Bbox
8

    
9
=head1 CONFIGURATION
10

    
11
The following default configuration is used:
12

    
13
 [bbox]
14
 env.IP 192.168.1.254
15

    
16
=head1 AUTHORS
17

    
18
Copyright (C) 2018 Steve Schnepp <steve.schnepp@pwkf.org>
19

    
20

    
21
=head1 LICENSE
22

    
23
GNU Library General Public License v2 only
24

    
25
SPDX-License-Identifier: GPL-2.0-only
26

    
27
=cut
28

    
29

    
30
# fail on error
31
set -e
32

    
33
IP=${IP:-"192.168.1.254"}
34

    
35
if [ "$1" = "config" ]
36
then
37
	echo multigraph bbox_adsl_bw
38
	echo graph_title BBox Adsl Bandwidth
39
	echo graph_category network
40
	echo up.label UpStream
41
	echo down.label DownStream
42

    
43
	echo multigraph bbox_adsl_att
44
	echo graph_title BBox Adsl Attenuation
45
	echo graph_category network
46
	echo up.label UpStream
47
	echo down.label DownStream
48

    
49
	echo multigraph bbox_adsl_snr
50
	echo graph_title BBox Adsl SignalNoise Ratio
51
	echo graph_category network
52
	echo up.label UpStream
53
	echo down.label DownStream
54

    
55
	echo multigraph bbox_adsl_pkt
56
	echo graph_title BBox Adsl Packets
57
	echo graph_category network
58
	echo graph_order up down up_f down_f up_c down_c up_u down_u
59
	echo graph_vlabel packets/\${graph_period}
60
	echo graph_args --base 1000 --logarithmic --lower-limit 0.001
61
	echo up.label UpStream
62
	echo down.label DownStream
63
	echo up_f.label UpStream "(FEC)"
64
	echo down_f.label DownStream "(FEC)"
65
	echo up_c.label UpStream "(CRC)"
66
	echo down_c.label DownStream "(CEC)"
67
	echo up_u.label UpStream "(HEC)"
68
	echo down_u.label DownStream "(HEC)"
69
	echo up.type DERIVE
70
	echo down.type DERIVE
71
	echo up_f.type DERIVE
72
	echo down_f.type DERIVE
73
	echo up_c.type DERIVE
74
	echo down_c.type DERIVE
75
	echo up_u.type DERIVE
76
	echo down_u.type DERIVE
77
	echo up.min 0
78
	echo down.min 0
79
	echo up_f.min 0
80
	echo down_f.min 0
81
	echo up_c.min 0
82
	echo down_c.min 0
83
	echo up_u.min 0
84
	echo down_u.min 0
85

    
86
	echo multigraph bbox_adsl_bytes
87
	echo graph_title BBox Adsl Usage
88
	echo graph_category network
89
	echo graph_order up down
90
	echo graph_vlabel bytes/\${graph_period}
91
	echo graph_args --base 1024 --lower-limit 0
92
	echo up.label UpStream
93
	echo up.type DERIVE
94
	echo down.label DownStream
95
	echo down.type DERIVE
96
	echo up.min 0
97
	echo down.min 0
98

    
99
	echo multigraph bbox_adsl_uptime
100
	echo graph_title BBox Adsl Uptime
101
	echo graph_category network
102
	echo graph_vlabel days
103
	echo uptime.label Uptime
104
	echo uptime.cdef uptime,3600,/,24/
105

    
106
	exit 0
107
fi
108

    
109
TMPFILE="$(mktemp -d)"
110
trap 'rm -Rf "$TMPFILE"' EXIT
111

    
112
cd "$TMPFILE"
113

    
114
curl -s "http://$IP/api/v1/wan/ip" > "ip.json" &
115
curl -s "http://$IP/api/v1/wan/ip/stats" > "ip-stats.json" &
116
curl -s "http://$IP/api/v1/wan/xdsl" > "xdsl.json" &
117
curl -s "http://$IP/api/v1/wan/xdsl/stats" > "xdsl-stats.json" &
118

    
119
wait
120

    
121
if [ "$MUNIN_DEBUG" = 1 ]
122
then
123
	for i in *
124
	do
125
		echo "========= $i ========"
126
		cat "$i"
127
	done
128
fi
129

    
130
echo multigraph bbox_adsl_bw
131
echo up.value $(jq -r ".[].wan.xdsl.up.bitrates" < xdsl.json)
132
echo down.value $(jq -r ".[].wan.xdsl.down.bitrates" < xdsl.json)
133

    
134
echo multigraph bbox_adsl_att
135
echo up.value $(jq -r ".[].wan.xdsl.up.attenuation" < xdsl.json)
136
echo down.value $(jq -r ".[].wan.xdsl.down.attenuation" < xdsl.json)
137

    
138
echo multigraph bbox_adsl_snr
139
echo up.value $(jq -r ".[].wan.xdsl.up.noise" < xdsl.json)
140
echo down.value $(jq -r ".[].wan.xdsl.down.noise" < xdsl.json)
141

    
142
echo multigraph bbox_adsl_pkt
143
echo up.value $(jq -r ".[].wan.ip.stats.tx.packets" < ip-stats.json)
144
echo down.value $(jq -r ".[].wan.ip.stats.rx.packets" < ip-stats.json)
145
echo up_f.value $(jq -r ".[].wan.xdsl.stats.remote_fec" < xdsl-stats.json)
146
echo down_f.value $(jq -r ".[].wan.xdsl.stats.local_fec" < xdsl-stats.json)
147
echo up_c.value $(jq -r ".[].wan.xdsl.stats.remote_hec" < xdsl-stats.json)
148
echo down_c.value $(jq -r ".[].wan.xdsl.stats.local_hec" < xdsl-stats.json)
149
echo up_u.value $(jq -r ".[].wan.xdsl.stats.remote_crc" < xdsl-stats.json)
150
echo down_u.value $(jq -r ".[].wan.xdsl.stats.local_crc" < xdsl-stats.json)
151

    
152
echo multigraph bbox_adsl_bytes
153
echo up.value $(jq -r ".[].wan.ip.stats.tx.bytes" < ip-stats.json | tr -d '"')
154
echo down.value $(jq -r ".[].wan.ip.stats.rx.bytes" < ip-stats.json | tr -d '"')
155

    
156
echo multigraph bbox_adsl_uptime
157
echo uptime.value $(jq -r ".[].wan.xdsl.showtime" < xdsl.json)
158

    
159
exit 0