All Projects → aidengilmartin → speedtest-to-influxdb

aidengilmartin / speedtest-to-influxdb

Licence: MIT license
Script to periodically run the Speedtest CLI application by Ookla and post results to InfluxDB.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to speedtest-to-influxdb

docker-speedtest-influxdb
Speedtest results to InfluxDB for Grafana
Stars: ✭ 20 (-60%)
Mutual labels:  influxdb, speedtest
docker-internet-speedtest-dashboard
Docker based Internet Speedtest Dashboard powered by InfluxDB, Chronograf, and Speedtest-CLI
Stars: ✭ 15 (-70%)
Mutual labels:  influxdb, speedtest
Internet Speedtest Docker
Internet testing running on Docker Compose.
Stars: ✭ 88 (+76%)
Mutual labels:  influxdb, speedtest
fast-speedtest-api
fast.com API / CLI tool
Stars: ✭ 138 (+176%)
Mutual labels:  speedtest
influxable
A lightweight python ORM / ODM / Client for InfluxDB
Stars: ✭ 36 (-28%)
Mutual labels:  influxdb
fanuc-driver
Configurable Fanuc Focas data collector and post processor.
Stars: ✭ 38 (-24%)
Mutual labels:  influxdb
influx4mqtt
Insert incoming MQTT values into InfluxDB. Follows mqtt-smarthome architecture.
Stars: ✭ 34 (-32%)
Mutual labels:  influxdb
chef-influxdb
A cookbook for InfluxDB, a time-series database (influxdb.org)
Stars: ✭ 53 (+6%)
Mutual labels:  influxdb
docker-iot-dashboard
A complete IoT server for LoRaWAN IoT projects: node-red + influxdb + grafana + ssl + let's encrypt using docker-compose.
Stars: ✭ 79 (+58%)
Mutual labels:  influxdb
InfluxDB
App Metrics Extensions for InfluxDB reporting
Stars: ✭ 17 (-66%)
Mutual labels:  influxdb
netdata-influx
Netdata ➡️ InfluxDB metrics exporter & Grafana dashboard
Stars: ✭ 29 (-42%)
Mutual labels:  influxdb
tcping
tcping command, written with Objective-C, on macOS,tcping for mac,ping over a tcp connection
Stars: ✭ 219 (+338%)
Mutual labels:  speedtest
syncflux
SyncFlux is an Open Source InfluxDB Data synchronization and replication tool for migration purposes or HA clusters
Stars: ✭ 145 (+190%)
Mutual labels:  influxdb
network-speed
Node light weight module to check network speed (upload/download)
Stars: ✭ 69 (+38%)
Mutual labels:  speedtest
tracker
Track your activities!
Stars: ✭ 14 (-72%)
Mutual labels:  influxdb
pi-adhoc-mqtt-cluster
Using batman-adv to connect several raspberrypi to a mesh network and creating a vernemq cluster
Stars: ✭ 20 (-60%)
Mutual labels:  influxdb
terraform-aws-influxdb
Deploys InfluxDB Enterprise to AWS
Stars: ✭ 29 (-42%)
Mutual labels:  influxdb
nifi-influxdb-bundle
InfluxDB Processors For Apache NiFi
Stars: ✭ 30 (-40%)
Mutual labels:  influxdb
unpoller
Application: Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus
Stars: ✭ 1,613 (+3126%)
Mutual labels:  influxdb
Architeuthis
MITM HTTP(S) proxy with integrated load-balancing, rate-limiting and error handling. Built for automated web scraping.
Stars: ✭ 35 (-30%)
Mutual labels:  influxdb

Speedtest to InfluxDB

This is a small Python script that will continuously run the Speedtest CLI application by Ookla, reformat the data output and forward it on to an InfluxDB database.

You may want to do this so that you can track your internet connections consistency over time. Using Grafana you can view and explore this data easily.

Grafana Dashboard

Using the script

Adjust the InfluxDB connection settings at the top of main.py to fit your setup and then run with one of the options listed below.

Be aware that this script will automatically accept the license and GDPR statement so that it can run non-interactively. Make sure you agree with them before running.

1. No Container

  1. Install the Speedtest CLI application by Ookla.

    NOTE: The speedtest-cli package in distro repositories is an unofficial client. It will need to be uninstalled before installing the Ookla Speedtest CLI application with the directions on their website.

  2. Install the InfluxDB client for library from Python.

    pip3 install influxdb

  3. Run the script.

    python3 ./speedtest2influx.py

2. Run with Docker or Podman

  1. Build the container.

    docker build -t aidengilmartin/speedtest-influx ./

  2. Run the container.

    docker run -d --name speedtest-influx aidengilmartin/speedtest-influx

  3. Run the full stack with docker-compose

    In the docker_env/ folder you can edit the environment variables of the docker container (see below, grafana and influx).

    docker-compose up -d

    Login to the Grafana Dashboard (admin/admin) and create a datasource.

    • Type: InfluxDB
    • Name: speedtests
    • HTTP - URL: http://influxdb:8086
    • InfluxDB Details - Database: speedtest_db
    • InfluxDB Details - User: db_username
    • InfluxDB Details - Password: db_password

    Import the grafana_dashboard_template.json template as a new dashboard.

Environment Variables

Use OS or Docker environmet variables to configure the program run.

Example: docker run -d --env DB_ADDRESS= influx_db --env TEST_INTERVAL=120 --name speedtest-influx aidengilmartin/speedtest-influx

InfluxDB Settings

Variable Default Value Informations
DB_ADDRESS db_hostname.network FQDN of InfluxDB Server
DB_PORT 8086 Port Number of InfluxDB Server
DB_USER db_username InfluxDB user name
DB_PASSWORD db_password InfluxDB password
DB_DATABASE speedtest_db InfluxDB database name
DB_RETRY_INVERVAL 60 Time before retrying a failed data upload.

Speedtest Settings

Variable Default Value Informations
TEST_INTERVAL 1800 Time between tests (in seconds).
TEST_FAIL_INTERVAL 60 Time before retrying a failed Speedtest (in seconds).

Loglevel Settings

Variable Default Value Informations
PRINT_DATA False Print Test Data in Log (True or False)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].