GithubHelp home page GithubHelp logo

sberk42 / fritzbox_exporter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 123haynes/fritzbox_exporter

115.0 115.0 40.0 330 KB

Fritz!Box Upnp statistics exporter for prometheus

License: Apache License 2.0

Go 98.07% Dockerfile 1.93%

fritzbox_exporter's People

Contributors

123haynes avatar aaschmid avatar asottile-vdf avatar bachp avatar chr-fritz avatar dependabot[bot] avatar dotwee avatar juergenhoetzel avatar lapo-luchini avatar ndecker avatar nistee avatar paulbruedgam avatar sberk42 avatar transacid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fritzbox_exporter's Issues

[Help] Adding more metrics to metrics.json

I might need help adding more metrics to the exporter.
Especially i want to collect the errors that are dsl related like crc, fixed and unfixed dtu's ...
I found the metrics i need for example:

{ "service": "urn:dslforum-org:service:WANDSLInterfaceConfig:1", "action": "GetStatisticsTotal", "result": "Stats.Total.CRCErrors" },

and i tried adding this to the metrics.json with the following:

{ "service": "urn:dslforum-org:service:WANDSLInterfaceConfig:1", "action": "GetStatisticsTotal", "result": "Stats.Total.CRCErrors", "promDesc": { "fqName": "gateway_errors_crc", "varLabels": [ "gateway" ] } },

Then i created the image again with
docker build --no-cache --tag fritzbox-prometheus-exporter:latest .
and then ran it.
The container runs again, but i can't see the added metrics
What am i missing or what could i do different?

panic: XML syntax error when starting

I've just tried "upgrading" from ndecker/fritzbox_exporter to this fork. Thanks for the work!

Unfortunately, running the binary produces an error for me:

$ ./fritzbox_exporter -gateway-url=http://192.168.0.1 -username=fritzuser -password=fritzpass -test=true
panic: XML syntax error on line 4: unquoted or missing attribute value in element
goroutine 1 [running]:
main.test()
        /home/myuser/go/pkg/mod/github.com/sberk42/[email protected]/main.go:544 +0xc16
main.main()
        /home/myuser/go/pkg/mod/github.com/sberk42/[email protected]/main.go:680 +0x4c6

I've installed fritzbox exporter via go install github.com/sberk42/fritzbox_exporter@latest, which seemd to run fine.
Any help highly appreciated, not sure if I'm doing something stupid maybe? From a quick glance at the code it seems like something with the UPNP connection goes wrong, as the panic points at a failed upnp.LoadServices call.

The same error also appears to happen when called without the test parameter.

What am I doing wrong here? What XML is the program talking about here?

Error during start

Hey,

I receive the following when I try the docker

i ran it with:

docker run -e 'USERNAME=myUsername'
-e 'PASSWORD=myPassword'
-e 'GATEWAY_URL="http://192.168.178.1:49000"'
-e 'LISTEN_ADDRESS="0.0.0.0:9042"'
fritzbox-prometheus-exporter:latest

an get:

time="2022-03-05T16:25:05Z" level=error msg="invalid URL:%!(EXTRA *url.Error=parse "\"http://192.168.178.1:49000\\\"\": first path segment in URL cannot contain colon)"

Error 713

From time to time I see on the logs this error:

level=error msg="Can not get result for %s: %sGetGenericHostEntryGetGenericHostEntry: SAOPFault: UPnPError 713 (SpecifiedArrayIndexInvalid)

I would like to know if this can be related to the fact that on the Grafana Dashboard I can see part of the graphs without informations as in the image attached.

Do you have any idea to solve this issue?

image

DSL Link Status Dashboard

Hey, i set up your exporter but in the Grafana Dashboard the DSL Link Status looks kinda bugged.

image
Can you help me with that?

Greeting

panic: descriptor Desc{fqName: "", help: "", constLabels: {}, variableLabels: []} is invalid: "" is not a valid metric name

Hi,

I'm building the docker-image using the (current) commit 6b8ced0 and am collecting metrics from my FRITZ!Box 7590 v. 7.29

Everything works fine with the "default" metrics.json: the container runs smoothly, prometheus is collecting metrics and the grafana dashboard provides a nice overview!

When I switch (i.e. copy over) from the "default" metrics.json: file to any of the all_available_metrics_7590*.json: files I get the following error:

panic: descriptor Desc{fqName: "", help: "", constLabels: {}, variableLabels: []} is invalid: "" is not a valid metric name                                                                                                       [62/1624]
                                                                                                                                                                                                                                           
goroutine 1 [running]:                                                                                                                                                                                                                     
github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0xc000028013?, {0xc0002b6d60?, 0x1, 0x0?})                                                                                                                         
        /go/pkg/mod/github.com/prometheus/[email protected]/prometheus/registry.go:403 +0x7f                                                                                                                                           
github.com/prometheus/client_golang/prometheus.MustRegister(...)                                                                                                                                                                           
        /go/pkg/mod/github.com/prometheus/[email protected]/prometheus/registry.go:178                                                                                                                                                 
main.main()                                                                                                                                                                                                                                
        /go/pkg/mod/github.com/sberk42/[email protected]/main.go:842 +0x130c 

The "default" metrics.json: file appears to be mostly fine but is missing some fields which are used in the grafana dashboard (e.g. gateway_device_modelname:, gateway_uptime_seconds:).

Is there some misunderstanding on my side (how metrics.json: should be handled / overwritten) or anything else going on?

[FEATURE] Signal Strength for wifi devices

Hi, amazing work!

Is it posible to add wireless signal strength on the wireless objects?

Data is published on every wireless connected device:

image

So it would be really nice to graph it so we can find zones with bad signal

FROM:
gateway_host_active{gateway="172.18.124.1",hostname="biglamp",interfacetype="802.11",ipaddress="172.18.124.25",macaddress="xx:xx:xx:xx:xx:xx"} 1

TO:
gateway_host_active{gateway="172.18.124.1",hostname="biglamp",interfacetype="802.11",signalstrength="-51",ipaddress="172.18.124.25",macaddress="xx:xx:xx:xx:xx:xx"} 1

URL parse error with docker

I built the docker image and then tried to run the container with
docker run --dns 192.168.178.1 \ -e 'USERNAME=prometheus' \ -e 'PASSWORD=hidden' \ -e 'GATEWAY_URL="http://192.168.178.1:49000"' \ -e 'LISTEN_ADDRESS="0.0.0.0:9042"' \ fritzbox-prometheus-exporter:latest
But i got a URL error:
time="2022-02-21T10:49:42Z" level=error msg="invalid URL:%!(EXTRA *url.Error=parse \"\\\"192.168.178.1:49000\\\"\": first path segment in URL cannot contain colon)"
Any info on how to fix that?

EDIT: I tried with docker-compose, that seems to work

Devices which are connected on Mesh Repeater get not counted

When you have the following Configuration on your WiFi:
2023-04-04-16-25-fritz box

Only the directly Connected WiFi Devices will be "exported".

