Die Docker Images sind online: https://hub.docker.com/r/mabunixda/misc
Ich starte den Container bei mir so:
docker run -v /media/docker/prometheus/config.json:/opt/config.json --name loxprom mabunixda/misc:loxonegoprometheus-0.1
/media/docker/prometheus/config.json schaut dann wie folgt aus:
{
"Miniserver": "<IP des Miniservers>",
"Authentication": "<HTTP Basic Encoded Authentication>",
"Metrics":
[
{
"URI": "/dev/sps/io/0d118e2e-025e-b7f2-ffff8973e5f5454c/state",
"Interval": 60,
"Values":
[
{
"ValuePath": "/LL/@value",
"Name": "Technikraum_temperature"
}
]
},
}
HTTP Basic Encoded Authentication enspricht einem Base64 Encodeden STring von username

Ich habe hier einen eigenen User angelegt, der bei mir Controls sieht, die man sonst als USer nicht sieht, da ich nicht alle Temperatursensoren zB brauche/sehen will.
URI ist relativ und ist dann http://<IP>/<URI> ... anstatt state kann man auch noch all verwenden. Ich verwende hier noch die XML API und muss erst mal umstellen, wobei ich hier auch gerade gesehen habe, dass zB das eh nicht viel anders aussieht

Der Interval ist in Sekunden im Moment
Ich habe bei mir dann noch den prometheus Container prom/prometheus gezogen - loxprom von oben ist hier als verlinkter Container referenziert und die prometheus.yml ist ziemlich Standard
# my global config
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090', 'loxprom:8080']
Bei Grafana ist auch alles ganz laut Doku mit persistentem Speicher ala https://github.com/grafana/grafana-docker listet - nur dass hier halt der prometheus Container wieder als Link publiziert ist.
Ich werde in der nächsten Woche dann auf die neue API umstellen - dann wäre das nächste Rieeeesen-Todo eine UI zu schreiben um sich die Config zusammenbauen zu können und nicht im Editor das json Config file generieren muss.
Kommentar