Browse Source

Improves readme

- add toc
- updates build instructions
- fixed some typos
master
Christian Fritz 4 years ago
parent
commit
8fe58d46bb
No known key found for this signature in database GPG Key ID: AB40486FCA9FA29C
  1. 110
      README.md

110
README.md

@ -1,8 +1,7 @@
# Fritz!Box Upnp statistics exporter for prometheus # Fritz!Box Upnp statistics exporter for prometheus
This exporter exports some variables from an This exporter exports some variables from an
[AVM Fritzbox](http://avm.de/produkte/fritzbox/) [AVM Fritzbox](http://avm.de/produkte/fritzbox/) to prometheus.
to prometheus.
This exporter is tested with a Fritzbox 7590 software version 07.12, 07.20, 07.21 and 07.25. This exporter is tested with a Fritzbox 7590 software version 07.12, 07.20, 07.21 and 07.25.
@ -24,58 +23,82 @@ Other changes:
- support for metrics from lua APIs (e.g. CPU temperature, utilization, ...) - support for metrics from lua APIs (e.g. CPU temperature, utilization, ...)
[TOC]: # "## Table of Contents"
## Table of Contents
- [Building](#building)
- [Running](#running)
- [Exported metrics](#exported-metrics)
- [Output of `-test`](#output-of--test)
- [Customizing metrics](#customizing-metrics)
- [Grafana Dashboard](#grafana-dashboard)
## Building ## Building
go get github.com/sberk42/fritzbox_exporter/ ```shell script
cd $GOPATH/src/github.com/sberk42/fritzbox_exporter git clone https://github.com/chr-fritz/fritzbox_exporter.git
go install cd fritzbox_exporter
go mod download
go build
```
## Running ## Running
In the configuration of the Fritzbox the option "Statusinformationen über UPnP übertragen" in the dialog "Heimnetz > In the configuration of the Fritzbox the option `Statusinformationen
Heimnetzübersicht > Netzwerkeinstellungen" has to be enabled. über UPnP übertragen` in the dialog `Heimnetz > Heimnetzübersicht >
Netzwerkeinstellungen` has to be enabled.
Usage: Usage:
$GOPATH/bin/fritzbox_exporter -h ```
Usage of ./fritzbox_exporter: $GOPATH/bin/fritzbox_exporter -h
-gateway-url string Usage of ./fritzbox_exporter:
The URL of the FRITZ!Box (default "http://fritz.box:49000") -gateway-url string
-gateway-luaurl string The URL of the FRITZ!Box (default "http://fritz.box:49000")
The URL of the FRITZ!Box UI (default "http://fritz.box") -gateway-luaurl string
-metrics-file string The URL of the FRITZ!Box UI (default "http://fritz.box")
The JSON file with the metric definitions. (default "metrics.json") -metrics-file string
-lua-metrics-file string The JSON file with the metric definitions. (default "metrics.json")
The JSON file with the lua metric definitions. (default "metrics-lua.json") -lua-metrics-file string
-test The JSON file with the lua metric definitions. (default "metrics-lua.json")
print all available SOAP calls and their results (if call possible) to stdout -test
-json-out string print all available SOAP calls and their results (if call possible) to stdout
store metrics also to JSON file when running test -json-out string
-testLua store metrics also to JSON file when running test
read luaTest.json file make all contained calls and dump results -testLua
-collect read luaTest.json file make all contained calls and dump results
collect metrics once print to stdout and exit -collect
-nolua collect metrics once print to stdout and exit
disable collecting lua metrics -nolua
-username string disable collecting lua metrics
The user for the FRITZ!Box UPnP service -username string
-password string The user for the FRITZ!Box UPnP service
The password for the FRITZ!Box UPnP service -password string
-listen-address string The password for the FRITZ!Box UPnP service
The address to listen on for HTTP requests. (default "127.0.0.1:9042") -listen-address string
The address to listen on for HTTP requests. (default "127.0.0.1:9042")
```
The password (needed for metrics from TR-064 API) can be passed over environment variables to test in shell: The password (needed for metrics from TR-064 API) can be passed over environment variables to test in shell:
read -rs PASSWORD && export PASSWORD && ./fritzbox_exporter -username <user> -test; unset PASSWORD ```shell script
read -rs PASSWORD && export PASSWORD && ./fritzbox_exporter -username <user> -test; unset PASSWORD
```
## Exported metrics ## Exported metrics
start exporter and run Start the exporter and run:
```shell script
curl -s http://127.0.0.1:9042/metrics curl -s http://127.0.0.1:9042/metrics
```
## Output of -test ## Output of `-test`
The exporter prints all available Variables to stdout when called with the -test option. The exporter prints all available Variables to `stdout` when called with
These values are determined by parsing all services from http://fritz.box:49000/igddesc.xml and http://fritzbox:49000/tr64desc.xml (for TR64 username and password is needed!!!) the `-test` option. It retrieves these values by parsing all services
from <http://fritz.box:49000/igddesc.xml> and
<http://fritzbox:49000/tr64desc.xml>. To access TR64 the exporter needs
username and password.
## Customizing metrics ## Customizing metrics
@ -83,10 +106,13 @@ The metrics to collect are no longer hard coded, but have been moved to the [met
For a list of all the available metrics just execute the exporter with -test (username and password are needed for the TR-064 API!) For a list of all the available metrics just execute the exporter with -test (username and password are needed for the TR-064 API!)
For lua metrics open UI in browser and check the json files used for the various screens. For lua metrics open UI in browser and check the json files used for the various screens.
For a list of all available metrics, see the dumps below (the format is the same as in the metrics.json file, so it can be used to easily add further metrics to retrieve): For a list of all available metrics, see the dumps below (the format is
the same as in the metrics.json file, so it can be used to easily add
further metrics to retrieve):
- [FritzBox 7590 v7.12](all_available_metrics_7590_7.12.json) - [FritzBox 7590 v7.12](all_available_metrics_7590_7.12.json)
- [FritzBox 7590 v7.20](all_available_metrics_7590_7.20.json) - [FritzBox 7590 v7.20](all_available_metrics_7590_7.20.json)
- [FritzBox 7590 v7.25](all_available_metrics_7590_7.25.json) - [FritzBox 7590 v7.25](all_available_metrics_7590_7.25.json)
## Grafana Dashboard ## Grafana Dashboard
The dashboard is now also published on [Grafana](https://grafana.com/grafana/dashboards/12579). The dashboard is now also published on
[Grafana](https://grafana.com/grafana/dashboards/12579).

Loading…
Cancel
Save