Clone current repository and
cd syncthing_exporter
go build .
./syncthing_exporter --version
For pre-built binaries please take a look at the releases.
Basic prometheus configuration:
- job_name: 'syncthing_server'
metrics_path: /metrics
static_configs:
- targets: ['127.0.0.1:9093']
labels:
service: syncthing_server
Name | Evironment variable | Required | Description |
---|---|---|---|
web.listen-address | WEB_LISTEN_ADDRESS | - | Address ot listen on for web interface and telemetry |
web.metrics-path | WEB_METRIC_PATH | - | Path under which to expose metrics |
syncthing.uri | SYNCTHING_URI | + | HTTP API address of Syncthing node |
syncthing.token | SYNCTHING_TOKEN | + | Token for authentification Syncthing HTTP API |
syncthing.timeout | SYNCTHING_TIMEOUT | - | Timeout for trying to get stats from Syncthing |
syncthing.foldersid | SYNCTHING_FOLDERSID | - | List of ids of folders, delimeter is ',' |
Example of all metrics related to syncthing
here.
For data obtaining is using two endpoints:
GET /rest/svc/report
GET /rest/system/connections
GET /rest/stats/device
GET /rest/db/status*
* This is an expensive call, increasing CPU and RAM usage on the device. Use sparingly.
Example of grafana dashboard:
How to run
docker run -it -e "SYNCTHING_URI=http://127.0.0.1:8384/" -e SYNCTHING_TOKEN="super-secure-token" f100024/syncthing_exporter:latest
docker-compose example:
syncthing_exporter:
image: f100024/syncthing_exporter:latest
ports:
- 9093:9093
environment:
SYNCTHING_URI: "http://127.0.0.1:8384/"
SYNCTHING_TOKEN: "super-secure-token"
restart: unless-stopped
Any ideas and pull requests are appreciated.