All Projects → pedrocesar-ti → Internet Speedtest Docker

pedrocesar-ti / Internet Speedtest Docker

Internet testing running on Docker Compose.

Projects that are alternatives of or similar to Internet Speedtest Docker

Varken
Standalone application to aggregate data from the Plex ecosystem into InfluxDB using Grafana for a frontend
Stars: ✭ 829 (+842.05%)
Mutual labels:  influxdb, grafana
Influxgraph
Graphite InfluxDB backend. InfluxDB storage finder / plugin for Graphite API.
Stars: ✭ 87 (-1.14%)
Mutual labels:  influxdb, grafana
Docker Compose Grafana Influxdb
Demonstration scripts for running Grafana with InfluxDB as datasource.
Stars: ✭ 29 (-67.05%)
Mutual labels:  influxdb, grafana
Wizzy
Manage & automate Grafana with easy wizzy
Stars: ✭ 461 (+423.86%)
Mutual labels:  influxdb, grafana
Influx Crypto Trader
Node js trading bot, let you create trading strategy and run it (backtest/simulation/live)
Stars: ✭ 49 (-44.32%)
Mutual labels:  influxdb, grafana
Monitoring
Monitor ESXi, Synology, Docker, PiHole and Raspberry Pi and Windows using Grafana, InfluxDB and Telegraf
Stars: ✭ 493 (+460.23%)
Mutual labels:  influxdb, grafana
Pgwatch2
PostgreSQL metrics monitor/dashboard
Stars: ✭ 960 (+990.91%)
Mutual labels:  influxdb, grafana
Hastic Server
Hastic data management server for analyzing patterns and anomalies from Grafana
Stars: ✭ 292 (+231.82%)
Mutual labels:  influxdb, grafana
Ssh Log To Influx
Send SSH authentication logs to influxdb with geohashing IP
Stars: ✭ 49 (-44.32%)
Mutual labels:  influxdb, grafana
Docker Flask Mongodb Example
Uses docker compose with a python flask microservice and MongoDB instance to make a sample application
Stars: ✭ 49 (-44.32%)
Mutual labels:  influxdb, grafana
Victoriametrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database
Stars: ✭ 5,558 (+6215.91%)
Mutual labels:  influxdb, grafana
Personal Influxdb
Import data from various APIs into InfluxDB
Stars: ✭ 51 (-42.05%)
Mutual labels:  influxdb, grafana
Awesome Monitoring
INFRASTRUCTURE、OPERATION SYSTEM and APPLICATION monitoring tools for Operations.
Stars: ✭ 356 (+304.55%)
Mutual labels:  influxdb, grafana
Onboarding
A list of resources we at flyeralarm use to get new developers up and running
Stars: ✭ 648 (+636.36%)
Mutual labels:  influxdb, grafana
Docker Statsd Influxdb Grafana
Docker Image with Telegraf (StatsD), InfluxDB and Grafana
Stars: ✭ 352 (+300%)
Mutual labels:  influxdb, grafana
Unifiedmetrics
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
Stars: ✭ 29 (-67.05%)
Mutual labels:  influxdb, grafana
Questdb
An open source SQL database designed to process time series data, faster
Stars: ✭ 7,544 (+8472.73%)
Mutual labels:  grafana, influxdb
Performance Testing Framework
Framework allows to perform load testing with Apache Jmeter, view application/server metrics in real-time with Grafana, analyze errors cause with detailed traces for failed requests, compare different test runs in scripted dashboard and perform frontend performance testing with sitespeed.io+webpagetest
Stars: ✭ 275 (+212.5%)
Mutual labels:  influxdb, grafana
Solarthing
Monitors an Outback MATE and a Renogy Rover - MPPT Charge Controller. Integrates with Grafana, PVOutput and more!
Stars: ✭ 33 (-62.5%)
Mutual labels:  influxdb, grafana
Go Web Backend
Dockerized backend services for web application
Stars: ✭ 50 (-43.18%)
Mutual labels:  influxdb, grafana

internet-speedtest-docker

Spoiler Alert

This project won't help you with your connection, actually this project born when I need to monitoring the speed of my Internet, create a report to send to my ISP, so they can take some action. Using Docker Compose I put together three containers with the tools needed to monitoring and display the status of your Internet (and I know that tool can do more or can be better).

Here in Brazil is a mess to contract a good ISP, they just don't deliver the speed they should for the users. Generally in a small business or a residence you can't pay for a very expensive plans where they certify the bandwidth delivered. So you have to call them many times complaining about the speed of your internet connection and always they will ask you to do that Internet Tests Online, such as SpeedTest, AT&T SpeedTest, TestMyNet, most of these tests are based only on ICMP messages that don't reflect your real bandwidth at that time. Or even worse your ISP can allow all trafic ICMP so when you test it appears that you have a good speed but when you have to download some content you can't do it that well. There is much more to talk about it but I don't wanna spend so much time talking about the things that are wrong here.

Running container

The only requirement to run this compose is have Docker Compose installed, if you need to install you can click here to check out how can you do that. After installed the only thing you need is export the variables that you like and configure the volume for persistent data, then run the compose as command available below:

$ git clone https://github.com/pedrocesar-ti/internet-speedtest-docker.git
$ cd internet-speedtest-docker

$ docker-compose up -d 

Docker Compose

As you probably know Docker Compose is a tool to let you running a multi-container application, so as I sad before I put together some contaiers to make everything work together. They are described below:

InfluxDB (DB)

InfluxDB is a database tool based on time-series, so every event is registrate with their timestamp. I decided to use InfluxDB at first because has great integration with Grafana and second I don't take cara about timestamp and how generate the graphs based on time.

This project uses the official InfluxDB image hosted in the Docker Hub Library.

You can edit or remove the volumes section of the docker-compose.yml file to reflect where you want you persistent data to live, or you can remove it if you like. If you remove the volume mount you will lose all of your data if the container is removed.

services:
  db:
    image: influxdb 
    container_name: influxdb
    volumes:
      - "/data/influxdb/:/var/lib/influxdb"

You can customize some actions with variables listed below:

Variables Default Function
INFLUXDB_ADMIN_USER admin Set root user for the database.
INFLUXDB_ADMIN_PASSWORD password Set the password for the root user.
INFLUXDB_DB speedtest Create a database speedtest when container starts.

Grafana (Web)

Grafana is a tool to create and manage dashboards and graphs. It's a really cool tool and as I said earlier has a perfect integration with InfluxDB.

When I started this project I used tutumcloud/grafana image, however they stopped to update grafana image beacause the new version has a different way to be installed, so it's deprecated. So I used grafana original image as a base system to generate my own image.

You can also customize this image with few variables:

Variables Default Function
GF_SERVER_ROOT http://localhost Set URL to configure Grafana built-in web server.
GF_SECURITY_ADMIN_PASSWORD Default without password. This is a password to access the Grafana Dashboard.

SpeedTest (Testing)

This image was created to run a script that calls speedtest-cli to test the internet connect and save data on InfluxDB. SpeedTest is a tool written in Python and is used to test your Internet connection based on download and upload some content from servers configured previously (in average this test takes around 30 sec, at least in my case).

The only variable to customize on this image is a variable to set the frequency that this script will run in seconds. So if you need your test to run every minute, change the variable to 60 seconds. Just bear in mind that the speed test execution time will be added on top of the test interval so you might end up with data points every 1 minute and something.

If you are using docker-compose to standup you stack you can easily change the variable value on the env/testing.env file.

Variables Default Function
TEST_INTERVAL 5 Time (in sec.) to set how long will sleep the script until run again.

Repositories used to

Enjoy! :)

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].