Ookla-SpeedTest 1.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Ookla-SpeedTest --version 1.1.0                
NuGet\Install-Package Ookla-SpeedTest -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ookla-SpeedTest" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Ookla-SpeedTest --version 1.1.0                
#r "nuget: Ookla-SpeedTest, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Ookla-SpeedTest as a Cake Addin
#addin nuget:?package=Ookla-SpeedTest&version=1.1.0

// Install Ookla-SpeedTest as a Cake Tool
#tool nuget:?package=Ookla-SpeedTest&version=1.1.0                

Ookla-SpeedTest-API

Module creating metrics measurements Internet speed to mode cli (no use dependencies) for output to object format and log file
Data collection resource: speedtest.net (dev Ookla)

📚 Used methods

  • Using native API method (via COM Object InternetExplorer) for web function start
  • Using REST API GET method (via Invoke-RestMethod) for parsing JSON report

🚀 Install/Update

✔️ Works in PSVersion 5.1
❌ IE to PowerShell 7.3 not supported

For install or update module from the GitHub repository (used the script Deploy-Invoke-SpeedTest.ps1) use the command in the powershell console:

Invoke-Expression(New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/Lifailon/Ookla-SpeedTest-API/rsa/Scripts/Deploy-Invoke-SpeedTest.ps1")

🔔 Module Invoke-SpeedTest

PS C:\Users\Lifailon> $ookla = Invoke-SpeedTest -LogWrite


date               : 08.05.2023 11:36:10
id                 : 14708271987
connection_icon    : wireless
download           : 33418
upload             : 35442
latency            : 15
distance           : 50
country_code       : RU
server_id          : 2707
server_name        : Bryansk
sponsor_name       : DOM.RU
sponsor_url        :
connection_mode    : multi
isp_name           : Resource Link
isp_rating         : 4.0
test_rank          : 63
test_grade         : B-
test_rating        : 4
idle_latency       : 17
download_latency   : 116
upload_latency     : 75
additional_servers : {@{server_id=8191; server_name=Bryansk; sponsor_name=SectorTelecom.ru}, @{server_id=46278; server_
                     name=Fokino; sponsor_name=Fokks - Promyshlennaya avtomatika Ltd.}, @{server_id=18218; server_name=
                     Bryansk; sponsor_name=RIA-link Ltd.}}
path               : result/14708271987
hasSecondary       : True

PS C:\Users\Lifailon> $ookla.additional_servers

server_id server_name sponsor_name
--------- ----------- ------------
     8191 Bryansk     SectorTelecom.ru
    46278 Fokino      Fokks - Promyshlennaya avtomatika Ltd.
    18218 Bryansk     RIA-link Ltd.

🎉 Example

Result to UI: https://www.speedtest.net/result/14708271987
Image alt

📑 Output log to console

PS C:\Users\Lifailon> Invoke-SpeedTest -LogRead | ft

Date       Time     Download    Upload      Ping
----       ----     --------    ------      ----
05/08/2023 02:10:32 36.293 Mbit 34.832 Mbit 16 ms
05/08/2023 02:39:18 34.623 Mbit 34.623 Mbit 18 ms
05/08/2023 02:49:01 33.530 Mbit 35.573 Mbit 16 ms
05/08/2023 10:50:50 32.638 Mbit 37.382 Mbit 15 ms
05/08/2023 11:20:33 37.402 Mbit 39.780 Mbit 16 ms
05/08/2023 11:21:34 36.034 Mbit 35.835 Mbit 16 ms
05/08/2023 11:33:04 32.101 Mbit 32.742 Mbit 18 ms
05/08/2023 11:36:10 33.418 Mbit 35.442 Mbit 17 ms
...

📊 PowerShell + InfluxDB + Grafana

Create Service

Download script: SpeedTestTo-InfluxDB.ps1 (change the IP-address and database name for InfluxDB)
Download NSSM
Copy files to folder: C:\NSSM\

$powershell_Path = (Get-Command powershell).Source
$NSSM_Path = "C:\NSSM\NSSM-2.24.exe"
$Script_Path = "C:\NSSM\SpeedTestTo-InfluxDB.ps1"
$Service_Name = "SpeedTestTo-InfluxDB"
& $NSSM_Path install $Service_Name $powershell_Path -ExecutionPolicy Bypass -NoProfile -f $Script_Path
Get-Service $Service_Name | Start-Service
Get-Service $Service_Name | Set-Service -StartupType Automatic

Get-Service $Service_Name | select Status,Name,StartType

Status Name                 StartType
 ------ ----                 ---------
Running SpeedTestTo-InfluxDB Automatic

View Data

SELECT * FROM "speedtest" WHERE time > now() - 40m

Image alt

Add to Dashboard

SELECT download,upload FROM speedtest

Image alt

Image alt

Changelog:

09.07.2023: Added script create service for dashboard Grafana from the InfluxDB
19.07.2023: Debug for process stoppage (added block finally) and disable check certificate to IE settings

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.1 916 2/19/2024
1.1.0 773 2/3/2024