Zum Hauptinhalt springen

Monitoring

Der Standardweg zur Prüfung des Betriebszustands der Edge.


REST-Endpunkte

EndpunktAuthentifizierungZweck
GET /api/v1/system/healthnicht erforderlich8 Komponenten (cassandra/redis/mqtt/node_red/opc_ua/edge_core/tse/grafana) TCP-Probe + Gesamtstatus. HTTP 503 if DEGRADED — empfohlen für OTA / k8s-Probe
GET /api/v1/system/readynicht erforderlichmonitor + Bereitschaftsstatus des V5 api_client
GET /api/v1/system/versionnicht erforderlichMetadata.VERSION + BUILD_DATE + image_tag + container_mode — empfohlen für Fleet-Inventory
GET /api/v1/edgeerforderlichEdge-Kennung / Version / Betriebszeit / kumulierte Sendeanzahl
GET /api/v1/monitoringerforderlichSystemmetriken (CPU / Speicher / Festplatte / Netzwerk / JVM)
GET /api/v1/opcerforderlichVerbindungsstatus / Scan-Status / kumulierte Point-Anzahl je OPC
GET /api/v1/opc/{opcId}/tagerforderlichLetzter Wert / Zeitstempel / Read-Status je Tag
GET /api/v1/transfererforderlichHealth der Übertragungskanäle (API/MQTT/Sparkplug, Queue-Tiefe)

Edge-Health in einer Zeile prüfen

curl -s http://<edge-host>/api/v1/edge | jq '{started, uptime_ms, sended_count, version}'
{
"started": true,
"uptime_ms": 124500,
"sended_count": 8063,
"version": "2025"
}

Wenn sended_count im Zeitverlauf ansteigt, arbeitet die Pipeline Queue → Übertragung.


Status je OPC

curl -s http://<edge-host>/api/v1/opc \
| jq '.data.data[] | {opc_id, opc_type, connection_status, scan_status, tag_count, point_count}'
FeldMögliche Werte / Bedeutung
connection_statusCONNECTED / DISCONNECTED / ERROR
scan_statusSTART / STOP (Scheduler-Status)
tag_countAnzahl registrierter Tags
point_countKumulierte erfasste Points (Reset beim Neustart)

Nur auffällige OPC schnell anzeigen:

curl -s http://<edge-host>/api/v1/opc \
| jq '.data.data[] | select(.connection_status != "CONNECTED")'

Letzter Wert je Tag

curl -s http://<edge-host>/api/v1/tag/<TAG_ID>/value | jq
{
"result": "OK",
"data": {
"tag_id": "TAG_UA_0004",
"value": "28.9688",
"value_time": "2026-05-06 20:59:39.000",
"value_read_status": "SUCCESS",
"value_read_error_message": ""
}
}

Wenn value_read_status den Wert ERROR hat, die Ursache in value_read_error_message ermitteln.


Systemmetriken

curl -s http://<edge-host>/api/v1/monitoring | jq '.data | {cpu_usage, memory_usage, disk_usage, thread_count}'

Alle Felder von MonitorBean werden unverändert ausgegeben (abhängig vom Feld-Set zum Zeitpunkt des App-Builds).


Sparkplug-Verifizierung

Bei sparkplug.enable=true lässt sich dies durch Abonnieren von spBv1.0/# mit einem externen Client wie paho-mqtt prüfen.

# 간단한 체크 스니펫 (참고용)
import os
import paho.mqtt.client as mqtt

def on_message(c, u, m):
print(m.topic, len(m.payload))

c = mqtt.Client()
c.username_pw_set(os.environ["MQTT_USER"], os.environ["MQTT_PASSWORD"])
c.on_message = on_message
c.connect("<edge-host>", 1883)
c.subscribe("spBv1.0/#")
c.loop_forever()

Erwartungswerte:

TopicHäufigkeit
spBv1.0/<group>/NBIRTH/<edge>1× beim Start
spBv1.0/<group>/DBIRTH/<edge>/<opc>beim Start entsprechend der Anzahl der OPC
spBv1.0/<group>/DDATA/<edge>/<opc>1 Nachricht je Point
spBv1.0/<group>/NDEATH/<edge>1× beim Beenden (oder automatisch per Will)

Log-Schlüsselwörter

Grep-Muster auf Basis von catalina.out:

MusterBedeutung
Cassandra connectedDB OK
MQTT connectedMQTT broker OK
[SparkPlug] CONNECT / NBIRTHSPB-Lebenszyklus
LS connect success / LS connect failedVerbindung des LS-Treibers
OPCUA connectVerbindung des OPCUA-Treibers
PLC_READ_TIMEOUT_EXCEPTIONModbus-Timeout
restartCollectorNeustart des Collectors nach Hinzufügen/Ändern/Löschen von OPC
WARNGrenzwert überschritten (z. B. connection_warn_ms)

Übertragungsstatistik — /api/v1/transfer

Dieser Endpunkt wird bereits bereitgestellt. Beispielantwort:

{
"queue_depth": 1234,
"queue_capacity": 10000,
"transfers": [
{ "type": "API", "status": "OK", "sent": 12345, "errors": 0 },
{ "type": "MQTT", "status": "OK", "connected": true, "topic": "/edge/point" },
{ "type": "Sparkplug", "status": "OK", "connected": true, "bdSeq": 3, "seq": 142, "devices": 10 }
]
}

Bei Erweiterungen werden die Anwendungsbeispiele auf dieser Seite aktualisiert.