In my Case only
9 for 5.0Ghz
and
2 for 2.4Ghz

But my WiFi Network is much larger because of the Mesh Repeater which are handling most of the Network.

Metrics which get Exportet:

# HELP fritzbox_exporter_collectErrors Number of collection errors.
# TYPE fritzbox_exporter_collectErrors counter
fritzbox_exporter_collectErrors 6341
# HELP fritzbox_exporter_luaCollectErrors Number of lua collection errors.
# TYPE fritzbox_exporter_luaCollectErrors counter
fritzbox_exporter_luaCollectErrors 9423
# HELP fritzbox_exporter_results_cached Number of results taken from cache.
# TYPE fritzbox_exporter_results_cached counter
fritzbox_exporter_results_cached{Cache="LUA"} 259818
fritzbox_exporter_results_cached{Cache="UPNP"} 525168
# HELP fritzbox_exporter_results_loaded Number of results loaded from fritzbox.
# TYPE fritzbox_exporter_results_loaded counter
fritzbox_exporter_results_loaded{Cache="LUA"} 13889
fritzbox_exporter_results_loaded{Cache="UPNP"} 2.172327e+06
# HELP gateway_connection_max_bitrate connection max bitrate
# TYPE gateway_connection_max_bitrate gauge
gateway_connection_max_bitrate{connection="PPP",direction="Down",gateway="fritz.box",interface="WAN"} 4.9643334e+07
gateway_connection_max_bitrate{connection="PPP",direction="Up",gateway="fritz.box",interface="WAN"} 4.0569962e+07
# HELP gateway_connection_status Connection status (Connected = 1)
# TYPE gateway_connection_status gauge
gateway_connection_status{connection="IP",gateway="fritz.box",interface="WAN"} 1
gateway_connection_status{connection="Physical Link",gateway="fritz.box",interface="DSL"} 1
gateway_connection_status{connection="Physical Link",gateway="fritz.box",interface="WAN"} 1
# HELP gateway_connection_uptime_seconds Connection uptime
# TYPE gateway_connection_uptime_seconds gauge
gateway_connection_uptime_seconds{connection="IP",gateway="fritz.box",interface="WAN"} 12603
gateway_connection_uptime_seconds{connection="PPP",gateway="fritz.box",interface="WAN"} 12603
# HELP gateway_data_ecostat_cputemp cpu temperature from data.lua?page=ecoStat
# TYPE gateway_data_ecostat_cputemp gauge
gateway_data_ecostat_cputemp{gateway="fritz.box"} 55
# HELP gateway_data_ecostat_cpuutil percentage of cpu utilization from data.lua?page=ecoStat
# TYPE gateway_data_ecostat_cpuutil gauge
gateway_data_ecostat_cpuutil{gateway="fritz.box"} 64
# HELP gateway_data_ecostat_ramusage percentage of RAM utilization from data.lua?page=energy
# TYPE gateway_data_ecostat_ramusage gauge
gateway_data_ecostat_ramusage{gateway="fritz.box",ram_type="Dynamic"} 49.1
gateway_data_ecostat_ramusage{gateway="fritz.box",ram_type="Fixed"} 32.4
gateway_data_ecostat_ramusage{gateway="fritz.box",ram_type="Free"} 18.5
# HELP gateway_data_energy_consumption percentage of energy consumed from data.lua?page=energy
# TYPE gateway_data_energy_consumption gauge
gateway_data_energy_consumption{gateway="fritz.box",name="CPU"} 81
gateway_data_energy_consumption{gateway="fritz.box",name="DSL"} 100
gateway_data_energy_consumption{gateway="fritz.box",name="Phone"} 0
gateway_data_energy_consumption{gateway="fritz.box",name="System"} 54
gateway_data_energy_consumption{gateway="fritz.box",name="USB"} 0
gateway_data_energy_consumption{gateway="fritz.box",name="WLAN"} 100
# HELP gateway_data_energy_lan_status status of LAN connection from data.lua?page=energy (1 = up)
# TYPE gateway_data_energy_lan_status gauge
gateway_data_energy_lan_status{gateway="fritz.box",name="LAN 1"} 1
gateway_data_energy_lan_status{gateway="fritz.box",name="LAN 2"} 1
gateway_data_energy_lan_status{gateway="fritz.box",name="LAN 3"} 0
gateway_data_energy_lan_status{gateway="fritz.box",name="LAN 4"} 0
# HELP gateway_data_usb_storage_total total storage in bytes from data.lua?page=usbOv
# TYPE gateway_data_usb_storage_total gauge
gateway_data_usb_storage_total{devicename="Internal eStorage",devicetype="INTERNAL_STORAGE",gateway="fritz.box"} 4.25721856e+08
# HELP gateway_data_usb_storage_used used storage in bytes from data.lua?page=usbOv
# TYPE gateway_data_usb_storage_used gauge
gateway_data_usb_storage_used{devicename="Internal eStorage",devicetype="INTERNAL_STORAGE",gateway="fritz.box"} 3.018752e+06
# HELP gateway_dect_active is dect device currently active
# TYPE gateway_dect_active gauge
gateway_dect_active{gateway="fritz.box",id="1",model="FRITZ!Fon C5",name=" "} 0
# HELP gateway_device_modelname gateway device model name
# TYPE gateway_device_modelname gauge
gateway_device_modelname{description="FRITZ!Box 7490 113.07.29",gateway="fritz.box",hardwareversion="FRITZ!Box 7490",modelname="FRITZ!Box 7490",productclass="FRITZ!Box",softwareversion="113.07.29"} 0
# HELP gateway_host_active is host currently active
# TYPE gateway_host_active gauge
gateway_host_active{gateway="fritz.box",hostname="amazon-dfb7475e1",interfacetype="802.11",ipaddress="192.168.178.49",macaddress="90:23:5b:3d:c2:8b"} 1
gateway_host_active{gateway="fritz.box",hostname="android-8f3324f3210d9174",interfacetype="",ipaddress="192.168.178.48",macaddress="e4:04:39:d9:35:a8"} 0
gateway_host_active{gateway="fritz.box",hostname="annabells-air",interfacetype="",ipaddress="192.168.178.28",macaddress="9c:f3:87:ac:5e:30"} 0
gateway_host_active{gateway="fritz.box",hostname="arlo-babycam",interfacetype="802.11",ipaddress="192.168.178.44",macaddress="08:02:8e:2c:25:e4"} 1
gateway_host_active{gateway="fritz.box",hostname="bellas-iphone",interfacetype="",ipaddress="192.168.178.23",macaddress="be:e3:02:e0:03:e4"} 0
gateway_host_active{gateway="fritz.box",hostname="bellas-iphone",interfacetype="",ipaddress="192.168.178.42",macaddress="dc:9b:9c:c1:3e:13"} 0
gateway_host_active{gateway="fritz.box",hostname="buro-eg",interfacetype="802.11",ipaddress="192.168.178.29",macaddress="58:d3:49:00:cc:d7"} 1
gateway_host_active{gateway="fritz.box",hostname="camera-hub-g3-cfb0",interfacetype="802.11",ipaddress="192.168.178.93",macaddress="54:ef:44:38:cf:b0"} 1
gateway_host_active{gateway="fritz.box",hostname="docker-pi-2",interfacetype="802.11",ipaddress="192.168.178.32",macaddress="e4:5f:01:85:96:e5"} 1
gateway_host_active{gateway="fritz.box",hostname="epson53423a",interfacetype="",ipaddress="192.168.178.35",macaddress="e0:bb:9e:53:42:3a"} 0
gateway_host_active{gateway="fritz.box",hostname="esp-70c003",interfacetype="802.11",ipaddress="192.168.178.51",macaddress="84:0d:8e:70:c0:03"} 1
gateway_host_active{gateway="fritz.box",hostname="esplesekopf-251aa4-6820",interfacetype="802.11",ipaddress="192.168.178.76",macaddress="8c:ce:4e:25:1a:a4"} 1
gateway_host_active{gateway="fritz.box",hostname="espresense-buero-eg",interfacetype="",ipaddress="192.168.178.43",macaddress="08:b6:1f:38:1a:b8"} 0
gateway_host_active{gateway="fritz.box",hostname="fb-buero",interfacetype="802.11",ipaddress="192.168.178.54",macaddress="c2:39:6f:9d:75:fe"} 1
gateway_host_active{gateway="fritz.box",hostname="fb-flur",interfacetype="802.11",ipaddress="192.168.178.46",macaddress="dc:39:6f:82:ce:0d"} 1
gateway_host_active{gateway="fritz.box",hostname="fb-kinderzimmer",interfacetype="802.11",ipaddress="192.168.178.61",macaddress="42:49:79:e9:71:f0"} 1
gateway_host_active{gateway="fritz.box",hostname="fb-kueche",interfacetype="802.11",ipaddress="192.168.178.65",macaddress="12:72:74:a0:8d:9a"} 1
gateway_host_active{gateway="fritz.box",hostname="filebrowser",interfacetype="",ipaddress="192.168.178.4",macaddress="02:42:c0:a8:b2:04"} 0
gateway_host_active{gateway="fritz.box",hostname="fritz.box",interfacetype="",ipaddress="192.168.178.1",macaddress="38:10:d5:a4:1b:08"} 1
gateway_host_active{gateway="fritz.box",hostname="garagentor",interfacetype="802.11",ipaddress="192.168.178.80",macaddress="c4:5b:be:5f:d8:b0"} 1
gateway_host_active{gateway="fritz.box",hostname="homeassistant",interfacetype="Ethernet",ipaddress="192.168.178.53",macaddress="52:54:00:57:8d:47"} 1
gateway_host_active{gateway="fritz.box",hostname="hs100",interfacetype="802.11",ipaddress="192.168.178.58",macaddress="d8:47:32:a3:e1:2e"} 1
gateway_host_active{gateway="fritz.box",hostname="ipad-von-klaus-2",interfacetype="",ipaddress="192.168.178.47",macaddress="ee:84:f1:2f:eb:98"} 0
gateway_host_active{gateway="fritz.box",hostname="ipad-von-stefan",interfacetype="802.11",ipaddress="192.168.178.59",macaddress="ae:3e:63:d7:75:26"} 1
gateway_host_active{gateway="fritz.box",hostname="iphone-x",interfacetype="802.11",ipaddress="192.168.178.34",macaddress="02:63:38:b9:7e:7b"} 1
gateway_host_active{gateway="fritz.box",hostname="iphone11promax",interfacetype="802.11",ipaddress="192.168.178.111",macaddress="d0:3f:aa:b2:50:06"} 1
gateway_host_active{gateway="fritz.box",hostname="jarvis",interfacetype="Ethernet",ipaddress="192.168.178.30",macaddress="00:11:32:61:c8:1f"} 1
gateway_host_active{gateway="fritz.box",hostname="kp115",interfacetype="802.11",ipaddress="192.168.178.75",macaddress="b0:a7:b9:c5:28:b5"} 1
gateway_host_active{gateway="fritz.box",hostname="linux",interfacetype="802.11",ipaddress="192.168.178.57",macaddress="f0:81:73:7a:59:2c"} 1
gateway_host_active{gateway="fritz.box",hostname="macbookonstefan",interfacetype="",ipaddress="192.168.178.50",macaddress="00:23:6c:8a:2a:96"} 0
gateway_host_active{gateway="fritz.box",hostname="nb-ts-r0-939",interfacetype="",ipaddress="192.168.178.25",macaddress="a4:34:d9:cd:39:b7"} 0
gateway_host_active{gateway="fritz.box",hostname="nb-ts-r0-939",interfacetype="Ethernet",ipaddress="192.168.178.37",macaddress="84:7b:eb:0c:50:50"} 1
gateway_host_active{gateway="fritz.box",hostname="nginxproxymanager",interfacetype="Ethernet",ipaddress="192.168.178.5",macaddress="02:42:c0:a8:b2:05"} 1
gateway_host_active{gateway="fritz.box",hostname="none-5",interfacetype="802.11",ipaddress="192.168.178.78",macaddress="7c:d5:66:8c:56:2e"} 1
gateway_host_active{gateway="fritz.box",hostname="p110",interfacetype="802.11",ipaddress="192.168.178.33",macaddress="14:eb:b6:c1:45:ba"} 1
gateway_host_active{gateway="fritz.box",hostname="p110",interfacetype="802.11",ipaddress="192.168.178.36",macaddress="14:eb:b6:c1:45:51"} 1
gateway_host_active{gateway="fritz.box",hostname="p110",interfacetype="802.11",ipaddress="192.168.178.39",macaddress="34:60:f9:56:97:11"} 1
gateway_host_active{gateway="fritz.box",hostname="pc-192-168-178-20",interfacetype="802.11",ipaddress="192.168.178.20",macaddress="32:e1:39:07:90:25"} 1
gateway_host_active{gateway="fritz.box",hostname="pc-192-168-178-41",interfacetype="802.11",ipaddress="192.168.178.41",macaddress="00:25:29:24:f5:1b"} 1
gateway_host_active{gateway="fritz.box",hostname="pc-192-168-178-45",interfacetype="",ipaddress="192.168.178.45",macaddress="86:e1:bd:29:04:19"} 0
gateway_host_active{gateway="fritz.box",hostname="pc-192-168-178-64",interfacetype="802.11",ipaddress="192.168.178.64",macaddress="d4:ad:fc:25:18:03"} 1
gateway_host_active{gateway="fritz.box",hostname="pc-192-168-178-84",interfacetype="802.11",ipaddress="192.168.178.84",macaddress="84:2e:14:ee:34:b6"} 1
gateway_host_active{gateway="fritz.box",hostname="pi-hole",interfacetype="Ethernet",ipaddress="192.168.178.3",macaddress="02:42:c0:a8:b2:03"} 1
gateway_host_active{gateway="fritz.box",hostname="rk3308-robot32",interfacetype="802.11",ipaddress="192.168.178.79",macaddress="f0:c8:14:37:62:0a"} 1
gateway_host_active{gateway="fritz.box",hostname="samsung-the-frame",interfacetype="802.11",ipaddress="192.168.178.22",macaddress="7c:0a:3f:72:be:70"} 1
gateway_host_active{gateway="fritz.box",hostname="shelly1-e8db84acb65d",interfacetype="802.11",ipaddress="192.168.178.69",macaddress="e8:db:84:ac:b6:5d"} 1
gateway_host_active{gateway="fritz.box",hostname="shellyht-762587",interfacetype="",ipaddress="192.168.178.21",macaddress="c4:5b:be:76:25:87"} 0
gateway_host_active{gateway="fritz.box",hostname="smuehlendick",interfacetype="",ipaddress="192.168.178.204",macaddress=""} 0
gateway_host_active{gateway="fritz.box",hostname="toniebox",interfacetype="802.11",ipaddress="192.168.178.27",macaddress="68:47:49:28:0a:5b"} 0
gateway_host_active{gateway="fritz.box",hostname="tower",interfacetype="Ethernet",ipaddress="192.168.178.2",macaddress="00:d8:61:a6:dd:3f"} 1
gateway_host_active{gateway="fritz.box",hostname="tower",interfacetype="Ethernet",ipaddress="192.168.178.2",macaddress="22:b8:ea:ac:32:e6"} 1
gateway_host_active{gateway="fritz.box",hostname="tower",interfacetype="Ethernet",ipaddress="192.168.178.2",macaddress="6a:4d:40:e4:4c:f6"} 0
gateway_host_active{gateway="fritz.box",hostname="unraid",interfacetype="",ipaddress="192.168.178.2",macaddress="1c:83:41:29:25:69"} 0
gateway_host_active{gateway="fritz.box",hostname="valhalla",interfacetype="Ethernet",ipaddress="192.168.178.31",macaddress="a8:a1:59:1a:1d:3b"} 0
gateway_host_active{gateway="fritz.box",hostname="vmb3010",interfacetype="Ethernet",ipaddress="192.168.178.68",macaddress="9c:3d:cf:3d:bf:27"} 1
gateway_host_active{gateway="fritz.box",hostname="watermeter",interfacetype="",ipaddress="192.168.178.24",macaddress="30:c6:f7:22:1d:b4"} 0
gateway_host_active{gateway="fritz.box",hostname="watermeter-reed",interfacetype="",ipaddress="192.168.178.26",macaddress="08:b6:1f:35:05:f0"} 0
gateway_host_active{gateway="fritz.box",hostname="wonderwall-smart-bueroeg",interfacetype="802.11",ipaddress="192.168.178.88",macaddress="d8:1f:12:fb:dc:4d"} 1
# HELP gateway_max_bitrate max bitrate on gateway interface
# TYPE gateway_max_bitrate gauge
gateway_max_bitrate{direction="Down",gateway="fritz.box",interface="DSL"} 1.43949e+08
gateway_max_bitrate{direction="Down",gateway="fritz.box",interface="WAN"} 1.1411e+08
gateway_max_bitrate{direction="Up",gateway="fritz.box",interface="DSL"} 4.4796e+07
gateway_max_bitrate{direction="Up",gateway="fritz.box",interface="WAN"} 4.1486e+07
# HELP gateway_traffic traffic on gateway interface
# TYPE gateway_traffic counter
gateway_traffic{direction="Received",gateway="fritz.box",interface="DSL",unit="Packets"} 117803
gateway_traffic{direction="Received",gateway="fritz.box",interface="LAN",unit="Bytes"} 2.542578392e+09
gateway_traffic{direction="Received",gateway="fritz.box",interface="WAN",unit="Bytes"} 2.540815994e+09
gateway_traffic{direction="Received",gateway="fritz.box",interface="WAN",unit="Packets"} 117803
gateway_traffic{direction="Sent",gateway="fritz.box",interface="DSL",unit="Packets"} 328163
gateway_traffic{direction="Sent",gateway="fritz.box",interface="LAN",unit="Bytes"} 2.932797116e+09
gateway_traffic{direction="Sent",gateway="fritz.box",interface="WAN",unit="Bytes"} 7.13684903e+08
gateway_traffic{direction="Sent",gateway="fritz.box",interface="WAN",unit="Packets"} 328074
# HELP gateway_traffic_rate traffic rate on gateway interface
# TYPE gateway_traffic_rate gauge
gateway_traffic_rate{direction="Received",gateway="fritz.box",interface="WAN",unit="Bytes"} 3440
gateway_traffic_rate{direction="Sent",gateway="fritz.box",interface="WAN",unit="Bytes"} 2585
# HELP gateway_uptime_seconds gateway uptime
# TYPE gateway_uptime_seconds gauge
gateway_uptime_seconds{description="FRITZ!Box 7490 113.07.29",gateway="fritz.box"} 445992
# HELP gateway_wan_connection_status WAN Connection status (Connected = 1)
# TYPE gateway_wan_connection_status gauge
gateway_wan_connection_status{connection="PPP",connectiontype="IP_Routed",externalipaddress="79.233.135.93",gateway="fritz.box",interface="WAN",macaddress="38:10:d5:a4:1b:0c"} 1
# HELP gateway_wlan_current_connections current WLAN connections
# TYPE gateway_wlan_current_connections gauge
gateway_wlan_current_connections{gateway="fritz.box",wlan="2.4 GHz"} 9
gateway_wlan_current_connections{gateway="fritz.box",wlan="5 Ghz"} 2
# HELP gateway_wlan_status WLAN status (Enabled = 1)
# TYPE gateway_wlan_status gauge
gateway_wlan_status{gateway="fritz.box",wlan="2.4 Ghz"} 1
gateway_wlan_status{gateway="fritz.box",wlan="5 Ghz"} 1
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 3.125e-05
go_gc_duration_seconds{quantile="0.25"} 4.238e-05
go_gc_duration_seconds{quantile="0.5"} 4.784e-05
go_gc_duration_seconds{quantile="0.75"} 7.6931e-05
go_gc_duration_seconds{quantile="1"} 0.00017346
go_gc_duration_seconds_sum 0.453172652
go_gc_duration_seconds_count 7607
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 12
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.16.3"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 8.083848e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 2.901196468e+10
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.677464e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 2.32893148e+08
# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
# TYPE go_memstats_gc_cpu_fraction gauge
go_memstats_gc_cpu_fraction 4.176786513288098e-06
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 5.749184e+06
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 8.083848e+06
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 5.431296e+07
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 1.1583488e+07
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 44014
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes gauge
go_memstats_heap_released_bytes 5.3026816e+07
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 6.5896448e+07
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 1.6806195308395948e+09
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 0
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 2.32937162e+08
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 19200
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 32768
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 309808
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 704512
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 9.043472e+06
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 3.649968e+06
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 1.212416e+06
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 1.212416e+06
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 7.892276e+07
# HELP go_threads Number of OS threads created.
# TYPE go_threads gauge
go_threads 21
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 377.1
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 40960
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 12
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 4.0562688e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.68016248053e+09
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 2.052722688e+09
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes 1.8446744073709552e+19
# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 30429
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0

