All apps · 0 apps
Foptimum
Docker app from roseatoni's Repository
Overview
Readme
View on GitHubFoptimum
Foptimum is a lightweight, dockerized app to monitor your internet speed and uptime so you can keep your ISP accountable.
Foptimum exports its data to Prometheus so it can easily be visualized with a tool like Grafana.
Deployment
Docker
The Docker image is available on Docker Hub. Pull the container using the following command:
docker pull roseatoni/foptimum:latest
All variables are passed to the program as environment variables. These variables are:
| Variable Name | Description | Example Value |
|---|---|---|
| SPEEDTEST_INTERVAL | How often (in seconds) to run the speedtest | 1800 (30 min)** |
| PING_INTERVAL | How often (in seconds) to ping all servers | 15 |
| SERVER_LIST | A comma delimited list of IPs to ping | 1.1.1.1,8.8.8.8 |
The speedtest and/or the pings can be turned off by setting their respective intervals to 0.
** I reccomend setting the Speedtest interval to 30 minutes at minimum. In testing, I ran into issues with the speedtest failing when set to an interval lower than 30 minutes. This was probably due to some sort of rate limiting with the service.
The Prometheus server is exposed in the container on port 9191. When deploying this container, map port 9191 to your desired host port.
Putting it all together, here is an example Docker run command:
docker run -d -p 9191:9191 -e SPEEDTEST_INTERVAL=1800 -e PING_INTERVAL=15 -e SERVER_LIST=1.1.1.1,8.8.8.8 roseatoni/foptimum:latest
unRAID
This project has also been added to the unRAID community apps store.
Grafana
A very basic Grafana dashboard has been added to this repository to get you started with visualizing the data. Download Grafana_Dashboard.json and import it into your Grafana instance.
Logs
If you do not have a means of visualizing the Prometheus data, you can also manually look at the logs to identify internet outages.
Logs are written to a file called app.log. So, you can read the logs by running a command such as:
docker exec dc5a365ad9a572863a3cdeb3f2a3c3c82034fe669c74e75df1730469286e335e tail -n 100 app.log
One thing that the logs can provide that Grafana can not is the IP address of failed pings. This allows you to determine if your internet is really down, or it is just one of the servers you chose to ping.
Contributing
I am relatively new to Grafana. I know the data collected by this program is rather simple, but I also know that there are Grafana gurus out there who can probably do more with the data, or at the very least make the graphs prettier.
Of course, any other suggestions or improvements are not only accepted, but encouraged.
Install Foptimum on Unraid in a few clicks.
Find Foptimum in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Related apps
Explore more like this
Explore allLinks
Details
roseatoni/foptimum:latestRuntime arguments
- Web UI
http://[IP]:[PORT:9191]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
The port where Prometheus will be exposing result data
- Target
- 9191
- Value
- 9191
How often in seconds the speedtest will run (set to 0 to disable speed test)
- Target
- SPEEDTEST_INTERVAL
- Default
- 1800
- Value
- 1800
How often in seconds to ping servers in the server list (set to 0 to disable pings)
- Target
- PING_INTERVAL
- Default
- 15
- Value
- 15
Comma delimited list of IPs to ping
- Target
- SERVER_LIST
- Default
- 1.1.1.1,8.8.8.8
- Value
- 1.1.1.1,8.8.8.8