fritz_exporter
fritz_exporter copied to clipboard
No cable data for FritzBox 6660 Cable
Hi,
I'm trying to use this exporter to send my FritzBox 6660 Cable Data to Prometheus. But unfortunately it looks like no Docsis related data is being transferred. Although I did not find a suitable Grafana dashboard for cable monitoring, I can't see any of the metrics in Prometheus UI.
I used the data donation tool, the ID is the following: a37fbd2a-18fe-453f-9ce2-4bdc03754685
Maybe I'm doing something wrong?
My "Testbase" is "DSL only", as I don't have cable internet... So if there are DOCSIS related information on a cable box, I can't see them - that's where the "data donation" feature comes in. - Thanks for your contribution!
I have taken a first look at the data and while there doesn't seem to be much in the way of "detailed internal data" about the cable link (like e.g. attenuation for DSL etc.). There is at least some information in there, but it is superficial (Link State, Connected, Data Transferred etc.).
It simply seems like DSL has a lot more data available to the OS of the box. Maybe the DOCSIS chips are a lot more "black box" or a lot of the data does not make sense in the DOCSIS context.
I will have a look at the data in your donation and will incorpoorate anything which currently is not there into the exporter.
Just in the spirit of full transparency: the data donation leaked your external IP address to me due to an unsanitized field in the output. Not a dangerous thing, but unintentional.
I have since fixed the donation feature in #135 which will be included in the next release.
Thanks for your response! In the UI of FritzBox, I can see a lot more information that are displayed about the DOCSIS channels. As far as I can see, those are all fetched from the data.lua endpoint. Maybe they are exposed differently than the DSL data?
Currently the exporter is exclusively using the TR-064 API of the devices (using the fritzconnection library). So whatever is not there will currently not show up in the exporter.
I have been considering extending the exporter to collect some more data, which is unavailable from TR-064 but haven't done so so far due to the exporter being ver< tightly coupled to the TR-064 API.
I will check, if I can easily extract more infos from TR-064, which may have been missing so far. Detailed DOCSIS stats and similar information will likely not be in there, but it's a start.
Going for the extended information may require a serious rewrite/refactoring of the code, which not happen quickly, unfortunately.
I have been tinkering around with the code of the exporter and while this is not even close to being finished, I have also been digging in the (undocumented) HTTP API.
As I do not have a box, which has cable I cannot actually check, what data can be fetched for DOCSIS, but on the DSL side it seems, that I can get all the info, which is visible in the UI.
I have uploaded a small and simple Docker Image at pdreker/fritz_requests on Docker Hub. This image connects to a Fritz Device and requests data from the data.lua
"endpoint". Usage is quite simple:
docker run pdreker/fritz_requests:0.0.1 <FRITZ_URL> <USERNAME> <PASSWORD> <PAGE_ID>
Normally FRITZ_URL
would be http://fritz.box
USERNAME
and PASSWORD
are self-explanatory. PAGE_ID
is the data, which should be returned.
For DOCSIS/Cable information the following page_ids seem to be relevant:
- docSpectrum
- docOv
- docInfo
- docStat
- docOpt
- docLog
The last two may be just logs and Config options.
Could you check those pages against your box. I would be interested in if they actually work and if they work I'm interested in the data returned (JSON) to see, what I can do with the data.
If sharing the JSON data, please make sure not to disclose private information. ;)
Hi @pdreker, wondering if you got back any feedback from @larsf96 otherwise i can provide you the data requested from a cable box Model 6591 (FW 7.50) output should be similar like 6660. Just let me know and i can share.. The most interesting one for cable users is the docInfo as it contains all the data you need in order to check the connection quality like MSE, Powerlevel, Modulation, etc. As i run into outages very often i have implemented a Shellscript from CT "Kabelfritz-Monitor" and tweaked it a bit and run it via cron in order to write into influxdb via Rest. However as i am running your exporter by default to capture wan stats it would be great if you can maybe add the docinfo into your fritz_exporter.. Also i am happy to do beta testing.. Regards Marco
Hi @pdreker
Sorry for the late response, didn't check this issue for a long time.
Here is the information that I extracted from my box (6660 - Version [7.39-104218 BETA])
docSpectrum.txt docOpt.txt docOv.txt docStat.txt docInfo.txt
Let me know if you need anything else
Thanks @larsf96!
@haferm If you would be willing to provide another dump of at least docInfo that would be neat. Having more than one set of data makes it more reliable to extract data.
regards, Patrick
sure @pdreker
see attached "docInfo.txt" from a FB6591 running latest FW 7.50. For Ref of this data see "FRITZ!Box 6591 Cable.pdf" which is an export from the AVM GUI. Important Data from stressed Cable users you can take from "Ref_from_bashscript.txt" everthing else i would say you can ignore. I have alos created a dashboard "Overview" and "Detailed" see "Grafana_Example.pdf" i can share.
If needed i can provide you another docinfo from an original Providerbox Vodafone (kdg) Modem FB6591 running FW 7.29
Happy to help.
Regards Marco
docInfo.txt FRITZ!Box 6591 Cable.pdf Grafana_Example.pdf Ref_from_bashscript.txt
Hi Patrick,
could help with beta testing. I am using an 6591 cable fritz box at home.
Cheers
Gerd
Hey i can als help :)
Hi, I am also interested in cable data. I have a Fritzbox 6591 Cable too. Do you need additional data for it?
Is this project still active?
Yes, it is still active in as far I can sink time into it.
Just to reiterate on the Cable Data issue: this whole piece of software is completely designed around the TR-064 interface of the Fritz Box, or more precisely: the features provided by the fritzconnection library. As to my current knowledge the Fritz Box itself does not provide extensive information about the Cable Link via that interface (or to be more specific: almost none), and consequentially this exporter does not expose that information.
It would require a major extension of the code to actually use an undocumented (as in: not stable/documented) API to extract that information and risk breaking the exporter with new FritzOS versions.
That said: I would really like to have that feature, as it has been requested several times already (see this issue...), but I do not have the neccessary cable internet to actually reverse engineer a useful API approach and I am a hesitant to use an unofficial API, because I do not want to get into that maintenance hell, where I need to follow each and every FritzOS version, to keep the exporter working.
If someone has the capabilities to extract that information from a Fritz Device in a "somewhat stable manner" and is willing to write some code for this, I am more than willing to accept a PR and help in getting this to integrate nicely with the rest of the code, but I myself do not have the time and resources to embark on this major undertaking.
Sorry, I do not have a better answer to this.
regards, Patrick
That's a very good and understandable answer. Thank you.
Since everything seems to be Python code and I am a Python developer myself, I might be able to help here. I never looked into your code until now but I hope I can find a bit of time to dig into it and maybe try something out.
Can I mention you again when I need help from you understanding stuff?