# Operations-Datenbank

Eine Operations-Datenbank (OpsDB) ist eine Datenbank, die Metriken von Geschäftsprozessen sowie Anwendungs- und Systemstatistiken sammelt und diese für Analysezwecke bereitstellt.

## Anwendung

Eine Operations-Datenbank dient dazu, Daten über das Verhalten einer Geschäftslösung unter bestimmten Bedingungen zu sammeln. Die Daten können verwendet werden, um ein Dashboard zu befüllen und den aktuellen Zustand der Verfügbarkeit von Geschäftsprozessen zu visualisieren. Zudem besteht die Möglichkeit, die Daten auszuwerten, um eine Vorhersage des zukünftigen Anwendungsverhaltens zu ermöglichen.
Beispielsweise sei ein Geschäftsprozess (z. B. ein Verkaufsprozess) gegeben, der von der Verfügbarkeit mehrerer Systeme abhängig ist. Die OpsDB sammelt Informationen zum Zustand der einzelnen Systeme. Fällt ein System aus, so kommt es zu Fehlern in vom ausgefallenen System abhängigen Systemen, die in der OpsDB vermerkt werden. Die Auswertung des Status des Systems im Dashboard kann in Folge den Ausfall des Geschäftsprozesses (z. B. mit einer roten Ampel) anzeigen.
Eine weitere Anwendungsmöglichkeit ist die Auswertung der Historie, die es ermöglicht, den Ausfall eines Geschäftsprozesses mit dem Zustand der einzelnen Systeme zu korrelieren. Hierdurch wird auch eine Vorhersage des Verhaltens des Systems unter möglichen zukünftigen Bedingungen ermöglicht. Dazu zählt z. B. das Verhalten des Systems unter Last, etwa wenn ein Verkaufssystem durch eine Aktion zu Feiertagen mit besonders hohem Nutzeraufkommen zu rechnen hat. Die Vorhersage ermöglicht hierdurch die Planung von Tests des Systems in der Entwicklung sowie den bereitzustellenden (Hardware-)Ressourcen.
Vergleich von Monitoring-Technologien :
| Technologie | Historie | Vorhersage | Status | Verhalten |
| Logging | nein | nein | teils | ja |
| Monitoring | nein | nein | teils | ja |
| Operations-Datenbank | ja | ja | ja | nein |

## Struktur

Eine OpsDB bildet einen zu überwachenden Geschäftsprozess ab, der von einem oder mehreren Nodes (Dienste und Anwendungen, Server, Datenbanken, Webservices, Batch-Prozesse etc.) abhängig ist. Diese Nodes können ihrerseits von weiteren Nodes abhängig sein.
Für jeden Node werden Beobachtungen (Observations) gesammelt, die Auskunft über den Zustand des Systems geben.
Für Beobachtungen können zudem Erwartungen (Expectations) definiert werden, beispielsweise die Dauer, die ein Prozess maximal benötigen, ein Bereich, in dem sich ein Messwert befinden, oder ein Zustand, in dem sich eine Anwendung befinden soll.

## Daten, die gesammelt werden

Operations-Datenbanken sammeln eine Vielzahl von Parametern.
Übersicht über Daten in Operations-Datenbanken :
| Kategorie | Beispiele |
| Netzwerkverkehr | Anzahl und Frequenz von Page-Requests Anzahl von aktiven und durchgeführten Transaktionen Anzahl von aktiven und behandelten Sessions |
| Zustand von Ressourcen | Verfügbare und verwendete Ressourcen Maximal verwendete Ressourcen Anzahl der zusätzlich erstellten oder freigegebenen Ressourcen Anzahl geblockter Threads, welche auf eine Ressource warten |
| Datenbankverbindung | Anzahl von Datenbankfehlern Anzahl von Datenbankabfragen Durchschnittliche Dauer von Datenbankabfragen |
| Integrationspunkte und Schnittstellen | Zustand von Sicherungen (circuit breaker) Anzahl von Requests Anzahl von Request-Timeouts Durchschnittliche Beantwortungsdauer von Requests Anzahl von positiv beantworteten Requests Netzwerkfehler und Protokollfehler Anwendungsfehler Adressen der Endpunkte Anzahl und Maximalzahl gleichzeitig bearbeiteter Requests |
| Cache-Zustand | Anzahl von Elementen im Cache Speicherverbrauch Cache-Hit- und Cache-Miss-Rate Informationen zum Garbage Collector Maximalgrößen des Cache Dauer, um Objekte im Cache abzulegen |
| ↑ Als Ressourcen werden Elemente wie CPU-Auslastung, Speicherverbrauch und benötigte (virtuelle) Server bezeichnet. ||