# Monitoring

Siehe auch: Konzept

Screenshot of the Monitoring Page in DEV

Die Monitoring-Seite wird von uns nur in Englisch angeboten, da sie direkt aus der Laufzeitumgebung generiert wird und möglichst ungefiltert bleiben soll. Sie besteht aus sehr dynamischen Daten wie z.B. dem JVM Arbeitsspeicher, Importer-Status, Datenbankstatus etc.

Das Monitoring kann alternativ auch im JSON-Format abgerufen werden, indem ?json an die URL angehängt wird. Siehe "JSON" für mehr Details.

# Systemstatus

  • SUCCESS: Alles in Ordnung
  • NONE: Rein statische Informationen, wie etwa die Versionsnummer. Kann keine Fehler werfen.
  • WARNING: Potenzielles Problem.
  • ERROR: Sie sollten Maßnahmen gemäß der folgenden Liste einleiten.

# Übersicht ("Overall")

Diese Sektion enthält zwei Informationspunkte:

  1. Der genaue Zeitstempel des abgerufenen Reports im Format {YYYY}-{MM}-{DD}T{HH}:{mm}:{ss}.{SSSSS}Z
  2. Der schlechteste aller in der Liste befindlichen Service-Status. "ERROR" bedeutet, dass zumindest ein Service Fehler meldet.

# Liste der Monitoring-Sensoren

# Cleanup

  • Cleanup Journal: Wurde der cleanup-Job gestartet bzw. wann lief er zuletzt und wann wird er das nächste Mal laufen.

# Counter

  • TimeSeriesValues Counter: Wie viele Zeitreihenwerte existieren in der Datenbank, plus ein Zeitstempel der Information.

# DB Consistency

  • MeasurePoint.path: Überprüft, ob alle Messstellen einen relativen Pfad von der Wurzel des Messstellen-Baumes gesetzt haben.
  • Comment Assignments: Kommentare, die keine Objekte verlinken sind möglicherweise fehlerhaft bzw. Überreste von Lösch- und Umstrukturierungs-Vorgängen. Wir empfehlen, diese Kommentare zu löschen oder neu zuzuweisen.
  • Ungültige Messrunden-Werte: Falls eine Zeitreihe oder der darüberliegende Messpunkt deaktiviert wurden, sollten keine neuen Werte mehr für sie eingehen. In dem Fall, dass Zeitreihen oder Messstellen deaktiviert werden, während eine Messrunde in Gange ist, werden die Werte allerdings trotzdem noch eingetragen. Bitte überprüfen Sie die importierten Daten. Diese Warnung bleibt bis zum nächsten Service-Neustart

# SCADA-Import

  • Run-Status: Wann wurde der Importer-Job das letzte Mal gestartet und wann wird er das nächste Mal laufen.
  • Quarantine Count: Daten existieren in der Quarantänen-Tabelle der Staging-Datenbank. Nachdem etwaige Probleme gelöst und Daten erfolgreich importiert wurden, sollte die migrierten Daten aus der Quarantäne-Tabelle gelöscht werden.
  • Process Data Count: Wie viele Elemente im Moment in der Process-Tabelle verarbeitet werden sowie der früheste und späteste Zeitstempeln. Diese Daten sind stark volatil, wodurch ein "ERROR" oder "WARNING" so gut wie immer im nächsten Import-Zyklus aufgelöst wird. Falls diese Zeile allerdings etwas zu oft gelb erscheint, sollte vermutlich das Intervall zwischen Importen reduziert werden.
  • Mappings: Ob alle Einträge in der MASTER_DATA auf Zeitreihen in der MDA-Datenbank übertragen wurden. Im Moment wird die Gegenrichtung nicht untersucht.

# System

  • RAM: Wie viel Arbeitsspeicher im OSGi-Runner vorhanden und in Verwendung ist (inkludiert TISGraph-Speicherverbrauch) Die Schwellwerte für Warnung und Fehler sind in der OSGi-Konfiguration einstellbar.
  • Info: Versionsnummern für die installierte Java Virtual Machine (JVM) und für MDA, die Standard-Zeitzone und Standard-Locale.
  • DB Main: Ob die installierte MDA Datenbank erreichbar und vollständig migriert ist. Falls nicht, werden die meisten anderen Monitoring-Status vermutlich ebenso "ERROR" werfen.

# JSON

Wenn diese Information im JSON-Format abgerufen wird (üblicherweise mit dem relativen Pfad */mda-impl/monitoring?json), wird die resultierende JSON-Antwort diesem Format folgen:

{
  "overall" : {
    "serviceHealth" : "SUCCESS" //Oder anderer Status
    "time": "2021-08-24T11:39:25.992103Z"  //Ähnlicher Zeitstempel
  },
  "services : [
    {
      "health": "SUCCESS", 
      "category: "Cleanup", //Oben genannte Sensorentypen
      "name" : "Cleanup Journal", //Service-Name
      "desc: "desc" *(Some additional information from that service, usually dynamically generated.)*,
      "time": 0 *()*
    },
    .
    .
    .
    (Lists every service individually)
    .
    .
    .
    {
      "health": "NONE",
      "category": "System",
      "name": "Info",
      "desc": "JVM: 11.0.12;  App: 2.10.0.SNAPSHOT\nDefault Timezone: Europe/Vienna;  Locale: en_US",
      "time": 0
    }
  ]
}