Überwachungs-Dashboard
OmniDB verfügt über eine großartige Funktion namens Monitoring Dashboard (Überwachungs-Dashboard). Ein Bild sagt bekanntlich mehr als tausend Worte, werfen Sie also einen Blick darauf:

Wie Sie sehen, handelt es sich um eine neue Art von innerem Tab, der einige Diagramme und Raster anzeigt. Dieser innere Tab Monitoring öffnet sich automatisch, sobald Sie den Wurzelknoten des Baums (den Knoten PostgreSQL) erweitern. Sie können ihn jederzeit geöffnet lassen oder schließen. Um ihn erneut zu öffnen, klicken Sie mit der rechten Maustaste auf den Wurzelknoten und dann auf Dashboard.

Das Dashboard besteht aus praktischen Informationskacheln namens Monitoring Units (Überwachungseinheiten). Hier ein Beispiel für eine Monitoring Unit und ihre Oberflächenelemente:

- 1: Titel der Monitoring Unit;
- 2: Aktualisiert die Monitoring Unit. Je nach Typ aktualisiert ein Klick auf diese Schaltfläche entweder die gesamte Zeichenfläche, oder das Diagramm holt sich einfach einen neuen Satz von Werten;
- 3: Pausiert die Monitoring Unit;
- 4: Intervall in Sekunden für die automatische Aktualisierung;
- 5: Entfernt die Monitoring Unit aus dem Überwachungs-Dashboard;
- 6: Zeichenfläche, die je nach Typ der Monitoring Unit unterschiedlich ausfällt.
Arten von Monitoring Units
Es gibt 3 Arten von Monitoring Units:
- Grid (Raster): Die einfachste Art, führt lediglich von Zeit zu Zeit eine Abfrage aus und zeigt die Ergebnisse in einem Datenraster an.

- Chart (Diagramm): Bei jeder Aktualisierung wird ein komplett neues Diagramm gezeichnet. Der alte Satz von Werten geht verloren. Das ist besonders nützlich für Kreisdiagramme, es können aber auch andere Diagrammtypen verwendet werden.

- Timeseries (Zeitreihe): Dies ist vielleicht die nützlichste Art von Monitoring Unit. Es handelt sich um ein Diagramm, das bei jeder Aktualisierung einen neuen Satz von Werten anhängt. Linien- oder Balkendiagramme eignen sich für diesen Typ am besten. Die letzten 100 Wertesätze werden clientseitig von der Komponente vorgehalten, damit der Benutzer sie einsehen kann.

Einheiten im Dashboard ein- und ausblenden
Klicken Sie auf die Schaltfläche Refresh All (Alle aktualisieren), werden alle Monitoring Units auf einmal aktualisiert. Sie können unerwünschte Monitoring Units auch entfernen, indem Sie auf die Schaltfläche Remove (Entfernen) klicken. Entfernen wir nun alle Einheiten aus dem Dashboard, sodass es leer wird:

Die 17 in OmniDB integrierten Einheiten (PostgreSQL- und MySQL-Servermetriken — Transaktionsrate, Backends, WAL-Produktion, Datenbank-/Tabellengröße und so weiter) laufen als nativer Code und benötigen keine zusätzliche Installation in der Datenbank.

Jetzt, da unser Dashboard leer ist, fügen wir einige Einheiten hinzu. Klicken Sie auf die Schaltfläche Manage Units (Einheiten verwalten).

Klicken Sie auf die grüne Aktion, um eine der eingebauten Einheiten hinzuzufügen — z. B. Backends und Database Size (Datenbankgröße). Warten Sie einige Sekunden, und Sie erhalten ein Dashboard wie dieses:

Auf dieselbe Weise können Sie beliebige Einheiten hinzufügen und entfernen, um das Dashboard ganz nach Ihren Wünschen anzupassen.
Eigene Monitoring Units schreiben
Mit OmniDB können Sie eigene Einheiten schreiben oder bestehende anpassen, indem Sie eine einzige SQL-Abfrage verfassen — dieselbe Verbindung und dieselben Berechtigungen, die Ihr SQL-Editor bereits hat, nur dass sie zeitgesteuert statt auf Abruf läuft. Es gibt keine separate Skriptsprache und keine Sandbox zu erlernen.
Hinweis: Da die Abfrage unbeaufsichtigt in einem Aktualisierungsintervall
erneut ausgeführt wird, werden nur SELECT- (oder WITH ... SELECT-)
Abfragen akzeptiert — eine versehentlich eingefügte destruktive Anweisung wird
von vornherein abgelehnt, statt still und heimlich zeitgesteuert ausgeführt zu
werden.
Um eine neue Monitoring Unit zu erstellen, klicken Sie im Dashboard auf die Schaltfläche Manage Units und anschließend auf die Schaltfläche New Unit (Neue Einheit). Es öffnet sich eine neue Art von innerem Tab mit einem Namen, einem Typ-Dropdown, einem Aktualisierungsintervall und einem einzelnen SQL-Abfrage-Editor (sowie einem Diagrammtyp-Dropdown, das nur bei Einheiten vom Typ Chart angezeigt wird).
Die Form der Abfrage hängt vom Typ der Einheit ab:
-
Grid: keine bestimmte Form — welche Spalten und Zeilen die Abfrage zurückgibt, werden direkt zum Raster. Zum Beispiel:
SELECT * FROM pg_stat_activity -
Chart: eine Zeile pro Kategorie — die erste Spalte ist die Beschriftung, die übrigen Spalte(n) sind je eine Serie (der Spaltenname wird zum Serien-Namen). Wählen Sie den Diagrammtyp (Balken, Kreis, Donut oder Linie) über das Dropdown neben dem Typ-Auswahlfeld. Zum Beispiel ein Kreisdiagramm der Datenbankgrößen:
SELECT datname, round(pg_catalog.pg_database_size(datname) / 1048576.0, 2) AS size_mb FROM pg_catalog.pg_database WHERE datname NOT IN ('template0', 'template1') -
Timeseries: genau eine Zeile — jede numerische Spalte wird zu einer fortlaufend angehängten Linienserie, die im konfigurierten Intervall aktualisiert wird. Zum Beispiel die Datenbankgröße über die Zeit verfolgen:
SELECT round(sum(pg_catalog.pg_database_size(datname)) / 1048576.0, 2) AS total_size_mb FROM pg_catalog.pg_database WHERE NOT datistemplate
Schreiben (oder fügen Sie) die Abfrage in den SQL-Abfrage-Editor ein und klicken Sie dann auf die Schaltfläche Test, um sie in der Vorschau-Zeichenfläche darzustellen — Sie können sie beliebig oft testen. Sobald Sie zufrieden sind, geben Sie der Einheit einen Namen, legen Sie ein Aktualisierungsintervall fest und klicken Sie auf Save (Speichern). Schließen Sie den Bearbeitungs-Tab, und die neue Einheit erscheint in der Einheitenliste, bereit, dem Dashboard hinzugefügt zu werden (grüne Aktion), genau wie eine eingebaute Einheit.