Health

Unter der /system/health-Subdomain kann man abrufen, in welchem Zustand DDS und dessen Verbindungen z.B. zu den Quelldatenbanken aktuell ist.

Der HealthCheck basiert technologisch derzeit auf Felix Healthopen in new window; wir behalten uns aber einen späteren Austausch vor.

Die Ausgabesprache der HealthChecks ist grundsätzlich in Englisch gehalten, da die Texte direkt aus der Laufzeitumgebung generiert werden und diese möglichst nicht durch das Monitoring beeinflusst oder dieses durch unnötige Komplexität fehlerbehaftet sein soll. Die Zielgruppe aller HealthChecks sind Techniker.

Der Gesamtstatus eines Aufrufs ist der schlechteste Status aller (gefilterten) Zeilen.

ITEG hat sich explizit gegen das Nutzen des Status TEMPORARILY_UNAVAILABLE ("System is not functional at the moment but is expected to become OK (or at least WARN) without action.") entschieden, um die Anzahl der unterschiedlichen Zustände von DDS zu reduzieren und damit die Integration in eine externe Monitoringsoftware (wie Nagios oder Icinga) zu vereinfachen.

In den folgenden Kapiteln sind Filter- und Ausgabemöglichkeiten sowie die einzelnen Komponenten mit möglichen Reaktionen beschrieben.

Unterstützte URL-Parameter

Die folgenden Parameter werden vom Felix Health Check Servletopen in new window unterstützt. Die Beschreibung stammt aus der originalen Dokumentation.

Ein Beispiel für so eine URL ist: http://localhost/system/health?tags=cpu&httpStatus=CRITICAL:503,OK:200&format=verbose.txt mit anderer Schreibweise: http://localhost/system/health/cpu.verbose.txt?httpStatus=CRITICAL:503,OK:400 welches nur Elemente mit dem Tag "cpu" anzeigt, im textuellen Format und mit HTTP codes basierend auf den Gesamt-Status.

  • tags:Comma-separated list of health checks tags to select - can also be specified via path, e.g. /system/health/tag1,tag2.json. Exclusions can be done by prepending '-' to the tag name
  • names:Comma-separated list of health check names to select. Exclusions can be done by prepending '-' to the health check name
  • format:Output format, html|json|jsonp|txt|verbose.txt - an extension in the URL overrides this
  • httpStatus:Specify HTTP result code, for example CRITICAL:503 (status 503 if result >= CRITICAL) or CRITICAL: 503,HEALTH_CHECK_ERROR:500,OK:418 for more specific HTTP status
  • combineTagsWithOr:Combine tags with OR, active by default. Set to "false" to combine with AND
  • forceInstantExecution:If true, forces instant execution by executing async health checks directly, circumventing the cache (2sec by default) of the HealthCheckExecutor
  • timeout:(msec) a timeout status is returned for any health check still running after this period. Overrides the default HealthCheckExecutor timeout
  • hcDebug:Include the DEBUG output of the Health Checks
  • callback:name of the JSONP callback function to use, defaults to processHealthCheckResults

DDS importer for *

Hier werden die diversen automatischen Importer für Datenpunkte & Datenvarianten überwacht. Es wird der aktuelle Status und ggf. die zuletzt gültige Statistik angezeigt.

Wenn hier ansonsten Fehler aufscheinen, sollten DDS-Sysadmins benachrichtigt und von diesen im Applikationslog detaillierter recherchiert werden, was für Fehler aufgetreten sind. In der Regel sollten dies Daten- oder Verbindungsfehler sein.

Importer, die laut Konfiguration deaktiviert sind, stehen standardmäßig auf OK und zeigen das im Status an.

Alle Importe zeigen Fehler an, wenn Sie entweder noch nie gelaufen sind (WARN) oder zu lange nicht mehr gelaufen sind (CRITICAL).

TIP

Sie können über die URL-Parameter ?tags=importer auf alle Importer eingrenzen.

DDS KSV Importer

Der Importer für KSV Kennungen (KSV-Suche).

DDS Units Importer

Der Importer aus der standardisierten Einheiten-Datenbank, SQL-Datenbankname 'UNITS'.

DDS data point count

Hier wird die Gesamtzahl an Datenpunkten angezeigt.

Hier ist eine maximal zulässige Anzahl hinterlegt, nach der der Health "kritisch" wird, da unsere Performanztests diese Zahl nicht mehr abbilden.

DDS data variant count

Hier wird die Gesamtzahl an Varietäten angezeigt.

Hier ist eine maximal zulässige Anzahl hinterlegt, nach der der Health "kritisch" wird, da unsere Performanztests diese Zahl nicht mehr abbilden.

OneTimeScheduler Statistics *

Der Status der Scheduling-Services, aufgeteilt durch Zuständigkeitsbereiche (Exportjobs, Preview-Export und System/Sonstiges).

Zeigen an, wie viele Jobs momentan in der Warteschleife sind, laufen und fertig sind.

WISKI Availability

Ein HealthCheck, der die Erreichbarkeit der WISKI-Schnittstelle prüft.

Ist im Status CRITICAL, wenn der letzte Versuch, WISKI zu erreichen, erfolglos war.

Zeigt außerdem noch an, wann der letzte Fehler aufgetreten ist.

Unit Mapping Integrity

Gibt an, ob Einheiten-Mappings im System ungültig sind (d.h., sind gemapped auf Einheiten, die im System nicht auftauchen). Gibt außerdem an, wie viele Einheiten in der Datenbank von keinem Datenpunkt genutzt werden.

JDBC *

Datenbank Verbindungen (low-level): es werden regelmässig Queries abgesetzt, die prüfen, ob die Datenbank noch antwortet.

In der Regel sind hier Firewall- oder Datenbank-Wartungszeiten zu kontrollieren und bei mehrstündiger Persistenz des Fehlers die Erreichbarkeit, Authentifizierung und Authorisierung der Datenbankverbindung technisch zu prüfen. Theoretisch könnte auch ein Update der Applikations oder der Zieldatenbank zu diesem Zustand führen.

DDS

Dies ist unsere interne Datenbank und sollte immer erreichbar sein. Derzeit liegt sie in einem Postgres-Container neben der Applikation.

DDS_AUDITLOG

Dies ist unsere interne Datenbank für dauerhafte Logs und sollte immer erreichbar sein. Derzeit liegt sie in einem Postgres-Container neben der Applikation.

FANCYMAIL

Dies ist unsere interne Datenbank für den EMail-Versand und sollte immer erreichbar sein. Derzeit liegt sie in einem Postgres-Container neben der Applikation.

Applikationsstatus

  • Bundles Started: Die eingetragenen technischen "bundles" müssen gestartet sein. Unsere DDS-Applikation selber hat zwar die Folgenden, eingetragen ist in der Regel aber ein Basisbundle.

    • dds.api
    • dds.external-api
    • dds.impl
    • dds.web

Grundsystem

  • CPU

  • Memory

  • Disk Space: Hier wird der prinzipiell verfügbare Speicherplatz geprüft. Im Falle einer Quota wird immer das technisch zurückgegebene Limit verwendet, d.h. es könnten Speicherfehler durch diese Quota auftreten, bevor dieser HealthCheck anschlägt.

  • OSGi Framework Ready Check: In welchem Status ist das Grundsystem?