On a 7530 v7.50 it goes 401 a lot

When running on a Fritz!Box 7530 I get a lot of 401s.

% ./fritzbox_exporter -gateway-luaurl="http://192.168.178.1/" -gateway-url="http://192.168.178.1:49000/" -username=metrics -password=(password) -collect
INFO[0005] services loaded                              
INFO[0005] collecting metrics via http                  
WARN[0005] can not collect metrics: GetTotalPacketsReceived: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetTotalPacketsSent: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetAddonInfos: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetAddonInfos: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetAddonInfos: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetAddonInfos: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetTotalPacketsReceived: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetTotalPacketsSent: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetStatusInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetStatusInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetTotalAssociations: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetTotalAssociations: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] can not collect metrics: GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] Error getting provider action GetHostNumberOfEntries result for urn:dslforum-org:service:Hosts:1.GetGenericHostEntry: GetHostNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] Error getting provider action GetNumberOfDectEntries result for urn:dslforum-org:service:X_AVM-DE_Dect:1.GetGenericDectEntry: GetNumberOfDectEntries: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0009] Response:

# HELP fritzbox_exporter_collectErrors Number of collection errors.
# TYPE fritzbox_exporter_collectErrors counter
fritzbox_exporter_collectErrors 0
# HELP fritzbox_exporter_luaCollectErrors Number of lua collection errors.
# TYPE fritzbox_exporter_luaCollectErrors counter
fritzbox_exporter_luaCollectErrors 0
# HELP gateway_data_ecostat_cputemp cpu temperature from data.lua?page=ecoStat
# TYPE gateway_data_ecostat_cputemp gauge
gateway_data_ecostat_cputemp{gateway="192.168.178.1"} 63
# HELP gateway_data_ecostat_cpuutil percentage of cpu utilization from data.lua?page=ecoStat
# TYPE gateway_data_ecostat_cpuutil gauge
gateway_data_ecostat_cpuutil{gateway="192.168.178.1"} 4
# HELP gateway_data_ecostat_ramusage percentage of RAM utilization from data.lua?page=energy
# TYPE gateway_data_ecostat_ramusage gauge
gateway_data_ecostat_ramusage{gateway="192.168.178.1",ram_type="Dynamic"} 55.9
gateway_data_ecostat_ramusage{gateway="192.168.178.1",ram_type="Fixed"} 27
gateway_data_ecostat_ramusage{gateway="192.168.178.1",ram_type="Free"} 17.1
# HELP gateway_data_energy_consumption percentage of energy consumed from data.lua?page=energy
# TYPE gateway_data_energy_consumption gauge
gateway_data_energy_consumption{gateway="192.168.178.1",name="CPU"} 67
gateway_data_energy_consumption{gateway="192.168.178.1",name="DSL"} 0
gateway_data_energy_consumption{gateway="192.168.178.1",name="Phone"} 0
gateway_data_energy_consumption{gateway="192.168.178.1",name="System"} 35
gateway_data_energy_consumption{gateway="192.168.178.1",name="USB"} 0
gateway_data_energy_consumption{gateway="192.168.178.1",name="Wi-Fi"} 88
# HELP gateway_data_energy_lan_status status of LAN connection from data.lua?page=energy (1 = up)
# TYPE gateway_data_energy_lan_status gauge
gateway_data_energy_lan_status{gateway="192.168.178.1",name="LAN 1"} 1
gateway_data_energy_lan_status{gateway="192.168.178.1",name="LAN 2"} 0
gateway_data_energy_lan_status{gateway="192.168.178.1",name="LAN 3"} 0
gateway_data_energy_lan_status{gateway="192.168.178.1",name="LAN 4"} 0
# HELP gateway_data_usb_storage_total total storage in bytes from data.lua?page=usbOv
# TYPE gateway_data_usb_storage_total gauge
gateway_data_usb_storage_total{devicename="Memoria del FRITZ!Box 7530",devicetype="INTERNAL_STORAGE",gateway="192.168.178.1"} 1.0215424e+07
# HELP gateway_data_usb_storage_used used storage in bytes from data.lua?page=usbOv
# TYPE gateway_data_usb_storage_used gauge
gateway_data_usb_storage_used{devicename="Memoria del FRITZ!Box 7530",devicetype="INTERNAL_STORAGE",gateway="192.168.178.1"} 610304
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 5.795e-05
(go metrics redacted)

