Skip to Content

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-VariableDefaultBeschreibung
DD_API_KEYString, Pflicht. Datadog-API-Key
DD_SITEString, Pflicht. Datadog-Site, z.B. datadoghq.com, datadoghq.eu
DD_API_KEY=<datadog-api-key> DD_SITE=datadoghq.eu

InfluxDB

@5minds/processcube_engine_influxdb_extension — schreibt Events gepuffert (Batching) als Line-Protocol-Points in InfluxDB. Konfiguration über das Config-Objekt influxdbExtension.

SchlüsselDefaultBeschreibung
urlString, Pflicht. InfluxDB-URL, z.B. http://influxdb:8086
tokenString, Pflicht. InfluxDB-API-Token
orgaString, Pflicht. InfluxDB-Organisation
bucketString, Pflicht. Ziel-Bucket
flushIntervalNumber, 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-VariableDefaultBeschreibung
APPINSIGHTS_INSTRUMENTATION_KEYString, 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-VariableDefaultBeschreibung
RABBITMQ_CONNECTION_STRINGString, 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-VariableDefaultBeschreibung
MEMWATCH_ACTIVEBoolean, Pflicht. Memwatch einschalten
AZURE_SERVICE_BUS_CONNECTION_STRINGString, 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-VariableDefaultBeschreibung
EVENTLOOPINFOS_ACTIVEBoolean, Pflicht. Event-Loop-Monitoring einschalten
EVENTLOOPINFOS_BLOCKED_THRESHOLD50Number, optional. Ab dieser Blockdauer (ms) wird geloggt
EVENTLOOPINFOS_MAX_STACK_DEPTH15Number, optional. Maximale Anzahl Stack-Frames im Log