Monitoring-Backends
Neben der Monitoring-API (Pull)
und Prometheus/Grafana gibt es weitere
Extensions, die Monitoring-Daten der Engine an externe Systeme pushen. Sie
beruhen alle auf demselben Mechanismus: Ein MonitoringConnector (aus dem
Monitoring-SDK) registriert eine Event-Middleware, extrahiert die Metriken aus den
Flow-Node-Events und reicht sie an einen IMonitoringAdapter weiter, der sie an
das jeweilige Backend sendet.
Pull vs. Push: Monitoring-API und Prometheus stellen Daten zum Abholen bereit (Pull). Die hier beschriebenen Backends pushen jedes Event sofort an das Zielsystem.
Datadog
@5minds/processcube_engine_datadog_extension — pusht Prozess- und
Flow-Node-Metriken an die Datadog-API. Aktiv, sobald beide Variablen gesetzt sind.
| Env-Variable | Default | Beschreibung |
|---|---|---|
DD_API_KEY | — | String, Pflicht. Datadog-API-Key |
DD_SITE | — | String, Pflicht. Datadog-Site, z.B. datadoghq.com, datadoghq.eu |
DD_API_KEY=<datadog-api-key>
DD_SITE=datadoghq.euInfluxDB
@5minds/processcube_engine_influxdb_extension — schreibt Events gepuffert
(Batching) als Line-Protocol-Points in InfluxDB. Konfiguration über das
Config-Objekt influxdbExtension.
| Schlüssel | Default | Beschreibung |
|---|---|---|
url | — | String, Pflicht. InfluxDB-URL, z.B. http://influxdb:8086 |
token | — | String, Pflicht. InfluxDB-API-Token |
orga | — | String, Pflicht. InfluxDB-Organisation |
bucket | — | String, Pflicht. Ziel-Bucket |
flushInterval | — | Number, optional. Batch-Flush-Intervall in ms (0 = sofort) |
Azure Application Insights
@5minds/processcube_engine_azure_application_insights_extension — trackt
Prozess-Ereignisse (Fehler, Fertigstellung) als Custom-Metriken in Azure
Application Insights.
| Env-Variable | Default | Beschreibung |
|---|---|---|
APPINSIGHTS_INSTRUMENTATION_KEY | — | String, Pflicht. Application-Insights-Instrumentation-Key |
RabbitMQ-Sink (Monitoring)
@5minds/processcube_engine_rabbitmq_monitoring_extension — publiziert
Monitoring-Events als JSON auf RabbitMQ-Fanout-Exchanges (je Event-Typ ein
eigener Exchange: process_duration, flownode_duration, process_finished,
processes_running, flownode_finished).
| Env-Variable | Default | Beschreibung |
|---|---|---|
RABBITMQ_CONNECTION_STRING | — | String, Pflicht. AMQP-Verbindungsstring |
Nicht verwechseln mit dem RabbitMQ-Messagebus:
Dieser Sink sendet Monitoring-Events an RabbitMQ, er ist kein Transport für
BPMN-Signale/-Messages. Beide nutzen dieselbe Variable RABBITMQ_CONNECTION_STRING.
Memwatch
@5minds/processcube_engine_memwatch_extension — Heap-Profiling via Memwatch.
Nimmt auf Kommando HeapDiff-Snapshots und liefert die Ergebnisse über eine Azure
Service Bus Queue. Aktiv, wenn beide Variablen gesetzt sind.
| Env-Variable | Default | Beschreibung |
|---|---|---|
MEMWATCH_ACTIVE | — | Boolean, Pflicht. Memwatch einschalten |
AZURE_SERVICE_BUS_CONNECTION_STRING | — | String, Pflicht. Connection-String für Kommandos/Ergebnisse |
Kommandos gehen an die Queue MemwatchCommandQueue ({"commandName":"startHeapDiff"}
bzw. endHeapDiff), Ergebnisse an MemwatchResultQueue.
Event-Loop-Infos
@5minds/processcube_engine_eventloopinfos_extension — erkennt Event-Loop-
Blockaden (Library blocked-at) und loggt Stacktraces bei Überschreitung des
Schwellwerts.
| Env-Variable | Default | Beschreibung |
|---|---|---|
EVENTLOOPINFOS_ACTIVE | — | Boolean, Pflicht. Event-Loop-Monitoring einschalten |
EVENTLOOPINFOS_BLOCKED_THRESHOLD | 50 | Number, optional. Ab dieser Blockdauer (ms) wird geloggt |
EVENTLOOPINFOS_MAX_STACK_DEPTH | 15 | Number, optional. Maximale Anzahl Stack-Frames im Log |