And running test:

% ./fritzbox_exporter -gateway-luaurl="http://192.168.178.1/" -gateway-url="http://192.168.178.1:49000/" -username=metrics -password=(password) -test                                                                             
INFO[0004] Service: urn:dslforum-org:service:DeviceConfig:1 (Url: /upnp/control/deviceconfig) 
WARN[0004] FAILED:ConfigurationFinished: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetPersistentData: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_CreateUrlSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetSupportDataEnable: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetSupportDataInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_GenerateUUID: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0004] Service: urn:dslforum-org:service:DeviceInfo:1 (Url: /upnp/control/deviceinfo) 
WARN[0004] FAILED:GetDeviceLog: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetSecurityPort: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0004] Service: urn:dslforum-org:service:Hosts:1 (Url: /upnp/control/hosts) 
WARN[0004] FAILED:GetHostNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetChangeCounter: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetFriendlyName: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetHostListPath: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetMeshListPath: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0004] Service: urn:dslforum-org:service:LANConfigSecurity:1 (Url: /upnp/control/lanconfigsecurity) 
WARN[0004] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetAnonymousLogin: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetCurrentUser: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:X_AVM-DE_GetUserList: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0004] Service: urn:dslforum-org:service:LANEthernetInterfaceConfig:1 (Url: /upnp/control/lanethernetifcfg) 
WARN[0004] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0004] Service: urn:dslforum-org:service:LANHostConfigManagement:1 (Url: /upnp/control/lanhostconfigmgm) 
WARN[0004] FAILED:GetAddressRange: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetDNSServers: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetIPInterfaceNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0004] FAILED:GetIPRoutersList: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSubnetMask: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:Layer3Forwarding:1 (Url: /upnp/control/layer3forwarding) 
WARN[0005] FAILED:GetDefaultConnectionService: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetForwardNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:ManagementServer:1 (Url: /upnp/control/mgmsrv) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetTR069FirmwareDownloadEnabled: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:Time:1 (Url: /upnp/control/time) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:UserInterface:1 (Url: /upnp/control/userif) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_DoPrepareCGI: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_DoUpdate: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetInternationalConfig: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WANCommonInterfaceConfig:1 (Url: /upnp/control/wancommonifconfig1) 
WARN[0005] FAILED:GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalBytesReceived: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalBytesSent: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalPacketsReceived: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalPacketsSent: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetActiveProvider: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WANDSLInterfaceConfig:1 (Url: /upnp/control/wandslifconfig1) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatisticsTotal: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetDSLDiagnoseInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetDSLInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WANDSLLinkConfig:1 (Url: /upnp/control/wandsllinkconfig1) 
WARN[0005] FAILED:GetATMEncapsulation: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetAutoConfig: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetDSLLinkInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetDestinationAddress: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WANEthernetLinkConfig:1 (Url: /upnp/control/wanethlinkconfig1) 
WARN[0005] FAILED:GetEthernetLinkStatus: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WANIPConnection:1 (Url: /upnp/control/wanipconnection1) 
WARN[0005] FAILED:GetConnectionTypeInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetExternalIPAddress: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetNATRSIPStatus: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetPortMappingNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatusInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_GetDNSServers: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WANPPPConnection:1 (Url: /upnp/control/wanpppconn1) 
WARN[0005] FAILED:GetConnectionTypeInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetExternalIPAddress: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetLinkLayerMaxBitRates: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetNATRSIPStatus: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetPortMappingNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatusInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetUserName: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetAutoDisconnectTimeSpan: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_GetDNSServers: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WLANConfiguration:1 (Url: /upnp/control/wlanconfig1) 
WARN[0005] FAILED:GetBSSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBasBeaconSecurityProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBeaconAdvertisement: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBeaconType: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetChannelInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetDefaultWEPKeyIndex: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetPacketStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSecurityKeys: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalAssociations: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetIPTVOptimized: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetNightControl: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANConnectionInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANDeviceListPath: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANExtInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANHybridMode: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWPSInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WLANConfiguration:2 (Url: /upnp/control/wlanconfig2) 
WARN[0005] FAILED:GetBSSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBasBeaconSecurityProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBeaconAdvertisement: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBeaconType: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetChannelInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetDefaultWEPKeyIndex: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetPacketStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSecurityKeys: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalAssociations: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetIPTVOptimized: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetNightControl: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANConnectionInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANDeviceListPath: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANExtInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANHybridMode: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWPSInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:WLANConfiguration:3 (Url: /upnp/control/wlanconfig3) 
WARN[0005] FAILED:GetBSSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBasBeaconSecurityProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBeaconAdvertisement: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetBeaconType: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetChannelInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetDefaultWEPKeyIndex: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetPacketStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSSID: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetSecurityKeys: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetTotalAssociations: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetIPTVOptimized: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetNightControl: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANConnectionInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANDeviceListPath: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANExtInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWLANHybridMode: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:X_AVM-DE_GetWPSInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:X_AVM-DE_AppSetup:1 (Url: /upnp/control/x_appsetup) 
WARN[0005] FAILED:GetAppRemoteInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetConfig: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:X_AVM-DE_Auth:1 (Url: /upnp/control/x_auth) 
WARN[0005] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetState: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:X_AVM-DE_Dect:1 (Url: /upnp/control/x_dect) 
WARN[0005] FAILED:GetDectListPath: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetNumberOfDectEntries: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:X_AVM-DE_Filelinks:1 (Url: /upnp/control/x_filelinks) 
WARN[0005] FAILED:GetFilelinkListPath: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0005] FAILED:GetNumberOfFilelinkEntries: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0005] Service: urn:dslforum-org:service:X_AVM-DE_Homeauto:1 (Url: /upnp/control/x_homeauto) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_Homeplug:1 (Url: /upnp/control/x_homeplug) 
WARN[0006] FAILED:GetNumberOfDeviceEntries: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_HostFilter:1 (Url: /upnp/control/x_hostfilter) 
WARN[0006] FAILED:MarkTicket: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_MyFritz:1 (Url: /upnp/control/x_myfritz) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetNumberOfServices: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_OnTel:1 (Url: /upnp/control/x_contact) 
WARN[0006] FAILED:GetCallBarringList: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetCallList: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetDECTHandsetList: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetDeflections: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetNumberOfDeflections: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetPhonebookList: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_RemoteAccess:1 (Url: /upnp/control/x_remote) 
WARN[0006] FAILED:GetDDNSInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetDDNSProviders: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_Speedtest:1 (Url: /upnp/control/x_speedtest) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetStatistics: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_Storage:1 (Url: /upnp/control/x_storage) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetUserInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:RequestFTPServerWAN: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_TAM:1 (Url: /upnp/control/x_tam) 
WARN[0006] FAILED:GetList: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_UPnP:1 (Url: /upnp/control/x_upnp) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_USPController:1 (Url: /upnp/control/x_uspcontroller) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetUSPControllerNumberOfEntries: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetUSPMyFRITZEnable: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1 (Url: /upnp/control/x_wanmobileconn) 
WARN[0006] FAILED:GetAccessTechnology: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetBandCapabilities: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetEnabledBandCapabilities: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetInfoEx: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_AVM-DE_WebDAVClient:1 (Url: /upnp/control/x_webdav) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:dslforum-org:service:X_VoIP:1 (Url: /upnp/control/x_voip) 
WARN[0006] FAILED:GetExistingVoIPNumbers: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetInfoEx: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetMaxVoIPNumbers: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetVoIPCommonAreaCode: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetVoIPCommonCountryCode: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_DialGetConfig: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetClients: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetNumberOfAlarmClocks: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetNumberOfClients: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetNumberOfNumbers: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetNumbers: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetVoIPAccounts: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetVoIPCommonAreaCode: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM-DE_GetVoIPCommonCountryCode: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:schemas-any-com:service:Any:1 (Url: /igdupnp/control/any) 
INFO[0006] Service: urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1 (Url: /igdupnp/control/WANCommonIFC1) 
WARN[0006] FAILED:GetAddonInfos: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetCommonLinkProperties: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetTotalBytesReceived: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetTotalBytesSent: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetTotalPacketsReceived: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetTotalPacketsSent: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM_DE_GetDsliteStatus: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM_DE_GetIPTVInfos: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:schemas-upnp-org:service:WANDSLLinkConfig:1 (Url: /igdupnp/control/WANDSLLinkC1) 
WARN[0006] FAILED:GetATMEncapsulation: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetAutoConfig: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetDSLLinkInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetDestinationAddress: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetFCSPreserved: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetModulationType: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:schemas-upnp-org:service:WANIPConnection:1 (Url: /igdupnp/control/WANIPConn1) 
WARN[0006] FAILED:GetAutoDisconnectTime: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetConnectionTypeInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetExternalIPAddress: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetIdleDisconnectTime: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetNATRSIPStatus: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:GetStatusInfo: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM_DE_GetDNSServer: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM_DE_GetExternalIPv6Address: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM_DE_GetIPv6DNSServer: SAOPFault: UPnPError 401 (Invalid Action) 
WARN[0006] FAILED:X_AVM_DE_GetIPv6Prefix: SAOPFault: UPnPError 401 (Invalid Action) 
INFO[0006] Service: urn:schemas-upnp-org:service:WANIPv6FirewallControl:1 (Url: /igd2upnp/control/WANIPv6Firewall1) 
WARN[0006] FAILED:GetFirewallStatus: SAOPFault: UPnPError 401 (Invalid Action)

