Your persistent ISP bandwidth monitor.
As a software engineer who relies on managed dependencies, the least of your concerns SHOULD be the managed dependencies. This is not the case in the country I am living in.
I am currently subscribed to my ISP's fiber connection offering. It promises no data cap, maxed at 25Mbps, but with a teeny tiny asterisk that says:
30% minimum speed at 80% service reliability.
Then came that night, when our internet speed dropped down to 1Mbps. I could've tolerated it if it only happened rarely. But it happened consistently at certain times of the day, and it made me realize that they might be throttling connections at specified times of the day.
To track that down (and soon nag about it), I started this project.
You can download the jar from the releases, and run it with:
$ java -jar ispmon-1.0.0.jarOr, if you're like me, who loves running applications on Docker:
$ docker run -p 5000:5000 -t -d --name ispmon devcsrj/ispmon:1.0.0Configuration options below can be overridden with the --env argument. In addition, results
are stored in a directory called results. To persists the results across container restarts,
configure the volume. For example:
docker run -p 5000:5000 -t -d --volume /path/in/host:/opt/results --name ispmon devcsrj/ispmon:1.0.0The application reads the following from the environment variables:
ISPMON_INTERVAL=15- (minutes) the interval at which, speed test should be doneISPMON_DURATION=30- (seconds) the maximum time to conduct speed testsISPMON_PORT=5000- the port to run the web serverTZ- to set the timezone
- JDK 8
Tip: Use sdkman.
$ sdk install java 19.2.0-grlTo run the server:
$ ./gradlew runIt will then start a server at port 5000.
The frontend resides under src/main/frontend. It also expects that the
backend is running at port 5000.
$ cd src/main/frontend
$ yarn run startThis will start the webpack server at port 5001.
To build a jar:
$ ./gradlew buildYou can then run this with java -jar build/lib/ispmon-$version.jar.
-
Have you tried switching to another ISP?
Well, there's another ISP here, but I'd argue it's not any better. At work, I ran
ispmonto see the results for comparison. I am staggered: