Package: connectbox-prometheus
Connectbox PrometheusAPrometheusexporter for monitoring Compal CH7465LG cable modems. These are sold under the name "Connect Box" by Unitymedia in Germany, Ziggo in the Netherlands and UPC in Switzerland/Austria/Poland. Or as "Virgin Media Super Hub 3" by Virgin Media.Makes thorough use ofcompal_CH7465LG_pyby@ties(thanks!).InstallationOn your Prometheus server host:Using pipCreate a virtual environmentusing python3.7 or higherInstall the exporter viapip install connectbox-prometheusUsing DockerAlternatively you could use the providedDockerfile.
We don't provide builds onDocker Hubor similar, so you need togit cloneand build it yourself:git clone https://github.com/mbugert/connectbox-prometheus.gitcd connectbox-prometheusChooseeitherdocker runordocker-compose.docker runTo build your own local docker image rundocker build -t connectbox-prometheus .To actually create and run a container namedconnectbox-prometheususe the following command:docker run -v connectbox-prometheus-volume:/data -p 9705:9705 --name connectbox-prometheus connectbox-prometheusThe exampleconfig.ymlfound in the root of this repo will be copied to the provided/datavolume (e.g.connectbox-prometheus-volume, usually found under/var/lib/docker/volumes/connectbox-prometheus-volumeand the container will stop, because you most likely need to modify the given config. SeeUsage.After modifying, rundocker start connectbox-prometheusto keep the container running.docker-composedocker-compose upwill automatically build the docker image, start the container the first time to copy the exampleconfig.ymland exit again.
Now there should be an directory nameddatawhere you can find yourconfig.yml. Modify it to your needs. SeeUsage.After modifying, rundocker-compose up -dto keep the container running.UsageThis exporter queries exactly one Connect Box as a remote target.
To get started, modifyconfig.ymlfrom this repository or start out with the following content:# Connect Box IP addressip_address:192.168.0.1# Connect Box web interface passwordpassword:WhatEverYourPasswordIsThen runconnectbox_exporter path/to/your/config.yml.Prometheus ConfigurationAdd the following to yourprometheus.yml:scrape_configs:-job_name:'connectbox'static_configs:-targets:-localhost:9705One scrape takes roughly 6 seconds.Exported MetricsMetric nameDescriptionconnectbox_device_infoAssorted device informationconnectbox_provisioning_statusModem provisioning statusconnectbox_uptime_secondsDevice uptime in secondsconnectbox_tuner_temperature_celsiusTuner temperatureconnectbox_temperature_celsiusTemperatureconnectbox_ethernet_client_speed_mbitMaximum speed of connected ethernet clientsconnectbox_wifi_client_speed_mbitMaximum speed of connected Wi-Fi clientsconnectbox_downstream_frequency_hzDownstream channel frequencyconnectbox_downstream_power_level_dbmvDownstream channel power levelconnectbox_downstream_snr_dbDownstream channel signal-to-noise ratio (SNR)connectbox_downstream_rxmer_dbDownstream channel receive modulation error ratio (RxMER)connectbox_downstream_codewords_unerrored_totalUnerrored downstream codewordsconnectbox_downstream_codewords_corrected_totalCorrected downstream codewordsconnectbox_downstream_codewords_uncorrectable_totalUncorrectable downstream codewordsconnectbox_upstream_frequency_hzUpstream channel frequencyconnectbox_upstream_power_level_dbmvUpstream channel power levelconnectbox_upstream_symbol_rate_kspsUpstream channel symbol rateconnectbox_upstream_timeouts_totalUpstream channel timeout occurrencesconnectbox_scrape_duration_secondsConnect Box exporter scrape durationconnectbox_upConnect Box exporter scrape successGrafana DashboardThe above metrics can be monitored nicely inGrafanausingthis dashboard:Contributing / DevelopmentPull requests are welcome. 😊To install development dependencies, run:pip install -r resources/requirements/development.txt