roest01/docker-speedtest-analyser

Results no longer displaying

monty974 opened this issue · 41 comments

My speedtest has been working solidly for over a year now, however from saturday or so it stopped displaying. doesn't matter what i do the graph draws but no results come up. I have tried deleting the results.csv to create a new one but now it says "invalid date" on the x axis. I pulled the latest version to see if that fixed it but no luck

results are being written to the file, but not sure if there is an issue with the way it gets written.

result.zip

Is the 1.2 version still working for you? In my setup latest version does run the speedtest (with the same invalid date error you have) but results are written correctly as the 1.2 version can show those results in the graph

Had the same issue, and did some research. In evaluation.js the processing of the timestamps fails. I guess the structure of the row.data[0] object of the Papa.parse has changed.

Changing the row.data[0] to row.data resolved the issue for me.

I hope that information helps.

I also have the issue with the results not showing in the graph.
Currently running 1.3. and changed the row.data[0] to row.data
-> Results are showing up. It did the trick. Thanks @Developer22974

cosyd commented

Same here. Using the docker container and manually fixed it there as a temporary workaround - changed row.data[0] to row.data and all is working again.

Had the same issue, and did some research. In evaluation.js the processing of the timestamps fails. I guess the structure of the row.data[0] object of the Papa.parse has changed.

Changing the row.data[0] to row.data resolved the issue for me.

I hope that information helps.

Hi there, I found the file and edited the row but still not joy. Did i miss something else I needed to do?

What I found out was to clear the cache of the browser. Then do a refresh. Did you do this?
Also maybe try out other browsers just to do some testing.

What I found out was to clear the cache of the browser. Then do a refresh. Did you do this?
Also maybe try out other browsers just to do some testing.

That did the trick… I just tried an incognito mode and yes i can see it now! Thanks so much for your tips!

Awesome !
Yeah, it took me a while to figure that one out.
I'm glad I could help.

Weird enough I am having the issue that the tester does not automatically run , it does it sporadically. So I have a 11am, then again 1pm, then again 3pm , then again 9pm.
No pattern to be seen. I need to do some digging.

Just spun this up and I'm seeing no results either. Incognito mode/clearing the cache doesn't help. Is the PR going to be merged and a new release pushed out soon, or do I need to manually hack the js per the comments above?

Edit: Hacked the js per the PR to remove the '[0]' and it's working now. :)

I just did this and it looks like the file is able to be written but it has 0 content inside it? It's blank (fresh fresh copy)?

That's weird that there is no content.

These are the steps I use:

Open Docker -> open the docker container -> goto terminal -> create -> bash windows opens

In terminal -> cd /var/www/html/js
vi evaluation.js

