internal | ||
.dockerignore | ||
.gitignore | ||
CHANGELOG.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md | ||
version.go |
netatmo-exporter
Simple prometheus exporter for getting sensor values NetAtmo sensors into prometheus.
Installation
Run docker container
The exporter is available as a Docker image: xperimental/netatmo-exporter
The latest
tag is built from the current master, tags tagged since the Docker support was added are also available as a tag in Docker.
Build from source
Because this program uses the "Go Module" feature introduced in Go 1.11, you'll need at least that version of Go for building it.
If you have a working Go installation, getting the binary should be as simple as
git clone https://github.com/xperimental/netatmo-exporter
cd netatmo-exporter
make
If you want to build the exporter for a different OS or architecture, you can specify arguments to the Makefile:
# For 32-bit ARM on Linux
make GO_ARCH=arm
# For 64-bit ARM on Linux
make GO_ARCH=arm64
NetAtmo client credentials
This application tries to get data from the NetAtmo API. For that to work you will need to create an application in the NetAtmo developer console, so that you can get a Client ID and secret.
Usage
$ netatmo-exporter --help
Usage of netatmo-exporter:
-a, --addr string Address to listen on. (default ":9210")
-i, --client-id string Client ID for NetAtmo app.
-s, --client-secret string Client secret for NetAtmo app.
-p, --password string Password of NetAtmo account.
-u, --username string Username of NetAtmo account.
After starting the server will offer the metrics on the /metrics
endpoint, which can be used as a target for prometheus.
Passing secrets
You can pass credentials either via command line arguments (see next section) or by populating the following environment variables:
NETATMO_EXPORTER_ADDR
Address to listen onNETATMO_CLIENT_ID
Client ID for NetAtmo appNETATMO_CLIENT_SECRET
Client secret for NetAtmo appNETATMO_CLIENT_USERNAME
Username of NetAtmo accountNETATMO_CLIENT_PASSWORD
Password of NetAtmo account
Scrape interval
The exporter will query the Netatmo API every time it is scraped by prometheus. It does not make sense to scrape the Netatmo API with a small interval as the sensors only update their data every few minutes, so don't forget to set a slower scrape interval for this exporter:
scrape_configs:
- job_name: 'netatmo'
scrape_interval: 90s
static_configs:
- targets: ['localhost:9210']