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 Health; 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 Servlet 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?