go to line Papa.parse("data/result.csv", {
There you will find the line
let dataArr = row.data;

See if this works

Sorry I apologise, I mean "I've just done this" as in I've re-run a fresh container.

I have not edited the contents of an existing one and I have a script, which stops, deletes, pulls fresh and re-spins all my containers once a week, so as soon as I commit a change to fix this one problem, a week later it will break again.

I suspect the fix needs to be done by roest01

Ah ok gotcha.

I've actually mapped out /var/www/html/js into my filesystem.

-v /dockerconfigs/speedtestanalyzer/js:/var/www/html/js

I've copied the contents of the files into here and about 2/3 down in the .js text file I removed the [0] and it has not worked.
I give up at this stage and I'll wait for the developer to fix the bug in the original docker container, it's (presumably?) a very quick and simple process, tho it has been broken for months now, perhaps he's very busy.

Great idea to map it to your filesystem and interesting that the fix doesn't work for you.
But I agree, hopefully the developer can fix this. Let's see.

So is this over and done with?

I guess this is dead. Thsi is a shame, my replacement just stuffed up too.

I never got it to work again.. It's still collecting data but won't display at all.

Need only edit a single file but it's awkward to do unfortunately.
Also editing the file, didn't work for me personally.

yes I did the edit as well, didn't work for me either.

Thanks, I thought I was an idiot, being unable to figure it out! - Maybe someone sharp made a good fork of it, I havne't checked that.

That's weird that there is no content.

These are the steps I use:

Open Docker -> open the docker container -> goto terminal -> create -> bash windows opens

In terminal -> cd /var/www/html/js
vi evaluation.js

go to line Papa.parse("data/result.csv", {
There you will find the line
let dataArr = row.data;

See if this works

This continues to work for me. Note the let dataArr = row.data; is the correction. The original line looks like this: let dataArr = row.data[0];

It is line 93 of the original file: https://github.com/roest01/docker-speedtest-analyser/blob/master/js/evaluation.js#L93

To get into the shell of the running docker container execute the command docker exec -it <containername> sh. From there the cd / and vi commands will work.

That's what I changed mine to initially, but still no joy.. even restarting the container etc didn't help

image

That's weird that there is no content.
These are the steps I use:
Open Docker -> open the docker container -> goto terminal -> create -> bash windows opens
In terminal -> cd /var/www/html/js
vi evaluation.js
go to line Papa.parse("data/result.csv", {
There you will find the line
let dataArr = row.data;
See if this works

This continues to work for me. Note the let dataArr = row.data; is the correction. The original line looks like this: let dataArr = row.data[0];

It is line 93 of the original file: https://github.com/roest01/docker-speedtest-analyser/blob/master/js/evaluation.js#L93

To get into the shell of the running docker container execute the command docker exec -it <containername> sh. From there the cd / and vi commands will work.

I'm honestly not super super dumb, with linux, I promise but I had real issues with this. I think VI is not fun to work with, however I did manage to edit the ghastly thing and it still didn't work for me.

I wonder if someone can just spin off a fork of it, that's fixed? (is it that simple? I don't actually 'get' forks yet)

I updated the container image I was using and see the results not flowing anymore as well. Looking at the logs the actual speetest python commands were erroring out. I was able to resolve this by going into the container and executing pip3 install speedtest-cli. Once you do this, restart the container and try running a manual test.

sadly that didn't work for me. it's still running and recording results, it's just not displaying the results. I checked the results.csv and it's writing the results.

I'm glad people are discussing this again at least, thanks for the help.
My chart is full of "invalid date" all through it to be honest.

I suspect even if I nuke the container and the data, it'll still be broken.

cosyd commented

Here are the lists of all the forks? Does anyone know how to check which one is the best or most updated?
https://github.com/roest01/docker-speedtest-analyser/network/members

That's weird that there is no content.
These are the steps I use:
Open Docker -> open the docker container -> goto terminal -> create -> bash windows opens
In terminal -> cd /var/www/html/js
vi evaluation.js
go to line Papa.parse("data/result.csv", {
There you will find the line
let dataArr = row.data;
See if this works

This continues to work for me. Note the let dataArr = row.data; is the correction. The original line looks like this: let dataArr = row.data[0];
It is line 93 of the original file: https://github.com/roest01/docker-speedtest-analyser/blob/master/js/evaluation.js#L93
To get into the shell of the running docker container execute the command docker exec -it <containername> sh. From there the cd / and vi commands will work.

I'm honestly not super super dumb, with linux, I promise but I had real issues with this. I think VI is not fun to work with, however I did manage to edit the ghastly thing and it still didn't work for me.

I wonder if someone can just spin off a fork of it, that's fixed? (is it that simple? I don't actually 'get' forks yet)

This worked for me: remove the [0] from the row.data[0]

I've edited the file again, the package is literally not writing out to /var/www/html/data, where it's supposed to store the csv (??) file which contains the tests.

Do I need to stop and start the container or something?

Since this project seems to be dead and no longer functioning properly (at least for many/most), and people are looking for alternatives I thought I'd mention this project. https://github.com/henrywhitaker3/Speedtest-Tracker I've been using this for a few months. It seems to work really well and I personally prefer the dashboard there plus there is influxdb integration if you use Grafana dashboards.

Thanks @JacobOkanta I've posted that one beofre too, there's plotter and tracker.

ansemjo/speedtest
and
henrywhitaker3/speedtest-tracker

Mind you tracker did have a bug recently that took a few weeks to fix.
I still much prefer the final look of roests analyser to be honest, graphically that is, but I'm not smart enough to fix the broken design.

Maybe the poor fella died of covid or something.

That’s exactly what I have done and it still doesn’t work. There is something else wrong seomwhere. From: pdchristian @.> Sent: Wednesday, 29 September 2021 07:37 To: roest01/docker-speedtest-analyser @.> Cc: monty974 @.>; Author @.> Subject: Re: [roest01/docker-speedtest-analyser] Results no longer displaying (#75) That's weird that there is no content. These are the steps I use: Open Docker -> open the docker container -> goto terminal -> create -> bash windows opens In terminal -> cd /var/www/html/js vi evaluation.js go to line Papa.parse("data/result.csv", { There you will find the line let dataArr = row.data; See if this works This continues to work for me. Note the let dataArr = row.data; is the correction. The original line looks like this: let dataArr = row.data[0]; It is line 93 of the original file: https://github.com/roest01/docker-speedtest-analyser/blob/master/js/evaluation.js#L93 To get into the shell of the running docker container execute the command docker exec -it sh. From there the cd / and vi commands will work. I'm honestly not super super dumb, with linux, I promise but I had real issues with this. I think VI is not fun to work with, however I did manage to edit the ghastly thing and it still didn't work for me. I wonder if someone can just spin off a fork of it, that's fixed? (is it that simple? I don't actually 'get' forks yet) This worked for me: remove the [0] from the row.data[0] — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#75 (comment)> , or unsubscribe https://github.com/notifications/unsubscribe-auth/AP2UAUANRCP377FZLJ7UAJLUEIYQFANCNFSM43LODG7Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . https://github.com/notifications/beacon/AP2UAUBH3KOUU4ANDFM2SPDUEIYQFA5CNFSM43LODG72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOG5UT2UI.gif

I followed this and it resolved the issue for me. I had to remember to use Private Window in order to see the change since Safari was caching the original result.

Thanks!!

@marchos77 Several people have done this, via multiple methods and it hasn't worke.d

I've edited it within the container, I've used SMB to put the file outside the container and edit it via nano or even Windows.
I've restarted the container with editing - none of this works, it simply is broken.

Someone please just needs to write a fork. It's still the best looking speedtest.

I've edited the file again, the package is literally not writing out to /var/www/html/data, where it's supposed to store the csv (??) file which contains the tests.

Do I need to stop and start the container or something?

Make sure your mapped data folder (and the files you put in it, such as config, etc), has chown rights for 100:101 which is the nginx user in the container. Once I did that, the file result.csv was written.

As far as the invalid date, I got it fixed as suggested (by removing the [0] from row.data in file evaluation.js (approx. line 93).

For ease, I copied evaluation.js to my mapped data folder and manually mapped it in my docker-compose.yml with:

      # map to fixed evaluation.js script.
      - ~/docker-persist/speetest-analyser/data/evaluation.js:/var/www/html/js/evaluation.js

Where ~/docker-persist is the folder for storing data for my containers.

My data folder listing looks like this:

49807668  4 drwxrwsr-x 2 systemd-network systemd-journal 4096 Dec 31 13:14 .
49807576  4 drwxrwsr-x 3 ops             ops             4096 Dec 31 12:45 ..
49807672  4 -rw-r--r-- 1 systemd-network systemd-journal 1148 Dec 31 12:57 appConfig.js
49807669 12 -rw-r--r-- 1 systemd-network systemd-journal 9489 Dec 31 13:02 evaluation.js
49807604  4 -rw-r--r-- 1 systemd-network systemd-journal  142 Dec 31 13:16 result.csv

Where systemd-network on my docker host is 100, and systemd-journal is 101.

image

The only thing that remains yet to be seen is if the crontab will actually run on the hour. From what I can tell, it might not. I got these results by running manually.

Update:

The cronjob does does not work when invoked by the crontab. I get this:

speed_1  | Traceback (most recent call last):
speed_1  |   File "/var/www/html/scripts/speedtestRunner.py", line 62, in <module>
speed_1  |     runSpeedtest()
speed_1  |   File "/var/www/html/scripts/speedtestRunner.py", line 27, in runSpeedtest
speed_1  |     s.get_best_server()
speed_1  |   File "/usr/lib/python2.7/site-packages/speedtest.py", line 1495, in get_best_server
speed_1  |     raise SpeedtestBestServerFailure('Unable to connect to servers to '
speed_1  | speedtest.SpeedtestBestServerFailure: Unable to connect to servers to test latency.

I am suspecting that the user context is wrong (it is running under root when it probably should run under nginx. Will report back after I do some testing.

Last update:

The cron does work, but intermittently. At least I have data points through the day, that should be enough for me.

You could just switch to tracker or plotter, sadly this one is abandoned.

Also this one.
https://github.com/ansemjo/speedtest-plotter

Analyser isn't worth the effort in fixing it.