Did I miss anything obvious, is it normal with a 7530… or how can I help add support for it?

Question/Discussion: Exposing password for FritzBox

Hi there,
im successfully using this in a docker container.

My question is:
Are there any issues with writing the password to my homerouter in clear text into my docker-compose script?
I didnt find a way to create a user on my fritzbox only for the node exporter and only with access to my data ... or did i miss something?

It feels weird to write the admin-password into some sort of script
... but maybe there is something im missing ...

Prometheus exceeded maximum resolution of 11,000 points or empty result

It's an awesome work I would say. I tried this and everything working but if you try to get the metrics of past 2 days or later, it will eventually fail with the error "Prometheus exceeded maximum resolution of 11,000 points or empty result" for some metrics such as "Total Download" or "Total Upload".

Unable to build docker image due to go error

Hi,

first of all: many thanks for this great exporter :)

Since several days I'm facing the following error during docker build after cloning the git repo:

Sending build context to Docker daemon 1.134MB
Step 1/17 : FROM golang:alpine3.15 AS builder
alpine3.15: Pulling from library/golang
dfd6a1b07255: Pulling fs layer
331b3631dc9d: Pulling fs layer
ac904122a781: Pulling fs layer
abd83326c913: Pulling fs layer
c701d215bbd6: Pulling fs layer
abd83326c913: Waiting
c701d215bbd6: Waiting
ac904122a781: Verifying Checksum
ac904122a781: Download complete
331b3631dc9d: Verifying Checksum
331b3631dc9d: Download complete
dfd6a1b07255: Verifying Checksum
dfd6a1b07255: Download complete
c701d215bbd6: Verifying Checksum
c701d215bbd6: Download complete
dfd6a1b07255: Pull complete
331b3631dc9d: Pull complete
ac904122a781: Pull complete
abd83326c913: Verifying Checksum
abd83326c913: Download complete
abd83326c913: Pull complete
c701d215bbd6: Pull complete
Digest: sha256:6fd04df1b7ba6253a09b4bd3f37cc1fb69903a60209ef959485328b1c2902327
Status: Downloaded newer image for golang:alpine3.15
---> e2757ead23b6
Step 2/17 : RUN go get github.com/sberk42/fritzbox_exporter/ && mkdir /app && mv /go/bin/fritzbox_exporter /app
---> Running in 6eac3a97cdc4
go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.
To build and install a command, use 'go install' with a version,
like 'go install example.com/cmd@latest'
For more information, see https://golang.org/doc/go-get-install-deprecation
or run 'go help get' or 'go help install'.
The command '/bin/sh -c go get github.com/sberk42/fritzbox_exporter/ && mkdir /app && mv /go/bin/fritzbox_exporter /app' returned a non-zero code: 1

