Zum Hauptinhalt springen

Prometheus

logo

Experimentelle Funktion Diese Funktion wird derzeit noch getestet. Die Prometheus API ist ab EMS-ESP32 Version 3.7.3-dev_36 verfügbar.

EMS-ESP stellt die /api/<device>/metrics & /api/system/metrics Endpunkte für die Integration mit Prometheus zur Verfügung. Alle EMS-ESP-Metriken sind mit dem Präfix emsesp_ versehen.

Geräte-Metriken

Gerätemetriken sind über den Endpunkt /api/<device>/metrics zugänglich. Folgende Wertetypen werden ausgegeben:

  • number
  • boolean (abgebildet als 0 & 1)
  • enum (als Zahlen abgebildet)

Details zu den Metriken und Enum-Mappings können in der Hilfe-Richtlinie eingesehen werden, wie im folgenden Beispiel gezeigt:

# HELP emsesp_circmode enum, (0: off; 1: 1x3min; 2: 2x3min; 3: 3x3min; 4: 4x3min; 5: 5x3min; 6: 6x3min; 7: continuously), readable, writeable, visible
# TYPE emsesp_circmode gauge
emsesp_circmode{circuit="dhw"} 1

System-Metriken

Systemmetriken sind über den Endpunkt /api/system/metrics zugänglich. Die Metriken können aus den folgenden Kategorien gelesen werden:

KategorieMetrisches PräfixMetrische Bezeichnungen
Systememsesp_system_*
Netzwerkemsesp_network_*
NTPemsesp_ntp_*
Zugangspunktemsesp_ap_*
MQTTemsesp_mqtt_*
Syslogemsesp_syslog_*
Temperatur- & Analogsensorenemsesp_sensor_*
APIemsesp_api_*
EMS-Busemsesp_bus_*
Systemeinstellungenemsesp_settings_*
EMS-Geräteemsesp_device_*typ, name, deviceid, version

Darüber hinaus wird für einige Kategorien auch eine *_info-Metrik bereitgestellt. Dort werden String-Werte gesammelt und als Labels ausgegeben. Zum Beispiel:

# HELP emsesp_bus_info info
# TYPE emsesp_bus_info gauge
emsesp_bus_info{busstatus="connected", busprotocol="Buderus"} 1

Konfiguration

Die folgende Beispielkonfiguration kann als prometheus.yml verwendet werden:

global:
scrape_interval: 15s

scrape_configs:
- job_name: 'emsesp'
static_configs:
- targets: ['ems-esp.local']
labels:
device: system
- targets: ['ems-esp.local']
labels:
device: boiler
- targets: ['ems-esp.local']
labels:
device: thermostat
# - some other device ...

relabel_configs:
- source_labels: [device]
target_label: __metrics_path__
regex: (.*)
replacement: /api/$1/metrics

Zur Visualisierung der Prometheus Metriken siehe auch: Integrations: Grafana.
Weitere Informationen über das Prometheus Datenmodell finden Sie im official documentation.