force language = english
[GitHub/Stricted/speedport-hybrid-php-api.git] / rrd / graphRRDBs.sh
CommitLineData
9d6ff8a8
S
1#!/bin/bash
2set -eu
3# thanks to Thomas Mellenthin @ https://github.com/melle/l33tport/blob/master/rrdtool/graphRRDBs.sh
4DSLDB=/home/rrd/rrd/dsl.rrd
5LTEDB=/home/rrd/rrd/lteinfo.rrd
6OUTPUTDIR=/var/www/stats
7
8# Pleasant colors from
9# https://oss.oetiker.ch/rrdtool-trac/wiki/OutlinedAreaGraph
10#
11# LIGHT DARK
12# RED #EA644A #CC3118
13# ORANGE #EC9D48 #CC7016
14# YELLOW #ECD748 #C9B215
15# GREEN #54EC48 #24BC14
16# BLUE #48C4EC #1598C3
17# PINK #DE48EC #B415C7
18# PURPLE #7648EC #4D18E4
19
20
21
22# Graphs DSL values. The scaling is pretty bogus.
23#
24# $1 - filenme
25# $2 - title
26# $3 - starttime
27# $4 - endtime
0fb2ed5a
S
28function drawDSL {
29 rm -f $OUTPUTDIR/$1
9d6ff8a8 30
0fb2ed5a
S
31 rrdtool graph $OUTPUTDIR/$1 \
32 -s $3 \
33 -e $4 \
34 -t "$2" \
35 -h 200 \
36 -w 600 \
37 -a PNG \
38 -v "Upstream / Downstream" \
9d6ff8a8 39 --upper-limit 16000 --rigid \
0fb2ed5a
S
40 DEF:dactual=$DSLDB:dactual:AVERAGE \
41 DEF:dattainable=$DSLDB:dattainable:AVERAGE \
42 DEF:uactual=$DSLDB:uactual:AVERAGE \
43 DEF:uattainable=$DSLDB:uattainable:AVERAGE \
44 DEF:uLine=$DSLDB:uLine:AVERAGE \
45 DEF:dLine=$DSLDB:dLine:AVERAGE \
46 DEF:uSNR=$DSLDB:uSNR:AVERAGE \
47 DEF:dSNR=$DSLDB:dSNR:AVERAGE \
48 DEF:dHEC=$DSLDB:dHEC:MAX \
49 DEF:dCRC=$DSLDB:dCRC:MAX \
50 CDEF:dCRCScaled=dCRC,20000,* \
51 CDEF:dHECScaled=dHEC,20000,* \
52 CDEF:uLineScaled=uLine,10,* \
53 CDEF:dLineScaled=dLine,10,* \
54 CDEF:uSNRScaled=uSNR,80,* \
55 CDEF:dSNRScaled=dSNR,80,* \
56 CDEF:dHECOutline=dHECScaled,dCRCScaled,dHECScaled,+,UNKN,IF \
57 \
9d6ff8a8
S
58 COMMENT:" \t\t\t" \
59 COMMENT:"Cur\: \t\t" \
60 COMMENT:"Min\: \t\t" \
61 COMMENT:"Avg\: \t\t" \
62 COMMENT:"Max\: \n" \
63 \
0fb2ed5a
S
64 AREA:dattainable#54EC48CC \
65 LINE1:dattainable#24BC14:"dattainable\t\t" \
9d6ff8a8
S
66 GPRINT:dattainable:LAST:"%1.0lf kBps\t" \
67 GPRINT:dattainable:MIN:"%1.0lf kBps\t" \
68 GPRINT:dattainable:AVERAGE:"%1.0lf kBps\t" \
69 GPRINT:dattainable:MAX:"%1.0lf kBps\n" \
70 \
0fb2ed5a 71 LINE1:dactual#ff3535:"dactual\t\t" \
9d6ff8a8
S
72 GPRINT:dactual:LAST:"%1.0lf kBps\t" \
73 GPRINT:dactual:MIN:"%1.0lf kBps\t" \
74 GPRINT:dactual:AVERAGE:"%1.0lf kBps\t" \
75 GPRINT:dactual:MAX:"%1.0lf kBps\n" \
76 \
0fb2ed5a
S
77 AREA:uattainable#48C4EC \
78 LINE1:uattainable#1598C3:"uattainable\t\t" \
9d6ff8a8
S
79 GPRINT:uattainable:LAST:"%1.0lf kBps\t" \
80 GPRINT:uattainable:MIN:"%1.0lf kBps\t" \
81 GPRINT:uattainable:AVERAGE:"%1.0lf kBps\t" \
82 GPRINT:uattainable:MAX:"%1.0lf kBps\n" \
83 \
0fb2ed5a 84 LINE1:uactual#0000FF:"uactual\t\t" \
9d6ff8a8
S
85 GPRINT:uactual:LAST:"%1.0lf kBps\t" \
86 GPRINT:uactual:MIN:"%1.0lf kBps\t" \
87 GPRINT:uactual:AVERAGE:"%1.0lf kBps\t" \
88 GPRINT:uactual:MAX:"%1.0lf kBps\n" \
89 \
0fb2ed5a 90 AREA:dHECScaled#EC9D48AA:"Header Errors\t" \
9d6ff8a8
S
91 GPRINT:dHEC:LAST:"%1.0lf \t\t" \
92 GPRINT:dHEC:MIN:"%1.0lf \t\t" \
93 GPRINT:dHEC:AVERAGE:"%1.0lf \t\t" \
94 GPRINT:dHEC:MAX:"%1.0lf \n" \
95 \
0fb2ed5a
S
96 AREA:dCRCScaled#ECD748AA:"CRC Errors\t\t":STACK \
97 LINE1:dHECScaled#CC7016AA \
98 LINE1:dHECOutline#C9B215AA \
9d6ff8a8
S
99 GPRINT:dCRC:LAST:"%1.0lf \t\t" \
100 GPRINT:dCRC:MIN:"%1.0lf \t\t" \
101 GPRINT:dCRC:AVERAGE:"%1.0lf \t\t" \
102 GPRINT:dCRC:MAX:"%1.0lf \n" \
103 \
0fb2ed5a 104 LINE1:uSNRScaled#DE48EC:"uSNR\t\t\t" \
9d6ff8a8
S
105 GPRINT:uSNR:LAST:"%1.0lf \t\t" \
106 GPRINT:uSNR:MIN:"%1.0lf \t\t" \
107 GPRINT:uSNR:AVERAGE:"%1.0lf \t\t" \
108 GPRINT:uSNR:MAX:"%1.0lf \n" \
109 \
0fb2ed5a 110 LINE1:dSNRScaled#B415C7:"dSNR\t\t\t" \
9d6ff8a8
S
111 GPRINT:dSNR:LAST:"%1.0lf \t\t" \
112 GPRINT:dSNR:MIN:"%1.0lf \t\t" \
113 GPRINT:dSNR:AVERAGE:"%1.0lf \t\t" \
114 GPRINT:dSNR:MAX:"%1.0lf \n" \
115 \
116 LINE1:uLineScaled#7648EC:"uLine\t\t\t" \
117 GPRINT:uLine:LAST:"%1.0lf \t\t" \
118 GPRINT:uLine:MIN:"%1.0lf \t\t" \
119 GPRINT:uLine:AVERAGE:"%1.0lf \t\t" \
120 GPRINT:uLine:MAX:"%1.0lf \n" \
121 \
122 LINE1:dLineScaled#4D18E4:"dLine\t\t\t" \
123 GPRINT:dLine:LAST:"%1.0lf \t\t" \
124 GPRINT:dLine:MIN:"%1.0lf \t\t" \
125 GPRINT:dLine:AVERAGE:"%1.0lf \t\t" \
0fb2ed5a 126 GPRINT:dLine:MAX:"%1.0lf \n"
9d6ff8a8
S
127}
128
129# Graph LTE values
130#
131# $1 - filenme
132# $2 - title
133# $3 - starttime
134# $4 - endtime
0fb2ed5a
S
135function drawLTE {
136 rm -f $OUTPUTDIR/$1
9d6ff8a8
S
137
138 rrdtool graph $OUTPUTDIR/$1 \
139 -s $3 \
140 -e $4 \
141 -t "$2" \
142 -h 200 \
143 -w 548 \
144 -a PNG \
0fb2ed5a 145 -v "rsrp" \
9d6ff8a8 146 --right-axis 0.1:0 \
0fb2ed5a 147 --right-axis-label "rsrq" \
9d6ff8a8 148 DEF:rsrq=$LTEDB:rsrq:AVERAGE \
0fb2ed5a 149 DEF:rsrp=$LTEDB:rsrp:AVERAGE \
9d6ff8a8
S
150 CDEF:rsrqScaled=rsrq,10,* \
151 \
152 COMMENT:" \t\t\t" \
153 COMMENT:"Cur\: \t\t" \
154 COMMENT:"Min\: \t\t" \
155 COMMENT:"Avg\: \t\t" \
156 COMMENT:"Max\: \n" \
0fb2ed5a 157 \
0fb2ed5a
S
158 AREA:rsrqScaled#48C4EC \
159 LINE1:rsrqScaled#1598C3:"rsrq\t\t\t" \
160 GPRINT:rsrq:LAST:"%1.0lf dB\t\t" \
161 GPRINT:rsrq:MAX:"%1.0lf dB\t\t" \
162 GPRINT:rsrq:AVERAGE:"%1.0lf dB\t\t" \
98fef667
S
163 GPRINT:rsrq:MIN:"%1.0lf dB\n" \
164 \
165 AREA:rsrp#54EC48CC \
166 LINE1:rsrp#24BC14:"rsrp \t\t\t" \
167 GPRINT:rsrp:LAST:"%1.0lf dB\t\t" \
168 GPRINT:rsrp:MAX:"%1.0lf dB\t\t" \
169 GPRINT:rsrp:AVERAGE:"%1.0lf dB\t\t" \
170 GPRINT:rsrp:MIN:"%1.0lf dB\n"
9d6ff8a8
S
171}
172
173drawDSL dsl-1h.png "DSL line status - 1 hour" end-1h now &
174drawDSL dsl-day.png "DSL line status - by day" end-24h now &
175drawDSL dsl-week.png "DSL line status - by week" end-168h now &
176
177drawLTE lteinfo-1h.png "LTE status - 1 hour" end-1h now &
178drawLTE lteinfo-day.png "LTE status - by day" end-24h now &
179drawLTE lteinfo-week.png "LTE status - by week" end-168h now &
180
181for job in `jobs -p`
182do
183 wait $job
184done