Could you please fix that ?

Have a day :)

Kind regards

RPi in Docker "Can not get metric values"

Hey there!

I have been running into an issue with docker on a raspberrypi and the self built image from this repo.

My (v3.7) compose file includes this service definiton:

fritzbox-prometheus-exporter:
    hostname: fritzbox-prometheus-exporter
    build:
      context: ../fritzbox_exporter
      dockerfile: Dockerfile
    container_name: fritzbox-prometheus-exporter
    # for dns issues like "dial tcp: lookup fritz.box on 127.0.0.11:53: no such host"
    # uncomment and fill the following line:
    dns: 192.168.178.1
    ports:
      - "9042:9042"
    network_mode: "host"
    #expose:
    #  - "9042"
    restart: unless-stopped
    environment:
      USERNAME: removed
      PASSWORD: removed
      GATEWAY_URL: http://removed:49000
      LISTEN_ADDRESS: 0.0.0.0:9042

The build context is a pull of this repo (master).

Fritzbox: 7590 7.29
The software is running on a RaspberryPi 3B
Docker version 20.10.17, build 100c701 (CE)

os-release:

NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal`
kernel:
`5.4.0-1065-raspi

After a while of running just fine, the log starts reporting these errors and some data (like CPU utilization and temps) is not reported anymore:

