3 # thanks to Thomas Mellenthin @ https://github.com/melle/l33tport/blob/master/rrdtool/graphRRDBs.sh
4 DSLDB
=/home
/rrd
/rrd
/dsl.rrd
5 LTEDB
=/home
/rrd
/rrd
/lteinfo.rrd
6 OUTPUTDIR
=/var
/www
/stats
9 # https://oss.oetiker.ch/rrdtool-trac/wiki/OutlinedAreaGraph
13 # ORANGE #EC9D48 #CC7016
14 # YELLOW #ECD748 #C9B215
15 # GREEN #54EC48 #24BC14
16 # BLUE #48C4EC #1598C3
17 # PINK #DE48EC #B415C7
18 # PURPLE #7648EC #4D18E4
22 # Graphs DSL values. The scaling is pretty bogus.
31 rrdtool graph
$OUTPUTDIR/$1 \
38 -v "Upstream / Downstream" \
39 --upper-limit 16000 --rigid \
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 \
59 COMMENT
:"Cur\: \t\t" \
60 COMMENT
:"Min\: \t\t" \
61 COMMENT
:"Avg\: \t\t" \
64 AREA
:dattainable
#54EC48CC \
65 LINE1
:dattainable
#24BC14:"dattainable\t\t" \
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" \
71 LINE1
:dactual
#ff3535:"dactual\t\t" \
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" \
77 AREA
:uattainable
#48C4EC \
78 LINE1
:uattainable
#1598C3:"uattainable\t\t" \
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" \
84 LINE1
:uactual
#0000FF:"uactual\t\t" \
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" \
90 AREA
:dHECScaled
#EC9D48AA:"Header Errors\t" \
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" \
96 AREA
:dCRCScaled
#ECD748AA:"CRC Errors\t\t":STACK \
97 LINE1
:dHECScaled
#CC7016AA \
98 LINE1
:dHECOutline
#C9B215AA \
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" \
104 LINE1
:uSNRScaled
#DE48EC:"uSNR\t\t\t" \
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" \
110 LINE1
:dSNRScaled
#B415C7:"dSNR\t\t\t" \
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" \
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" \
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" \
126 GPRINT
:dLine
:MAX
:"%1.0lf \n"
138 rrdtool graph
$OUTPUTDIR/$1 \
147 --right-axis-label "rsrq" \
148 DEF
:rsrq
=$LTEDB:rsrq
:AVERAGE \
149 DEF
:rsrp
=$LTEDB:rsrp
:AVERAGE \
150 CDEF
:rsrqScaled
=rsrq
,10,* \
153 COMMENT
:"Cur\: \t\t" \
154 COMMENT
:"Min\: \t\t" \
155 COMMENT
:"Avg\: \t\t" \
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" \
163 GPRINT
:rsrq
:MIN
:"%1.0lf dB\n" \
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"
173 drawDSL dsl-1h.png
"DSL line status - 1 hour" end-1h now
&
174 drawDSL dsl-day.png
"DSL line status - by day" end-24h now
&
175 drawDSL dsl-week.png
"DSL line status - by week" end-168h now
&
177 drawLTE lteinfo-1h.png
"LTE status - 1 hour" end-1h now
&
178 drawLTE lteinfo-day.png
"LTE status - by day" end-24h now
&
179 drawLTE lteinfo-week.png
"LTE status - by week" end-168h now
&