Git Product home page Git Product logo

smokeping-speedtest's Introduction

smokeping-speedtest

This repository provides two speedtest probes for Smokeping. speedtest.pm uses speedtest-cli by @sivel (https://github.com/sivel/speedtest-cli), while speedtestcli.pm uses the official Ookla Speedtest CLI program (https://www.speedtest.net/apps/cli). Details about both below:

Smokeping::probes::speedtest (Sivel)

Integrates speedtest-cli (https://github.com/sivel/speedtest-cli) as a probe into smokeping. The variable binary must point to your copy of the speedtest-cli program. If it is not installed on your system yet, you should install the latest version from https://github.com/sivel/speedtest-cli. Note that you need at least version >=2.0.2 for speedtest-cli.

The Probe asks for the given resource one time, ignoring the pings config variable (because pings can't be lower than 3).

You can ask for a specific server (via the server parameter) and record a specific output (via the measurement parameter).

Note that you may want to change speedtest's forks parameter because basically: by default smokeping runs up to 5 speedtest probes at once, skewing overall results and possibly running into resource trouble on low spec devices. Setting forks = 1 will alleviate these issues.

Parameters:

  • binary => The location of your speedtest-cli binary.
  • server => The server id you want to test against (optional). If unspecified, speedtest.net will select the closest server to you. The value has to be an id reported by the command speedtest-cli --list
  • measurement => What output do you want graphed? Supported values are: ping, download, upload
  • extraargs => Extra arguments to send to speedtest-cli

You can use extraargs with --no-download or --no-upload if you want to skip some test direction (https://github.com/sivel/speedtest-cli/commit/3feb38d9d47d41e6b0679e3722dedb4511c437f6).

Smokeping::probes::speedtestcli (Ookla)

Integrates Ookla speedtest CLI (https://www.speedtest.net/apps/cli) as a probe into smokeping. The variable binary must point to your copy of the speedtest program. If it is not installed on your system yet, you should install the latest version from https://www.speedtest.net/apps/cli.

The Probe asks for the given resource one time, ignoring the pings config variable (because pings can't be lower than 3).

You can ask for a specific server (via the server parameter).

Note that you may want to change speedtest's forks parameter because basically: by default smokeping runs up to 5 speedtest probes at once, skewing overall results and possibly running into resource trouble on low spec devices. Setting forks = 1 will alleviate these issues.

Parameters:

  • binary => The location of your speedtest binary.
  • server => The server id you want to test against (optional). If unspecified, speedtest.net will select the closest server to you. The value has to be an id reported by the command speedtest-cli --list or speedtest -L
  • measurement => What output do you want graphed? Supported values are: download, upload, ping
  • extraargs => Extra arguments to send to speedtest

Installation:

Copy

The speedtest.pm and speedtestcli.pm should be copied into your smokeping installation directory - for instance here: /opt/smokeping/lib/Smokeping/probes/

Logging:

You can get logs of what goes on inside the plugin either by running smokeping with --debug, or by changing this line:

  #set to LOG_ERR to disable debugging, LOG_DEBUG to enable it
  setlogmask(LOG_MASK(LOG_ERR));

to

  #set to LOG_ERR to disable debugging, LOG_DEBUG to enable it
  setlogmask(LOG_MASK(LOG_DEBUG));

After doing this (and restarting smokeping), the plugin's logs will go to syslog, local0.debug. You will need something like

  local0.*     /var/log/local.log

in your syslog configuration.

Example probe configuration (poll every hour):


### Add this to your Probes file in conf.d folder

+ speedtest
binary = /usr/local/bin/speedtest-cli
timeout = 300
forks = 1
step = 3600
offset = random
pings = 3

++ speedtest-download
measurement = download

++ speedtest-upload
measurement = upload

++ speedtest-upload
measurement = ping

+ speedtestcli
binary = /usr/bin/speedtest
timeout = 300
forks = 1
step = 3600
offset = random
pings = 3

++ speedtestcli-download
measurement = download

++ speedtestcli-upload
measurement = upload

++ speedtestcli-upload
measurement = ping

### Add these to your Targets file.

++++ download_from_NextGen_Communications_via_speedtest_cli
menu = download_from_NextGen_Communications_via_speedtest_cli
title = download_from_NextGen_Communications_via_speedtest_cli
probe = speedtest-download
server = 1737
measurement = download
host = dummy.com

++++ upload_to_NextGen_Communications_via_speedtest_cli
menu = upload_to_NextGen_Communications_via_speedtest_cli
title = upload_to_NextGen_Communications_via_speedtest_cli
probe = speedtest-upload
server = 1737
measurement = upload
host = dummy.com

++++ download_from_NextGen_Communications_via_speedtest_ookla
menu = download_from_NextGen_Communications_via_speedtest_ookla
title = download_from_NextGen_Communications_via_speedtest_ookla
probe = speedtestcli-download
server = 1737
measurement = download
host = dummy.com

++++ upload_to_NextGen_Communications_via_speedtest_ookla
menu = upload_to_NextGen_Communications_via_speedtest_ookla
title = upload_to_NextGen_Communications_via_speedtest_ookla
probe = speedtestcli-upload
server = 1737
measurement = upload
host = dummy.com

Bugs:

  • Currently the probe's unit of measurement is hardcoded to "bps". This will be a problem if you want to measure "ping", which is reported in seconds.
  • For large values the overview graphs will have wrong data. You need to add something like this to your overview section of your Smokeping config:
+overview
max_rtt = 1000000000

smokeping-speedtest's People

Contributors

flosoft avatar kriztov avatar mad-ady avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smokeping-speedtest's Issues

No Graph

I have not graphs.

smokeping.service - Latency Logging and Graphing System
   Loaded: loaded (/lib/systemd/system/smokeping.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-15 23:50:00 EEST; 41min ago
     Docs: man:smokeping(1)
           file:/usr/share/doc/smokeping/examples/systemd/slave_mode.conf
  Process: 578 ExecStart=/usr/sbin/smokeping --pid-dir=/run/smokeping (code=exited, status=0/SUCCESS)
 Main PID: 1032 (smokeping)
    Tasks: 6 (limit: 4915)
   CGroup: /system.slice/smokeping.service
           ├─1032 /usr/bin/perl /usr/sbin/smokeping --pid-dir=/run/smokeping
           ├─1033 /usr/sbin/smokeping [speedtestcli-upload]
           ├─1034 /usr/sbin/smokeping [EchoPingDNS]
           ├─1035 /usr/sbin/smokeping [FPingHigh]
           ├─1036 /usr/sbin/smokeping [speedtestcli-download]
           └─1037 /usr/sbin/smokeping [FPingLow]

Jul 15 23:49:57 gluttony systemd[1]: Starting Latency Logging and Graphing System...
Jul 15 23:50:00 gluttony smokeping[578]: WARNING: Hostname 'google.com' does currently not resolve to an IPv6 or IPv4 address
Jul 15 23:50:00 gluttony smokeping[578]: WARNING: Hostname 'Datagroup' does currently not resolve to an IPv6 or IPv4 address
Jul 15 23:50:00 gluttony smokeping[578]: ### parsing /usr/local/bin/speedtest output... OK (version 1.0.0.2)
Jul 15 23:50:00 gluttony smokeping[578]: ### parsing /usr/local/bin/speedtest output... OK (version 1.0.0.2)
Jul 15 23:50:00 gluttony smokeping[578]: ### parsing /usr/bin/speedtest output... OK (version 1.0.0.2)
Jul 15 23:50:00 gluttony smokeping[578]: ### parsing /usr/bin/speedtest output... OK (version 1.0.0.2)
Jul 15 23:50:00 gluttony smokeping[578]: Note: logging to syslog as local0/info.
Jul 15 23:50:00 gluttony smokeping[578]: Daemonizing /usr/sbin/smokeping ...
Jul 15 23:50:00 gluttony systemd[1]: Started Latency Logging and Graphing System

Speedtest version

 /usr/bin/speedtest --version
Speedtest by Ookla 1.0.0.2 (5ae238b) Linux/arm-linux-musleabihf 5.10.17-v7l+ arm/armv7l

The official command line client for testing the speed and performance
of your internet connection.

Probes

+ speedtest
binary = /usr/local/bin/speedtest
timeout = 300
forks = 1
step = 3600
offset = random
pings = 3

++ speedtest-download
measurement = download

++ speedtest-upload
measurement = upload

+ speedtestcli
binary = /usr/bin/speedtest
timeout = 300
forks = 1
step = 3600
offset = random
pings = 3

++ speedtestcli-download
measurement = download

++ speedtestcli-upload
measurement = upload

Target
I have tried different options for host = . But not working.

+++ Lanet
title = Lanet Network Ltd (Kiev, Ukraine)
probe = speedtestcli-download
server = 30300
measurement = download
#host = 192.168.1.8 

+++ Datagroup
title = Datagroup (Kiev, Ukraine)
probe = speedtestcli-download
server = 29112
measurement = download
host = Datagroup

+++ KPI-Telecom  
title = KPI-Telecom  (Kiev, Ukraine)
probe = speedtestcli-download
server = 30981
measurement = download
host = gluttony


++ Upload
menu = Upload
title = upload bits/sec


+++ Lanet
title = Lanet Network Ltd (Kiev, Ukraine)          
probe = speedtestcli-download
server = 30300
measurement = download
host = gluttony

+++ Datagroup
title = Datagroup (Kyiv, Ukraine) 
probe = speedtestcli-upload
server = 29112
measurement = upload
host = gluttony

+++ KPI-Telecom  
title = KPI-Telecom  (Kiev, Ukraine)
probe = speedtestcli-download
server = 30981
measurement = download
host = gluttony 

Thanks a lot

No graphs

Similar to #2 but I have patched the file as suggested in the README and i'm not getting any graphs.. any ideas where I may be going wrong?

Screenshot: https://i.imgur.com/tZscshh.png

Logs seem good:

Aug 24 06:47:21 pi smokeping[29581]: query=/usr/local/bin/speedtest-cli --simple 2>&1
Aug 24 06:47:43 pi smokeping[29423]: output: Ping: 125.462 ms
Aug 24 06:47:43 pi smokeping[29423]: output: Download: 3.25 Mbit/s
Aug 24 06:47:43 pi smokeping[29423]: Got value: 3.25, unit: Mbit/s -> 3250000
Aug 24 06:47:43 pi smokeping[29423]: time=3.2500000000e+06 3.2500000000e+06 3.2500000000e+06

Probes:

  • speedtest
    binary = /usr/local/bin/speedtest-cli
    timeout = 300
    step = 120
    offset = random
    pings = 3

++ speedtest-download
measurement = download

++ speedtest-upload
measurement = upload

Targets:

++ Google
menu = Google
title = Google - 8.8.8.8
host = 8.8.8.8

++ speedtest-download
menu = speedtest download
title = speedtest download
probe = speedtest-download
measurement = download
host = dummy.com

++ speedtest-upload
menu = speedtest upload
title = speedtest upload
probe = speedtest-upload
measurement = upload
host = dummy.com

Also tested with a server config (though I wanted it to detect closest):

Aug 24 07:00:49 pi smokeping[31484]: query=/usr/local/bin/speedtest-cli --server 5666 --simple 2>&1
Aug 24 07:00:50 pi smokeping[31188]: output: Ping: 62.294 ms
Aug 24 07:00:50 pi smokeping[31188]: output: Download: 3.24 Mbit/s
Aug 24 07:00:50 pi smokeping[31188]: output: Upload: 0.58 Mbit/s
Aug 24 07:00:50 pi smokeping[31188]: Got value: 0.58, unit: Mbit/s -> 580000
Aug 24 07:00:50 pi smokeping[31188]: time=5.8000000000e+05 5.8000000000e+05 5.8000000000e+05

The google target seems to work fine. Any help appreciated!

edit:
Also dumped the rrd file here: https://gist.github.com/4c110853d41bb6eca2c8ffd82b11ba14

Smokeping.pm line 560 + 561:

                          "DS:median:GAUGE:".(2*$step).":0:U",
                         (map { "DS:ping${_}:GAUGE:".(2*$step).":0:U" }

Error: Can't locate object method "probevars"

I am running this via a Docker image. I have copied the module into /usr/share/perl5/vendor_perl/Smokeping/probes and when running /usr/bin/smokeping --config=/etc/smokeping/config I get the following error:

Can't locate object method "probevars" via package "Smokeping::probes::SpeedTest" at /usr/share/perl5/vendor_perl/Smokeping.pm line 2420, <File> line 21.
root@1f8410182061:/usr/share/perl5/vendor_perl/Smokeping/probes$ /usr/bin/smokeping --config=/etc/smokeping/config

My Probes file:

...

+ SpeedTest
binary = /config/speedtest-cli
timeout = 300
step = 3600
offset = random
pings = 3

++ speedtest-download
measurement = download

++ speedtest-upload
measurement = upload

Strange data written to influxdb

I am using your docker container and want to visualize the results using grafana, however it looks like there are no useful values written to my influxdb for the speedtest plugin (others like DNS or FPing are working fine).

> select "min"::field from "speedtest-download" where time >= now() - 120m

name: speedtest-download
time                min
----                ---
1609933916000000000 1e-101
1609933916000000000 1e-101
1609933916000000000 1e-101
1609937490000000000 1e-101
1609937490000000000 1e-101
1609937490000000000 1e-101
> select "max"::field from "speedtest-download" where time >= now() - 120m

> select "median"::field from "speedtest-download" where time >= now() - 120m
name: speedtest-download
time                median
----                ------
1609933916000000000 1e-101
1609933916000000000 1e-101
1609933916000000000 1e-101
1609937490000000000 1e-101
1609937490000000000 1e-101
1609937490000000000 1e-101

Any idea what I may be doing wrong?

speedtest.pm does not populate rrd

Hello,

This looks like an excellent tool, and I have seen other people whom have managed to get it to graph successfully. However, I cannot get it to work, so I would really appreciate any assistance. I have followed the instructions in the README.md file, and created the local0 logging for debug purposes. When Smokeping runs the probe, it definitely gets data back from speedtest-cli (here is a snippet from the log):

---start---
Oct 18 21:13:45 jandev smokeping[37079]: query=/usr/local/bin/speedtest-cli --server 3699 --simple 2>&1
Oct 18 21:14:21 jandev smokeping[37079]: output: Ping: 52.692 ms
Oct 18 21:14:21 jandev smokeping[37079]: output: Download: 7.47 Mbit/s
Oct 18 21:14:21 jandev smokeping[37079]: output: Upload: 2.95 Mbit/s
Oct 18 21:14:21 jandev smokeping[37079]: Got value: 2.95, unit: Mbit/s -> 2950000
Oct 18 21:14:21 jandev smokeping[37079]: time=2.9500000000e+06 2.9500000000e+06 2.9500000000e+06
---end---

My Probes section looks like this:

---start---

  • speedtest
    binary = /usr/local/bin/speedtest-cli
    timeout = 300
    step = 3600
    offset = random
    pings = 3

++ speedtest-download
measurement = download

++ speedtest-upload
measurement = upload
---end---

My Targets entry looks like this:

---start---

  • SPEEDTEST
    menu = Speedtest
    title = Speedtest Results

++ download_from_Virgin_Croydon
menu = download_from_Virgin_Croydon
title = download_from_Virgin_Croydon
probe = speedtest-download
server = 3699
measurement = download
host = dummy.com

++ upload_to_Virgin_Croydon
menu = upload_to_Virgin_Croydon
title = upload_to_Virgin_Croydon
probe = speedtest-upload
server = 3699
measurement = upload
host = dummy.com
---end---

My Overview area in the Presentation file:

---start---

  • overview

width = 600
height = 50
range = 10h
max_rtt = 1000000000
---end---

And yet, no data in the generated graphs. Is there anything wrong with the above? If not, what else can I do in order to get this to work?

Thanks in advance!

Regards,
Jan Henkins

Stopped working?

This plugin stopped working for me yesterday (having changed nothing in my setup) - is anyone else experiencing this? I'm wondering if speedtest blocked it.

incompatible with speedtest-cli <2.0.2

it took me some time to figure what's wrong, I've been using packaged speedtest-cli, which doesn't support --no-download/--no-upload and it didn't complain until put in debug mode.

this commit is the cause 6391ddd

either make some option to allow old version or put some warning in readme that version >=2.0.2 is required, maybe some error message would be nice too

Concurrent Probes & Conserving Resources

Hi,

Thanks for your work on this useful probe.

Had some issues running it on a low resources box with multiple hosts, due to my ignorance on how smokeping handles probes by default (concurrentprobes = yes and forks = 5).
Would you be interested in a change to the readme to clarify what to expect for other noobs like myself?

Basically: by default smokeping runs up to 5 speedtest probes at once, skewing overall results and possibly running into resource trouble on low spec devices.
Setting forks = 1 will alleviate these issues.

Another thing I noticed: the probe always performs both an upload and download test, no matter the selected measurement.
Adding extraargs = --no-upload or extraargs = --no-download to the respective probe will conserve further resources.

speedtestcli (Ookla binary) produces heavy traffic

Due to the fact that the official Ookla binary can only do an upload speedtest combined with a download speedtest, this produces way more traffic than I expected.

On my 1000Mbit/s download and 50 Mbit/s upload cable connection (DOCSIS) this generates the following traffic if you select tests every hour (3600s):

1 GB download traffic for the download probe and 1 GB download traffic for the upload probe (even it is not needed...). Makes 2 GB download traffic per hour, 48 GB per day and 1488 GB per month with 31 days. Wow, normally I got 1,5 TB per month without this smokeping speedtest.

And using the other opensource speedtest variant is no option, due to its poor design. It generates nearly everytime wrong (too low) numbers for up- and download.

Smokeping slave does not generate graphs

The master generates speedtest graphs fine, and speedtest-cli works on the slave but no graphs are generated by the slave for speedtest.
The slave generates the rest of its probe graphs fine. How do I troubleshoot this?

$ sudo systemctl status smokeslave
● smokeslave.service - Smokeping slave-only service to connect to remote Smokeping master
   Loaded: loaded (/etc/systemd/system/smokeslave.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-04-24 18:23:48 IST; 4min 12s ago
  Process: 6664 ExecStart=/usr/bin/smokeping --master-url=https://bom.wrtpoona.in/smokeping.fcgi --cache-dir=/var/smokeping/ --shared-secret=/var/smokeping/secret.txt --pid-dir /var/smokeping/ (code=exited, status=0/SUCCESS)
 Main PID: 6682 (smokeping)
    Tasks: 9 (limit: 4915)
   Memory: 71.0M
   CGroup: /system.slice/smokeslave.service
           ├─6682 /usr/bin/perl /usr/bin/smokeping --master-url=https://bom.wrtpoona.in/smokeping.fcgi --cache-dir=/var/smokeping/ --shared-secret=/var/smokeping/secret.txt --pid-dir /var/smokeping/
           ├─6683 /usr/bin/smokeping [DNS]                                                                                                                                                                                                   >
           ├─6684 /usr/bin/smokeping [speedtest-upload]                                                                                                                                                                                      >
           ├─6685 /usr/bin/smokeping [speedtest-download]                                                                                                                                                                                    >
           ├─6686 /usr/bin/smokeping [AnotherSSH]                                                                                                                                                                                            >
           ├─6687 /usr/bin/smokeping [EchoPingHttps]                                                                                                                                                                                         >
           ├─6688 /usr/bin/smokeping [FPing]                                                                                                                                                                                                 >
           ├─6689 /usr/bin/smokeping [SSH]                                                                                                                                                                                                   >
           └─6690 /usr/bin/smokeping [EchoPingHttp]                                                                                                                                                                                          >

Apr 24 18:23:47 i-5 systemd[1]: Starting Smokeping slave-only service to connect to remote Smokeping master...
Apr 24 18:23:48 i-5 smokeping[6664]: Sent data to Server and got new config in response.
Apr 24 18:23:48 i-5 smokeping[6664]: ### parsing ssh-keyscan output...OK
Apr 24 18:23:48 i-5 smokeping[6664]: ### parsing /usr/bin/speedtest-cli output... OK (version 2.1.1)
Apr 24 18:23:48 i-5 smokeping[6664]: ### parsing /usr/bin/speedtest-cli output... OK (version 2.1.1)
Apr 24 18:23:48 i-5 smokeping[6664]: ### parsing dig output...OK
Apr 24 18:23:48 i-5 smokeping[6664]: Note: logging to syslog as local0/info.
Apr 24 18:23:48 i-5 smokeping[6664]: Daemonizing /usr/bin/smokeping ...
Apr 24 18:23:48 i-5 systemd[1]: Started Smokeping slave-only service to connect to remote Smokeping master.

Add support for median upload/download speeds in graph details

Currently, the detailed graph plots the upload/download speeds and in the details below the plot, it displays median RTT and packet loss, which is great.

For unstable connections, median up/down speeds viewed over the last 3-6 months is often more useful, like when tweaking QoS to be relevant to current (most likely) available bandwidth.

Could we show all 3 median RTT, packet loss and up/down values or have a choice what to display in the details?

Unsure if this is a permission error in Smokeping::probes::speedtest

Things were working well until the smokeping master had some recent issues with SSL cert renewal and I noticed the smokeping slave stopped updating.

[strykar@slave ~]$ sudo -u smokeping /usr/bin/smokeping --debug --master-url=https://xx.xxxxxx.xx/smokeping.cgi --cache-dir=/var/smokeping/ --shared-secret=/var/smokeping/secret.txt --pid-dir /var/smokeping/
Sent data to Server and got new config in response.
Can't locate IO/Select.pm:   ../IO/Select.pm: Permission denied at /usr/lib/Smokeping/probes/basefork.pm line 21.
BEGIN failed--compilation aborted at /usr/lib/Smokeping/probes/basefork.pm line 21.
Compilation failed in require at /usr/share/perl5/core_perl/base.pm line 137.
	...propagated at /usr/share/perl5/core_perl/base.pm line 159.
BEGIN failed--compilation aborted at /usr/lib/Smokeping/probes/AnotherSSH.pm line 18.
Compilation failed in require at (eval 52) line 1.

[strykar@slave ~]$ getfacl /usr/lib/Smokeping
# file: usr/lib/Smokeping
# owner: smokeping
# group: smokeping
user::rwx
group::r-x
other::r-x

[strykar@slave ~]$ getfacl /usr/lib/perl5/
# file: usr/lib/perl5/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Running --debug on the smokeping master throws:

$ sudo -u smokeping /usr/bin/smokeping --debug --config=/etc/smokeping/config
require Smokeping::probes::speedtest failed: Can't locate IO/Select.pm:   ../IO/Select.pm: Permission denied at /usr/lib/Smokeping/probes/basefork.pm line 21, <$fh> line 97.
BEGIN failed--compilation aborted at /usr/lib/Smokeping/probes/basefork.pm line 21, <$fh> line 97.
Compilation failed in require at /usr/share/perl5/core_perl/base.pm line 137, <$fh> line 97.
	...propagated at /usr/share/perl5/core_perl/base.pm line 159, <$fh> line 97.
BEGIN failed--compilation aborted at /usr/lib/Smokeping/probes/speedtest.pm line 18, <$fh> line 97.
Compilation failed in require at (eval 44) line 1, <$fh> line 97.

$ getfacl /usr/lib/Smokeping
# file: usr/lib/Smokeping
# owner: smokeping
# group: smokeping
user::rwx
user:http:rwx
user:smokeping:rwx
group::r-x
mask::rwx
other::r-x

$ getfacl /usr/share/perl5/
# file: usr/share/perl5/
# owner: root
# group: root
user::rwx
user:http:rwx
user:smokeping:rwx
group::r-x
mask::rwx
other::r-x

$ getfacl /usr/lib/perl5/
# file: usr/lib/perl5/
# owner: root
# group: root
user::rwx
user:http:rwx
user:smokeping:rwx
group::r-x
mask::rwx
other::r-x

$ 

Is this a permissions issue? The only thing I can think of that has changed is the hostname of the master.

Graphs not generating

I've configured and verified that the speedtests are being performed correctly but no graphs are generated.

Graphs empty

I've configured and verified that the speedtests are being performed correctly but graphs keeps empy.
smokeping version: 2.007003

Targets:

*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher

+Network
menu =Network
title = Network

++Speedtest
menu = Speedtest
title = Speedtest

+++ download
menu = Download
title = Download
probe = speedtestcli-download
server = 21509
measurement = download
host = dummy.com

+++ upload
menu = Upload
title = Upload
probe = speedtestcli-upload
server = 21509
measurement = upload
host = dummy.com

Probes

+ speedtestcli
binary = /usr/bin/speedtest
timeout = 300
forks = 1
step = 3600
offset = random
pings = 3

++ speedtestcli-download
measurement = download

++ speedtestcli-upload
measurement = upload

Smokeping service

Jan 22 11:30:29 pi4-neo systemd[1]: Starting Latency Logging and Graphing System...
Jan 22 11:30:30 pi4-neo smokeping[6640]: ### parsing /usr/bin/speedtest output... OK (version 1.0.0.2)
Jan 22 11:30:30 pi4-neo smokeping[6640]: ### parsing /usr/bin/speedtest output... OK (version 1.0.0.2)
Jan 22 11:30:30 pi4-neo smokeping[6640]: Note: logging to syslog as local0/info.
Jan 22 11:30:30 pi4-neo smokeping[6640]: Daemonizing /usr/sbin/smokeping ...
Jan 22 11:30:30 pi4-neo systemd[1]: Started Latency Logging and Graphing System.`

Smokeping debug (mask ip)

speedtestcli-upload: forks 1, timeout for each target 901
speedtestcli-upload: [Speedtestcli] query=/usr/bin/speedtest --server-id 21509 -f json --accept-license --accept-gdpr 2>&1 | tail -1
speedtestcli-upload: [Speedtestcli] output: {"type":"result","timestamp":"2021-01-22T10:57:14Z","ping":{"jitter":0.105,"latency":13.244},"download":{"bandwidth":11918018,"bytes":50299176,"elapsed":4209},"upload":{"bandwidth":3528106,"bytes":12722128,"elapsed":3608},"packetLoss":0,"isp":"T-Mobile Thuis","interface":{"internalIp":"192.168.1.2","name":"eth0","macAddr":"DC:A6:32:6D:EC:56","isVpn":false,"externalIp":"31.20.x.x"},"server":{"id":21509,"name":"i3D.net","location":"Rotterdam","country":"Netherlands","host":"eu.speedtest.i3d.net","port":8080,"ip":"213.163.76.135"},"result":{"id":"b15d8092-119b-409d-9a3e-34549ba5a26b","url":"https://www.speedtest.net/result/c/b15d8092-119b-409d-9a3e-34549ba5a26b"}}
speedtestcli-upload: [Speedtestcli] Got value: 3528106, unit: 8 -> 28224848
speedtestcli-upload: [Speedtestcli] time=2.8224848000e+07 2.8224848000e+07 2.8224848000e+07
speedtestcli-upload: dummy.com: got 2.8224848000e+07 2.8224848000e+07 2.8224848000e+07
speedtestcli-download: forks 1, timeout for each target 901
speedtestcli-download: [Speedtestcli] query=/usr/bin/speedtest --server-id 21509 -f json --accept-license --accept-gdpr 2>&1 | tail -1
speedtestcli-download: [Speedtestcli] output: {"type":"result","timestamp":"2021-01-22T10:57:24Z","ping":{"jitter":0.16200000000000001,"latency":13.704000000000001},"download":{"bandwidth":11758404,"bytes":58286344,"elapsed":4916},"upload":{"bandwidth":3530265,"bytes":13110488,"elapsed":3713},"packetLoss":0,"isp":"T-Mobile Thuis","interface":{"internalIp":"192.168.1.2","name":"eth0","macAddr":"DC:A6:32:6D:EC:56","isVpn":false,"externalIp":"31.20.7.134"},"server":{"id":21509,"name":"i3D.net","location":"Rotterdam","country":"Netherlands","host":"eu.speedtest.i3d.net","port":8080,"ip":"213.163.76.135"},"result":{"id":"3b001c7f-d95f-4758-8f03-7de420d94a48","url":"https://www.speedtest.net/result/c/3b001c7f-d95f-4758-8f03-7de420d94a48"}}
speedtestcli-download: [Speedtestcli] Got value: 11758404, unit: 8 -> 94067232
speedtestcli-download: [Speedtestcli] time=9.4067232000e+07 9.4067232000e+07 9.4067232000e+07
speedtestcli-download: dummy.com: got 9.4067232000e+07 9.4067232000e+07 9.4067232000e+07

[Feature request] Add Latency graph

As the title suggest would it be possible to add a graph that shows the latency (ping) to Speedtest Server. If possible the same for Jitter and packet loss?

Failure parsing the version

Hi,

I've installed the plugins and restarted smokeping, however it fails to start due to:

smokeping[3176]: ERROR: output of '/usr/bin/speedtest --version' does not return a meaningful version number. Is speedtest installed?
smokeping[3176]: at (eval 60) line 1.

The output returned by speedtest --version is:

# /usr/bin/speedtest --version
speedtest-cli 2.1.2
Python 2.7.5 (default, Apr  2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

speedtest --version' does not return a meaningful version number

i have the folllowing issue:

after installing i tried to start smokeping service with no success... may someone help me?

OS:
NAME="Ubuntu"
VERSION="20.10 (Groovy Gorilla)"

smokeping --version 2.007003

Jan 15 18:14:05 tousure-rpi systemd[1]: Starting Latency Logging and Graphing System... Jan 15 18:14:08 tousure-rpi smokeping[10962]: ### parsing /usr/local/bin/speedtest-cli output... OK (version 5) Jan 15 18:14:08 tousure-rpi smokeping[10962]: ### parsing /usr/local/bin/speedtest-cli output... OK (version 5) Jan 15 18:14:09 tousure-rpi smokeping[10962]: ERROR: output of '/usr/local/bin/speedtest --version' does not return a meaningful version number. Is speedtest installed? Jan 15 18:14:09 tousure-rpi smokeping[10962]: at (eval 64) line 1.

speedtest --version
speedtest-cli 2.1.2
Python 3.8.6 (default, Sep 25 2020, 09:36:53) [GCC 10.2.0]

thx

extra arguments?

sorry to bother you again :)

is there a way to add extra command line arguments to the binary command? I see the curl probe for smokeping has an 'extraargs' section but I'm not sure how I'd go about adding it to the speedtest one.

(i want to add "--secure" as a work around to the current speedtest-cli issues)

Speedtest not showing graphs

Hi there,

I am sorry for logging the issue - I somehow think I have a config issue, but can not figure it out. The speedtest-cli runs and the speedtest.pm is in the right place and executes.

My Probes config looks like this

...

+ speedtest
binary = /config/speedtest-cli
timeout = 300
step = 3600
offset = random
pings = 3

++ speedtest-download
measurement = download

++ speedtest-upload
measurement = upload
...

My Targets like this

...

+ speedtest
menu = Speedtest.net
title = Speedtest.net probes

++ download_Seacom_Johannesburg
menu = Download Seacom (JHB)
title = Download from Seacom Ltd (Johannesburg, South Africa) [3.21 km]
probe = speedtest-download
server = 5889
measurement = download
host = dummy.com

++ upload_Seacom_Johannesburg
menu = Upload Seacom (JHB)
title = Upload to Seacom Ltd (Johannesburg, South Africa) [3.21 km]
probe = speedtest-upload
server = 5889
measurement = upload
host = dummy.com

Running the CLI works

root@d27396718d38:/$ /config/speedtest-cli --server 5889 --simple
Ping: 1262.06 ms
Download: 3.98 Mbit/s
Upload: 4.42 Mbit/s

Running via smokeping also:

...
speedtest-upload: probing 1 targets with step 3600 s and offset 279 s.
speedtest-download: probing 1 targets with step 3600 s and offset 279 s.
speedtest-upload: forks 5, timeout for each target 901
speedtest-upload: query=/config/speedtest-cli --server 5889 --simple  2>&1
speedtest-upload: output: Ping: 1319.161 ms
speedtest-upload: output: Download: 2.81 Mbit/s
speedtest-upload: output: Upload: 4.53 Mbit/s
speedtest-upload: Got value: 4.53, unit: Mbit/s -> 4530000
speedtest-upload: time=4.5300000000e+06 4.5300000000e+06 4.5300000000e+06
speedtest-upload: dummy.com: got 4.5300000000e+06 4.5300000000e+06 4.5300000000e+06
speedtest-download: forks 5, timeout for each target 901
speedtest-download: query=/config/speedtest-cli --server 5889 --simple  2>&1
speedtest-download: output: Ping: 1285.436 ms
speedtest-download: output: Download: 2.68 Mbit/s
speedtest-download: Got value: 2.68, unit: Mbit/s -> 2680000
speedtest-download: time=2.6800000000e+06 2.6800000000e+06 2.6800000000e+06
speedtest-download: dummy.com: got 2.6800000000e+06 2.6800000000e+06 2.6800000000e+06
Calling RRDs::update(/data/speedtest/upload_Seacom_Johannesburg.rrd --template uptime:loss:median:ping1:ping2:ping3 1480510870:U:0:4.5300000000e+06:4.5300000000e+06:4.5300000000e+06:4.5300000000e+06)
Calling RRDs::update(/data/speedtest/download_Seacom_Johannesburg.rrd --template uptime:loss:median:ping1:ping2:ping3 1480510870:U:0:2.6800000000e+06:2.6800000000e+06:2.6800000000e+06:2.6800000000e+06)
....

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.