Compare commits

8 Commits
v1.0 ... master

Author SHA1 Message Date
8a516b8664 Modernized the plugin
Implemented fixes from Gitlab issues
from Marc Hagen & Trent Robinson (https://gitlab.com/jackgreyhat/librenms-speedtest/-/issues/2)
and fixes from m0nsieur Psych0 (https://gitlab.com/jackgreyhat/librenms-speedtest/-/issues/6)

I added support for darkmode, this is done by generating the graphs with white text, then using CSS to invert the image, for light mode users.

I also moved branding PNGs to vectors for higher resolutions

I will not be opening a PR at https://gitlab.com/jackgreyhat/librenms-speedtest as this seems to have been abbandoned.
2023-09-15 15:59:51 -07:00
a0747a0fab Update README.md 2021-01-29 08:45:02 +00:00
7eb9ab0325 Update README.md 2021-01-29 08:44:07 +00:00
6986d15225 Screenshot 2021-01-29 09:31:41 +01:00
e7a2151706 FAQ start 2021-01-29 09:31:13 +01:00
f2957253ca update screenshot 2021-01-28 16:09:32 +01:00
7060409f03 fix terminology 2021-01-28 15:15:37 +01:00
8c850083a1 include roadmap 2021-01-28 15:14:25 +01:00
9 changed files with 315 additions and 30 deletions

View File

@ -4,7 +4,7 @@ A Speedtest plugin for LibreNMS, built with RRD and Speedtest CLI by Ookla
## Introduction ## Introduction
This is a plugin that enables internet uplink bandwidth graphing in a LibreNMS dashboard. It uses Ookla servers to perform the speedtest by calling Ookla's Speedtest CLI application. Data is stored in the backend into RRD and is visualized by using a LibreNMS style dashboard. This is a plugin that enables internet uplink bandwidth graphing in a LibreNMS dashboard. It uses Ookla servers to perform the speedtest by calling Ookla's Speedtest CLI application. Data is stored in the backend into RRD and is visualized by using a LibreNMS style dashboard.
Installation should be pretty straight forward.<br/><br/> Installation should be pretty straight forward.<br/><br/>
<img src="https://gitlab.com/jackgreyhat/librenms-speedtest/-/raw/master/images/dashboard-screenshot.png" width="800" height="400"/> <img src="https://gitlab.com/jackgreyhat/librenms-speedtest/-/raw/master/images/dashboard-screenshot.png" width="75%" height="75%"/>
## Prerequisites ## Prerequisites
- A working LibreNMS installation. :D - A working LibreNMS installation. :D
@ -61,4 +61,21 @@ and add:<br/>
- Enable the "Speedtest" plugin. - Enable the "Speedtest" plugin.
- Find the "Speedtest" plugin under "Overview" -> "Plugins" -> "Speedtest" - Find the "Speedtest" plugin under "Overview" -> "Plugins" -> "Speedtest"
- Wait at least one hour (2 speedtest runs, one every 30 mins), for data to be properly populated in your graphs. - Wait at least one hour (2 speedtest runs, one every 30 mins), for data to be properly populated in your graphs.
- Profit. - Profit.
## FAQs
Most of the below FAQs are related to how the speedtest command can be adjusted. All of these commands or adjustments must be made to the speedtest command on line 37 in the librenms-speedtest.sh script. In the future, I will make it easier to adjust settings.
- How can I select a speedtest server manually?<br/>
Use `speedtest -L` to find the nearest speedtest servers, note the first column, this is the speedtest server id.<br/>
Adjust the speedtest command on line 37 to include the server id with the `-s` parameter, so it looks like this:<br/>
`speedtest --accept-license --accept-gdpr -p no -s 1234 > $SpeedtestResultDir/speedtest-results 2>/dev/null`
## Roadmap
- Include more metrics, such as:
- Jitter during tests
- Transfered data during test
- Packet loss during test
- Add other speedtest providers, such as:
- Cloudflare
- Fast.com
- ...

View File

@ -1,15 +1,15 @@
<html> <html>
<style>html .panel-body img,html .panel-body img.img-responsive,html div#overDiv table tbody tr td table tbody tr td font .overlib-contents img{filter:invert(1)}html.tw-dark .panel-body img,html.tw-dark .panel-body img.img-responsive,html.tw-dark div#overDiv table tbody tr td table tbody tr td font .overlib-contents img{filter:none!important}</style>
<body> <body>
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-body "> <div class="panel-body ">
<img src="plugins/Speedtest/images/speedtest-logo.png" title="Speedtest Logo" class="device-icon-header pull-left" style="max-height:25px;height:100%;margin-top:8px"> <img src="plugins/Speedtest/images/speedtest-logo.svg" title="Speedtest Logo" class="device-icon-header pull-left" style="max-height:25px;height:100%;margin-top:8px">
<div class="pull-left" style="margin-top: 5px;"> <div class="pull-left" style="margin-top: 5px;">
<span style="font-size: 12px;font-weight: bold">Last used Speedtest server:</span><br /> <span style="font-size: 12px;font-weight: bold">Last used Speedtest server:</span><br />
<span style="font-size: 12px;"><?php require_once("plugins/Speedtest/tmp/speedtest-server");?></span> <span style="font-size: 12px;"><?php require_once("plugins/Speedtest/tmp/speedtest-server");?></span>
</div> </div>
<div class="pull-right"> <div class="pull-right">
<img src="plugins/Speedtest/images/ookla-logo.png" title="Ookla Logo" style="max-height: 50px"> <img src="plugins/Speedtest/images/ookla-logo.svg" title="Ookla Logo" style="max-height: 50px">
</div> </div>
</div> </div>
</div> </div>
@ -22,16 +22,16 @@
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-day.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-bandwidth-day.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-day.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-bandwidth-day.png" style="border: 0" loading="lazy"/></a>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-week.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-bandwidth-week.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-week.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-bandwidth-week.png" style="border: 0" loading="lazy"/></a>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-month.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-bandwidth-month.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-month.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-bandwidth-month.png" style="border: 0" loading="lazy"/></a>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-year.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-bandwidth-year.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-bandwidth-year.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-bandwidth-year.png" style="border: 0" loading="lazy"/></a>
</div> </div>
</div> </div>
</div> </div>
@ -41,16 +41,16 @@
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-day.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-latency-day.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-day.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-latency-day.png" style="border: 0" loading="lazy"/></a>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-week.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-latency-week.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-week.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-latency-week.png" style="border: 0" loading="lazy"/></a>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-month.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-latency-month.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-month.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-latency-month.png" style="border: 0" loading="lazy"/></a>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-year.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="lazy img-responsive" data-original="plugins/Speedtest/png/speedtest-latency-year.png" style="border: 0" /></a> <a onmouseover="return overlib('<div class=\'overlib-contents\'><img src=\'plugins/Speedtest/png/speedtest-latency-year.png\' style=\'border:0;\' /></div>',FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e',WRAP,HAUTO,VAUTO); " onmouseout="return nd();"><img class="img-responsive" src="plugins/Speedtest/png/speedtest-latency-year.png" style="border: 0" loading="lazy"/></a>
</div> </div>
</div> </div>
</div> </div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

1
images/ookla-logo.svg Normal file
View File

@ -0,0 +1 @@
<svg width="200" height="66" xmlns="http://www.w3.org/2000/svg"><path d="M137.297 1.082l-33.674 33.897 2.777 2.776 30.897-31.087zm-8.012.032L99.6 30.989l2.81 2.776 26.906-27.097zm.064 15.99l-21.736 21.864 2.808 2.777 18.96-19.087zM66.662 21.83c-12.48.032-21.29 9.415-21.257 21.544.032 12.13 8.905 21.45 21.385 21.417 12.48-.032 21.289-9.416 21.257-21.544-.032-12.13-8.905-21.45-21.385-21.417zm-45.068.127C9.114 21.988.304 31.372.336 43.5c.032 12.13 8.905 21.45 21.385 21.418 12.48-.032 21.29-9.416 21.258-21.545-.032-12.129-8.905-21.45-21.385-21.417zm161.09.511l-6.033.032-17.076 40.95 6.224-.032 13.63-33.768h.127l13.852 33.705 6.256-.032zm-50.878.16l.128 40.918 25.886-.096v-5.202l-20.364.064-.096-35.684zm-35.238.119l-5.617.018.13 40.887 5.618-.018zm-29.906 4.253c9.352-.032 15.448 7.31 15.48 16.247.032 8.937-6 16.31-15.384 16.341-9.352.032-15.448-7.309-15.48-16.246 0-8.97 6.032-16.31 15.384-16.342zm-45.068.128c9.352-.032 15.448 7.31 15.48 16.246.032 8.97-6.001 16.31-15.353 16.342-9.352.032-15.448-7.31-15.48-16.246-.032-8.97 6-16.31 15.353-16.342zm76.922 4.947l.032 5.554 26.077 25.917h5.554zm.032 7.916v5.65l18.066 17.937h5.649zm.032 8.075v5.586l10.054 9.958 5.554-.032z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1 @@
<svg width="208" height="25" xmlns="http://www.w3.org/2000/svg"><path d="M14.967.17C6.861.17.557 6.73.557 14.708c0 3.346 1.158 6.69 3.346 9.264l.9 1.028 1.672-1.67-.643-.903c-1.8-2.188-2.702-4.89-2.702-7.72A12.08 12.08 0 0115.225 2.614a12.08 12.08 0 0112.094 12.095c0 2.83-1.03 5.531-2.704 7.72l-.64.901L25.646 25l.9-1.028c1.801-2.702 2.958-5.918 2.958-9.264C29.505 6.73 23.073.17 14.967.17zM44.43 3.128c-4.117 0-7.076 2.446-7.076 5.92 0 3.859 2.444 5.145 6.818 6.174 3.86.772 4.634 1.673 4.634 3.088 0 1.545-1.417 2.574-3.604 2.574-2.573 0-4.63-1.03-6.56-2.702l-2.19 2.573c2.446 2.188 5.534 3.217 8.622 3.217 4.247 0 7.333-2.316 7.333-6.177 0-3.473-2.187-5.016-6.562-6.045-3.988-.901-4.888-1.674-4.888-3.218 0-1.416 1.286-2.444 3.345-2.444 1.8 0 3.73.644 5.532 2.06l2.06-2.446c-2.059-1.672-4.505-2.574-7.464-2.574zm11.064 0v20.457h3.603v-6.562h4.119c4.503 0 8.233-2.444 8.233-7.076 0-4.117-3.088-6.82-7.848-6.82zm19.044 0v20.586h15.438v-3.217H78.139v-5.532h10.294V11.75H78.139V6.345h11.71V3.128zm19.17 0v20.586h15.438v-3.217H97.309v-5.532h10.294V11.75H97.309V6.345h11.709V3.128zm19.042 0v20.586h7.718c6.434 0 10.937-4.503 10.937-10.292 0-5.79-4.503-10.294-10.937-10.294zm20.713 0v3.347h6.564v17.24h3.6V6.474h6.563V3.128zm20.459 0v20.586h15.437v-3.217h-11.835v-5.532h10.292V11.75h-10.292V6.345h11.708V3.128zm26.374 0c-4.118 0-7.077 2.446-7.077 5.92 0 3.859 2.445 5.145 6.82 6.174 3.86.772 4.632 1.673 4.632 3.088 0 1.545-1.415 2.574-3.602 2.574-2.574 0-4.632-1.03-6.562-2.702l-2.188 2.573c2.444 2.188 5.405 3.217 8.75 3.474 4.245 0 7.332-2.315 7.332-6.175 0-3.474-2.186-5.02-6.56-6.049-3.988-.9-4.89-1.671-4.89-3.215 0-1.415 1.287-2.445 3.345-2.445 1.801 0 3.732.643 5.533 2.06l1.93-2.703c-2.059-1.672-4.504-2.574-7.463-2.574zm10.293 0v3.347h6.562v17.24h3.602V6.474h6.563V3.128zM59.097 6.345h4.247c2.83 0 4.502 1.287 4.502 3.732 0 2.187-1.8 3.73-4.502 3.73h-4.247zm57.383.257h4.118c4.375 0 7.205 2.96 7.205 6.948 0 3.988-2.83 6.947-7.205 6.947h-4.118zM20.242 8.275l-8.105 6.433 2.83 2.83L21.4 9.433z" fill="#fff" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

25
install.sh Normal file
View File

@ -0,0 +1,25 @@
# Install speedtest pkg
sudo apt-get install curl
sudo apt remove speedtest-cli
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest
# Go to your home dir
cd ~/
# Clone this repository into your home dir
git clone https://git.oldgate.org/Sophia/librenms-speedtest
# Create the plugin directory into LibreNMS plugin folder
mkdir /opt/librenms/html/plugins/Speedtest
# Copy the LibreNMS speedtest plugin contents into the newly created directory
cp -r ~/librenms-speedtest/. /opt/librenms/html/plugins/Speedtest
# Ensure correct ownership and permissions on the Speedtest plugin directory and files
chown -R librenms:librenms /opt/librenms/html/plugins/Speedtest
chmod -R --reference=/opt/librenms/html/plugins /opt/librenms/html/plugins/Speedtest
chmod +x /opt/librenms/html/plugins/Speedtest/librenms-speedtest.sh
# Accept the speedtest EULA and GDPR notice (if applicable) and run an initial speedtest
su -c 'speedtest --accept-license --accept-gdpr' librenms
# Create the RRD files
su -c 'bash /opt/librenms/html/plugins/Speedtest/librenms-speedtest.sh create' librenms
# Test and run the speedtest script
su -c 'bash /opt/librenms/html/plugins/Speedtest/librenms-speedtest.sh run' librenms
# Output the speedtest results into PNG files
su -c 'bash /opt/librenms/html/plugins/Speedtest/librenms-speedtest.sh graph' librenms

View File

@ -34,7 +34,7 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
DATE=$(/bin/date +%s) DATE=$(/bin/date +%s)
# Generate speedtest results, store them in a temp file # Generate speedtest results, store them in a temp file
speedtest --accept-license --accept-gdpr -p no > $SpeedtestResultDir/speedtest-results 2>/dev/null speedtest -p no > $SpeedtestResultDir/speedtest-results 2>/dev/null
# Get the Latency # Get the Latency
Latency=$(cat $SpeedtestResultDir/speedtest-results | grep Latency | sed 's/.*Latency:\s*\([0-9]*.[0-9]*\).*/\1/') Latency=$(cat $SpeedtestResultDir/speedtest-results | grep Latency | sed 's/.*Latency:\s*\([0-9]*.[0-9]*\).*/\1/')
@ -47,6 +47,7 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
# Get the server that was used, dump it into a file # Get the server that was used, dump it into a file
cat $SpeedtestResultDir/speedtest-results | grep Server | sed 's/.*Server:\s*\(.*\)/\1/' > $SpeedtestResultDir/speedtest-server cat $SpeedtestResultDir/speedtest-results | grep Server | sed 's/.*Server:\s*\(.*\)/\1/' > $SpeedtestResultDir/speedtest-server
# Update the RRD graphs # Update the RRD graphs
rrdtool update $RRDGraphsDir/speedtest-latency.rrd $DATE:$Latency rrdtool update $RRDGraphsDir/speedtest-latency.rrd $DATE:$Latency
rrdtool update $RRDGraphsDir/speedtest-bandwidth.rrd $DATE:$DownloadSpeed:$UploadSpeed rrdtool update $RRDGraphsDir/speedtest-bandwidth.rrd $DATE:$DownloadSpeed:$UploadSpeed
@ -54,7 +55,6 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
(graph) (graph)
# Create the Latency PNG of the last day # Create the Latency PNG of the last day
rrdtool graph $PNGImagesDir/speedtest-latency-day.png -J -a PNG --start "-1day" \ rrdtool graph $PNGImagesDir/speedtest-latency-day.png -J -a PNG --start "-1day" \
--title="Last Day" \
--vertical-label "ms" \ --vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \ DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \ DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
@ -73,13 +73,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last week # Create the Latency PNG of the last week
rrdtool graph $PNGImagesDir/speedtest-latency-week.png -J -a PNG --start "-1week" \ rrdtool graph $PNGImagesDir/speedtest-latency-week.png -J -a PNG --start "-1week" \
--title="Last Week" \
--vertical-label "ms" \ --vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \ DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \ DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
@ -98,13 +97,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last month # Create the Latency PNG of the last month
rrdtool graph $PNGImagesDir/speedtest-latency-month.png -J -a PNG --start "-1month" \ rrdtool graph $PNGImagesDir/speedtest-latency-month.png -J -a PNG --start "-1month" \
--title="Last Month" \
--vertical-label "ms" \ --vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \ DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \ DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
@ -123,13 +121,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last year # Create the Latency PNG of the last year
rrdtool graph $PNGImagesDir/speedtest-latency-year.png -J -a PNG --start "-1year" \ rrdtool graph $PNGImagesDir/speedtest-latency-year.png -J -a PNG --start "-1year" \
--title="Last Year" \
--vertical-label "ms" \ --vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \ DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \ DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
@ -148,13 +145,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last day # Create the Bandwidth PNG of the last day
rrdtool graph $PNGImagesDir/speedtest-bandwidth-day.png -J -a PNG --start "-1day" \ rrdtool graph $PNGImagesDir/speedtest-bandwidth-day.png -J -a PNG --start "-1day" \
--title="Last Day" \
--vertical-label "Mbit/s" \ --vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \ DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \ DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
@ -187,13 +183,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last week # Create the Bandwidth PNG of the last week
rrdtool graph $PNGImagesDir/speedtest-bandwidth-week.png -J -a PNG --start "-1week" \ rrdtool graph $PNGImagesDir/speedtest-bandwidth-week.png -J -a PNG --start "-1week" \
--title="Last Week" \
--vertical-label "Mbit/s" \ --vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \ DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \ DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
@ -226,13 +221,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last month # Create the Bandwidth PNG of the last month
rrdtool graph $PNGImagesDir/speedtest-bandwidth-month.png -J -a PNG --start "-1month" \ rrdtool graph $PNGImagesDir/speedtest-bandwidth-month.png -J -a PNG --start "-1month" \
--title="Last Month" \
--vertical-label "Mbit/s" \ --vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \ DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \ DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
@ -265,13 +259,12 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last year # Create the Bandwidth PNG of the last year
rrdtool graph $PNGImagesDir/speedtest-bandwidth-year.png -J -a PNG --start "-1year" \ rrdtool graph $PNGImagesDir/speedtest-bandwidth-year.png -J -a PNG --start "-1year" \
--title="Last Year" \
--vertical-label "Mbit/s" \ --vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \ DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \ DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
@ -304,7 +297,255 @@ SpeedtestResultDir=$SpeedtestPluginDir/tmp
-c FRAME#5e5e5e \ -c FRAME#5e5e5e \
-c ARROW#5e5e5e \ -c ARROW#5e5e5e \
-R normal \ -R normal \
-c FONT#000000 \ -c FONT#bdbfbfff \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last day
rrdtool graph $PNGImagesDir/speedtest-latency-light-day.png -J -a PNG --start "-1day" \
--vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
DEF:PMAX=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MAX \
VDEF:Pavg=P,AVERAGE \
LINE1:Pavg#cc3300:"Avg \n" \
LINE2:P#3d61ab:"Last latency (ms)\n" \
GPRINT:Pavg:"Avg latency %2.1lf ms\n" \
-h 500 -w 1000 -y1:2 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last week
rrdtool graph $PNGImagesDir/speedtest-latency-light-week.png -J -a PNG --start "-1week" \
--vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
DEF:PMAX=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MAX \
VDEF:Pavg=P,AVERAGE \
LINE1:Pavg#cc3300:"Avg \n" \
LINE2:P#3d61ab:"Last latency (ms)\n" \
GPRINT:Pavg:"Avg latency %2.1lf ms\n" \
-h 500 -w 1000 -y1:2 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last month
rrdtool graph $PNGImagesDir/speedtest-latency-light-month.png -J -a PNG --start "-1month" \
--vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
DEF:PMAX=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MAX \
VDEF:Pavg=P,AVERAGE \
LINE1:Pavg#cc3300:"Avg \n" \
LINE2:P#3d61ab:"Last latency (ms)\n" \
GPRINT:Pavg:"Avg latency %2.1lf ms\n" \
-h 500 -w 1000 -y1:2 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Latency PNG of the last year
rrdtool graph $PNGImagesDir/speedtest-latency-light-year.png -J -a PNG --start "-1year" \
--vertical-label "ms" \
DEF:P=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:AVERAGE \
DEF:PMIN=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MIN \
DEF:PMAX=$RRDGraphsDir/speedtest-latency.rrd:LATENCY:MAX \
VDEF:Pavg=P,AVERAGE \
LINE1:Pavg#cc3300:"Avg \n" \
LINE2:P#3d61ab:"Last latency (ms)\n" \
GPRINT:Pavg:"Avg latency %2.1lf ms\n" \
-h 500 -w 1000 -y1:2 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last day
rrdtool graph $PNGImagesDir/speedtest-bandwidth-light-day.png -J -a PNG --start "-1day" \
--vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
DEF:DMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MAX \
DEF:U=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:AVERAGE \
DEF:UMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MIN \
DEF:UMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MAX \
CDEF:Y0=U,0,* \
CDEF:NegU=U,-1,* \
VDEF:Yavg=Y0,AVERAGE \
VDEF:Davg=D,AVERAGE \
VDEF:Uavg=NegU,AVERAGE \
VDEF:Uavg2=U,AVERAGE \
AREA:D#61ab3d:"Download" \
AREA:NegU#3d61ab:"Upload" \
LINE1:Uavg#cc1100: \
LINE1:Davg#cc3300:"Avg\n" \
LINE1:Yavg#111111: \
GPRINT:D:LAST:"Last download bandwidth\: %2.1lf Mb/s\n" \
GPRINT:U:LAST:"Last upload bandwidth\: %2.1lf Mb/s\n" \
GPRINT:Davg:"Avg download bandwidth %2.1lf Mb/s\n" \
GPRINT:Uavg2:"Avg upload bandwidth %2.1lf Mb/s" \
-h 500 -w 1000 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last week
rrdtool graph $PNGImagesDir/speedtest-bandwidth-light-week.png -J -a PNG --start "-1week" \
--vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
DEF:DMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MAX \
DEF:U=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:AVERAGE \
DEF:UMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MIN \
DEF:UMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MAX \
CDEF:Y0=U,0,* \
CDEF:NegU=U,-1,* \
VDEF:Yavg=Y0,AVERAGE \
VDEF:Davg=D,AVERAGE \
VDEF:Uavg=NegU,AVERAGE \
VDEF:Uavg2=U,AVERAGE \
AREA:D#61ab3d:"Download" \
AREA:NegU#3d61ab:"Upload" \
LINE1:Uavg#cc1100: \
LINE1:Davg#cc3300:"Avg\n" \
LINE1:Yavg#111111: \
GPRINT:D:LAST:"Last download bandwidth\: %2.1lf Mb/s\n" \
GPRINT:U:LAST:"Last upload bandwidth\: %2.1lf Mb/s\n" \
GPRINT:Davg:"Avg download bandwidth %2.1lf Mb/s\n" \
GPRINT:Uavg2:"Avg upload bandwidth %2.1lf Mb/s" \
-h 500 -w 1000 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last month
rrdtool graph $PNGImagesDir/speedtest-bandwidth-light-month.png -J -a PNG --start "-1month" \
--vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
DEF:DMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MAX \
DEF:U=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:AVERAGE \
DEF:UMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MIN \
DEF:UMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MAX \
CDEF:Y0=U,0,* \
CDEF:NegU=U,-1,* \
VDEF:Yavg=Y0,AVERAGE \
VDEF:Davg=D,AVERAGE \
VDEF:Uavg=NegU,AVERAGE \
VDEF:Uavg2=U,AVERAGE \
AREA:D#61ab3d:"Download" \
AREA:NegU#3d61ab:"Upload" \
LINE1:Uavg#cc1100: \
LINE1:Davg#cc3300:"Avg\n" \
LINE1:Yavg#111111: \
GPRINT:D:LAST:"Last download bandwidth\: %2.1lf Mb/s\n" \
GPRINT:U:LAST:"Last upload bandwidth\: %2.1lf Mb/s\n" \
GPRINT:Davg:"Avg download bandwidth %2.1lf Mb/s\n" \
GPRINT:Uavg2:"Avg upload bandwidth %2.1lf Mb/s" \
-h 500 -w 1000 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1
# Create the Bandwidth PNG of the last year
rrdtool graph $PNGImagesDir/speedtest-bandwidth-light-year.png -J -a PNG --start "-1year" \
--vertical-label "Mbit/s" \
DEF:D=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:AVERAGE \
DEF:DMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MIN \
DEF:DMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:DOWN:MAX \
DEF:U=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:AVERAGE \
DEF:UMIN=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MIN \
DEF:UMAX=$RRDGraphsDir/speedtest-bandwidth.rrd:UP:MAX \
CDEF:Y0=U,0,* \
CDEF:NegU=U,-1,* \
VDEF:Yavg=Y0,AVERAGE \
VDEF:Davg=D,AVERAGE \
VDEF:Uavg=NegU,AVERAGE \
VDEF:Uavg2=U,AVERAGE \
AREA:D#61ab3d:"Download" \
AREA:NegU#3d61ab:"Upload" \
LINE1:Uavg#cc1100: \
LINE1:Davg#cc3300:"Avg\n" \
LINE1:Yavg#111111: \
GPRINT:D:LAST:"Last download bandwidth\: %2.1lf Mb/s\n" \
GPRINT:U:LAST:"Last upload bandwidth\: %2.1lf Mb/s\n" \
GPRINT:Davg:"Avg download bandwidth %2.1lf Mb/s\n" \
GPRINT:Uavg2:"Avg upload bandwidth %2.1lf Mb/s" \
-h 500 -w 1000 \
-c BACK#EEEEEE00 \
-c SHADEA#EEEEEE00 \
-c SHADEB#EEEEEE00 \
-c CANVAS#FFFFFF00 \
-c GRID#a5a5a5 \
-c MGRID#FF9999 \
-c FRAME#5e5e5e \
-c ARROW#5e5e5e \
-R normal \
-c FONT#000 \
--font LEGEND:8:DejaVuSansMono \ --font LEGEND:8:DejaVuSansMono \
--font AXIS:7:DejaVuSansMono > /dev/null 2>&1 --font AXIS:7:DejaVuSansMono > /dev/null 2>&1
;; ;;