root@raspberrypi:~# docker logs --details fritzbox-prometheus-exporter
 time="2022-07-02T19:18:25Z" level=info msg="metrics available at http://0.0.0.0:9042/metrics"
 time="2022-07-02T19:18:25Z" level=info msg="readyness check available at http://0.0.0.0:9042/ready"
 time="2022-07-02T19:18:25Z" level=info msg="liveness check available at http://0.0.0.0:9042/live"
 time="2022-07-02T19:18:26Z" level=info msg="services loaded"
 time="2022-07-03T02:32:54Z" level=error msg="Can not get metric values for data.drain.*.actPerc: hash '' has no element 'data'"
 time="2022-07-03T02:32:55Z" level=error msg="Can not get metric values for data.drain.*.lan.*.class: hash '' has no element 'data'"
 time="2022-07-03T02:32:55Z" level=error msg="Can not get metric values for data.cputemp.series.0.-1: hash '' has no element 'data'"
 time="2022-07-03T02:32:56Z" level=error msg="Can not get metric values for data.cpuutil.series.0.-1: hash '' has no element 'data'"
 time="2022-07-03T02:32:57Z" level=error msg="Can not get metric values for data.ramusage.series.0.-1: hash '' has no element 'data'"
 time="2022-07-03T02:32:57Z" level=error msg="Can not get metric values for data.ramusage.series.1.-1: hash '' has no element 'data'"
 time="2022-07-03T02:32:58Z" level=error msg="Can not get metric values for data.ramusage.series.2.-1: hash '' has no element 'data'"
 time="2022-07-03T02:32:58Z" level=error msg="Can not get metric values for data.usbOverview.devices.*.partitions.0.totalStorageInBytes: hash '' has no element 'data'"
 time="2022-07-03T02:32:59Z" level=error msg="Can not get metric values for data.usbOverview.devices.*.partitions.0.usedStorageInBytes: hash '' has no element 'data'"
 time="2022-07-03T02:33:50Z" level=error msg="Can not get metric values for data.drain.*.actPerc: hash '' has no element 'data'"

Restarting the container fixes the issue. All the "lua" stats are also back in the exporter output. Any idea what could cause this?

Thank you!

Customized metrics-lua.json for Fritz!Box 6660 Cable (Fritz!OS 7.57)

Hi,

in case this is of interest to someone, this is my metrics-lua.json with some extra metrics on top of those in the generic cable box file:

fb6660-cable.json

I get some warnings, but they are because I only get DOCSIS 3.1 downstream (and not upstream, so the array is empty?) and my connection is over IP (no PPP, so the four PPP entries in metrics.json probably trigger the UPnP 401). These shouldn't cause trouble:

time="2024-02-24T12:48:38Z" level=error msg="Can not get metric values for data.channelUs.docsis31..powerLevel: item 'data.channelUs.docsis31.' has no values"
time="2024-02-24T12:48:39Z" level=error msg="Can not get metric values for data.channelUs.docsis31..modulation: item 'data.channelUs.docsis31.' has no values"
time="2024-02-24T12:49:36Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"
time="2024-02-24T12:49:36Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"
time="2024-02-24T12:49:36Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"
time="2024-02-24T12:49:36Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"

Add gateway-luaurl to the Using docker info

hello sberk42, many thanks for the great work and sharing your project. i just wanted to add some info, which might help also others.

i have 2 fritzboxes and i was able to connect to both (2 docker container running). however, the lua info (cpu, temp etc) were always the same.

I found out, that the default lua was taken and so i needed to add gateway-luaurl. Maybe you can add that, so that others can easily find it. Many thanks and have nice day!

Create from Dockerfile - metrics.json / metrics-lua.json cannot be copied

Hello,

tried to set up the container via the Dockerfile. The Container creation terminates at step 4:

Step 4/17 : COPY metrics.json metrics-lua.json /app/ ERROR: Service 'fritzbox_exporter' failed to build: COPY failed: file not found in build context or excluded by .dockerignore: stat metrics.json: file does not exist

UPnPError 401

Used Image: ghcr.io/sberk42/fritzbox_exporter/fritzbox_exporter:latest@sha256:3dceb8ce9704e7ceba1987a0753a66fb82dce7e725e0b1eca9bae0a0d04a1585

cmd: -username ${USERNAME} -password ${PASSWORD} -gateway-url ${GATEWAY_URL} -gateway-luaurl ${GATEWAY_LUAURL} -listen-address ${LISTEN_ADDRESS}

time="2023-12-14T20:39:17Z" level=info msg="Ip:  10.0.0.1"
time="2023-12-14T20:39:17Z" level=info msg="metrics available at http://0.0.0.0:9042/metrics"
time="2023-12-14T20:39:17Z" level=info msg="readyness check available at http://0.0.0.0:9042/ready"
time="2023-12-14T20:39:17Z" level=info msg="liveness check available at http://0.0.0.0:9042/live"
time="2023-12-14T20:39:22Z" level=info msg="services loaded"
time="2023-12-14T20:39:55Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"
time="2023-12-14T20:39:55Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"
time="2023-12-14T20:39:55Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"
time="2023-12-14T20:39:55Z" level=warning msg="can not collect metrics: GetInfo: SAOPFault: UPnPError 401 (Invalid Action)"

I get 4 of these error messages every time I try to scrape.
But I get most of the data, I don't know what exactly is going wrong.

image

fritzbox_exporter to prometheus k3s problem

Hello there,
have you deployed this nice piece of software to a k3s cluster?

I already have deployed the container to the cluster. That is working:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ... service/fritzbox-metrics ClusterIP 10.43.44.131 <none> 9042/TCP 14m

In the cluster I can access the URL via curl :
curl -s http://10.43.44.131:9042/metrics
That is working.

But now I want to teach prometheus to collect the available data. How do I get the data collected by prometheus?

To complete the issue, here is my deployment.yml

---
apiVersion: v1
kind: Service
metadata:
  namespace: monitoring
  name: fritzbox-metrics
  labels:
    app: fritzbox-metrics
spec:
  ports:
  - port: 9042
    protocol: TCP
  selector:
    app: fritzboxexporter
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: monitoring
  name: fritzboxexporter
spec:
  selector:
    matchLabels:
      app: fritzboxexporter
  replicas: 1
  template:
    metadata:
      labels:
        app: fritzboxexporter
    spec:
      containers:
      - name: fritzboxexporter
        image: kehrhardt/fritzbox_exporter
        ports:
        - containerPort: 9042
        env:
        - name: USERNAME
          value: "MYUSER"
        - name: PASSWORD
          value: "MYPASSWORD"
        - name: GATEWAY_URL
          value: "http://192.168.1.1:49000"

I tried a serviceMonitor, but without any results.

Thanks in advance

Michael

No Data on gateway_data_ecostat Panels (FB7490, 7.56OS)

Panels for CPU Temp, Utilization and Energy Consumption showing "No Data". all other Panels are Working.
Found out all are Querying "gateway_data_ecostat"

My Setup:

  • Fritzbox 7490 on FritzOS 7.56
  • Prometheus: 2.45.0
  • Grafana v9.5.1
  • fritzbox_exporter image from May 17

all of the Pods are Running on k3s in the same Namespace.

BR,
Felix

Kabel-Fritzboxen: Modulation der DOCSIS 3.0 Upstream-Kanäle

Zunächst danke für dieses tolle Stück Software. Endlich ein variabler Exporter, der so ziemlich alles liefert, das per TR64 oder LUA zugänglich ist. Danach hatte ich schon ewig gesucht.

Ich bin aktuell dabei, die LUA-Konfiguration für eine 6591 Cable hinzubiegen, die über data.lua viele Informationen zur DOCSIS-Verbindung liefert. Die passende JSON-Datei kann ich auf Wunsch gerne zur Verfügung stellen. Leider scheitere ich an der Modulation der DOCSIS3.0 Upstream-Kanäle, denn AVM liefert hier leider statt beispielsweise einer 64 eben 64QAM.

Meine Konfiguration sieht so aus:

    {
        "path": "data.lua",
        "params": "page=docInfo",
        "resultPath": "data.channelUs.docsis30.*",
        "resultKey": "type",
        "promDesc": {
            "fqName": "gateway_cable_modulation_upstream",
            "help": "docsis 3.0 modulation upstream from data.lua?page=docInfo",
            "varLabels": [
                "gateway", "frequency"
            ]
        },
        "promType": "GaugeValue",
        "cacheEntryTTL": 300
    }

Das führt dann zum Fehler "Can not get metric values for data.channelUs.docsis30.*.type: strconv.ParseFloat: parsing "64QAM": invalid syntax". Klar, ist ja eben auch ein String und kein Float.

Mache ich sowas

    {
        "path": "data.lua",
        "params": "page=docInfo",
        "resultPath": "data.channelUs.docsis30.*",
        "resultKey": "powerLevel",
        "promDesc": {
            "fqName": "gateway_cable_power_upstream",
            "help": "docsis 3.0 power upstream from data.lua?page=docInfo",
            "varLabels": [
                "gateway", "frequency", "type"
            ]
        },
        "promType": "GaugeValue",
        "cacheEntryTTL": 300
    }

steht die Modulation sauber als Label in der Metrik. Und zwar nur als Integer ohne "QAM". Hilft nur leider nicht, da Grafana keine Label-Values als Graphen darstellen kann. Umschreiben per Regex geht auch nicht, da das wohl nur für Labels aber nicht für Keys möglich ist.

Ich bin ein recht passabler Admin, aber meine GO-Skills gehen gegen Null, deshalb bin ich hier wirklich aufgeschmissen, denn dieser Wert ist tatsächlich ein wichtiger Indikator für die Qualität der DOCSIS-Verbindung. Bekommt man das irgendwie hin?

Auf Wunsch kann ich gerne alle relevanten Daten zur Verfügung stellen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.