Über unsMediaKontaktImpressum
Sponsored Post 28. November 2023

Modernes Performance-Monitoring mit Speedgain for Databases

Heutige IT-Landschaften werden immer heterogener. Viele Dienste werden als SaaS oder PaaS hinzugekauft, Teile der Infrastruktur sind vielleicht auch schon in einer Cloud gehostet, neue Anwendungen werden als Sammlung von Microservices bereitgestellt. Für herkömmliche monolithische Monitoring-Systeme kann es daher schwer sein, mit der rasanten Entwicklung Schritt zu halten. Jedes neue Quellsystem erfordert wieder neue Plugins, jede neue Metrik eine Anpassung.

Speedgain for Databases verfolgt ein offenes und modernes Architekturkonzept, das skalierbar und erweiterbar ist, sei es durch den Hersteller ITGAIN oder den Kunden selbst.

Ein modernes Überwachungs-Tool soll nicht nur alarmieren, sondern auch Informationen für Zustands-Analysen bereitstellen

Traditionelles Monitoring beschränkt sich auf das Sammeln von vordefinierten Metriken, für die entsprechende Grenzwerte und Alarme abgeleitet werden können. Letztlich ist das Ziel des Monitorings einen schnellen Überblick über die Systemlandschaft zu erhalten, um eventuelle Probleme oder Ausfälle schnellstmöglich zu erkennen. Das klassische Monitoring stößt bei der heutigen hybriden Systemlandschaft und den Anforderungen an höchste Verfügbarkeit an Grenzen. Zum einen wird nur reaktiv auf einen zuvor definierten Fehlerzustand reagiert und zum anderen fehlen oftmals Detaildaten für eine detaillierte Ursachenanalyse, da diese in der definierten Auswahl an Metriken nicht gesammelt wurden.

In den letzten Jahren hat sich daher das Konzept von Observability von Systemen bzw. Services durchgesetzt. Observability ist eine Eigenschaft eines (verteilten) Systems, welche beschreibt, wie gut die Ausführung von Programmen, der Status von Modulen und die Kommunikation zwischen den Komponenten anhand der ausgegebenen Daten abgeleitet werden kann. Dafür werden typischerweise Metriken, Logs und Traces durch das System zur Verfügung gestellt [1].

Grundsätzlich ist dies nichts neues. Für Analysen im Problemfall wurden genau diese Informationen der Systeme schon immer herangezogen. Dabei ergeben sich zwei wesentliche Herausforderungen:

  1. Die Daten vom Fehlerzustand des Systems sind nicht in jedem Fall verfügbar.
  2. Die Analyse erfolgt manuell und ist sehr zeitaufwändig.

Durch die Erhöhung der Automatisierung verschiedenster Prozesse der IT-Administration, beispielsweise in einem agilen DevOps-Umfeld, wird es aber zunehmend notwendig, diese Observability-Daten dauerhaft und rückwirkend, sowie einem größeren Personenkreis als nur dem Operations-Team zur Verfügung zu stellen. Die Darstellung der Observability-Daten im zeitlichen Verlauf erlaubt es, Abhängigkeiten zwischen verschiedenen Parametern besser zu verstehen und Abweichungen vom Normzustand schneller zu erkennen. Durch die Detailtiefe der Daten kann man nicht nur erkennen, dass ein Problem besteht, sondern auch den Auslöser der Problemsituation ausfindig machen.

Daraus ergeben sich nun drei Aufgaben für eine Observability-Software, also eine Software zum Beobachten von Systemen, die observable sind:

  1. Das Tool muss die Daten verschiedenartiger Systeme sammeln und darstellen können.
  2. Das Tool muss verschiedenartige Telemetrietypen, wie Metriken, Logs oder Traces, auswerten und darstellen können.
  3. Die Daten müssen im zeitlichen Verlauf abgespeichert und auswertbar sein.

Wenn man sich nun eine heterogene IT-Landschaft vorstellt, in der nicht nur die finalen produktiven Systeme überwacht werden müssen, sondern unter anderem auch alle Tools, die für die Automatisierung von Prozessen notwendig sind, wird die Komplexität dieser Anforderung deutlich.

Ein Lösungsansatz ist nun, spezialisierte Tools für spezifische Datenquellen oder Telemetrietypen (Logs, Traces) einzusetzen und deren gesammelte Daten in einem gemeinsamen Frontend zusammenzufügen und darzustellen.

Speedgain for Databases ist ein Observability-Tool spezialisiert auf relationale Datenbanken

Mit dem Produkt Speedgain for Db2 ist ITGAIN bereits viele Jahre erfolgreich im Performance-Monitoring für Db2-Datenbanken unterwegs. Allerdings kann die Software heutigen Anforderungen nur noch mit hohem Entwicklungsaufwand entsprechen. Grund hierfür ist eine monolithische Architektur, die eine Integration von anderen Datenquellen und eine Anpassung der Dashboards durch Nutzer nicht erlaubt. Daher hat die ITGAIN das neue Produkt Speedgain for Databases entwickelt, welches die gleiche fachliche Expertise mit einer modernen Architektur vereint. Das Produkt ist nun in der Lage, Daten aus verschiedenen Datenbanksystemen, wie Db2, SQL Server, Oracle oder PostgreSQL einfach und skalierbar zu integrieren.

Speedgain for Databases selbst besteht aus mehreren Diensten, die vorinstalliert in einzelnen Containern bereitgestellt werden. Die Backend-Komponenten "Collectors", "Services" und "Web Frontend" sind Eigenentwicklungen von ITGAIN, welche spezifische Funktionen für das Produkt bereitstellen. Eine schematische Darstellung der gesamten Architektur von Speedgain for Databases ist in Abb. 1 zu sehen.

Kernstück sind dabei die Kollektoren zusammen mit einer PostgreSQL-Datenbank. Die verwendete TimeScale-Erweiterung für PostgreSQL erlaubt es, die gesammelten Daten partitioniert und komprimiert abzulegen, so dass sowohl die Speicherung als auch die Abfrage großer Datenmengen performant möglich sind. Speedgain for Databases erreicht dabei typischerweise Komprimierungsraten von mehr als 90 Prozent. Dies erlaubt es den Anwendern, deutlich mehr Daten bei ähnlichem Speicherplatzverbrauch zu sammeln als in herkömmlichen Monitoring-Tools. Die Anwender können im Tool definieren, welche Daten sie von welcher Umgebung wie häufig sammeln möchten.

Für die Anzeige der Daten wird eine Standard-Installation von Grafana verwendet. Grafana ist ein beliebtes und verbreitetes Tool für die Darstellung von Observability-Daten aus verschiedenen Quellen. Schließlich wurde noch ein Nginx-Container für den Zugriff auf die Anwendung über einen einzigen Port verwendet.

Damit erfüllt Speedgain for Databases die Punkte 2 und 3 der Anforderungen an ein Observability-Tool. Für die Integration weiterer Datenquellen können zusätzliche Spezialtools oder Plugins für Grafana verwendet werden, um Punkt 1 der Anforderungen an ein Observability-Tool abzudecken.

Die kommende Version von Speedgain for Databases umfasst 116 Dashboards für fünf verschiedene relationale Datenbanksysteme

Die kommende Version 1.5.0 von Speedgain for Databases kann neben Db2, SQL Server und PostgreSQL nun auch Oracle und Azure SQL Databases überwachen. Jedes Datenbanksystem hat dabei eine eigene Liste von Dashboards, die nach verschiedenen Analyseschwerpunkten kategorisiert sind. Das einheitliche Look-and-feel der Grafana-Panels erleichtert den Wechsel zwischen den Datenbanksystemen. Gleichzeitig wird die Komplexität in der Bedienung durch das Hineindrillen in immer spezifischere Dashboards verringert, so dass Speedgain for Databases trotz der großen Anzahl von verfügbaren Dashboards immer noch überschaubar bleibt.

In einem Übersichts-Dashboard werden alle überwachten Systeme einer Technologie mit den wichtigsten Metriken übersichtlich dargestellt. Per Drilldown wird der Anwender von hier aus direkt auf die jeweils passenden Detail-Dashboards geführt. Auf diesen konzentriert sich die Anzeige auf ein einzelnes System. Über einen Filter kann schnell auf ein anderes System gewechselt werden, ohne dass man erneut über die Übersichtsseite starten muss.

Typische Szenarien, die mit Speedgain for Databases untersucht werden können, sind Blockierungen, Langläufer, Ressourcenauslastungen oder Plattenplatzverbrauch. Die Stärke von Speedgain for Databases als Observability-Tool ist jedoch, nicht nur bei bekannten Problemfällen zu unterstützten, sondern auch bei unbekannten Problemsituationen die Ursachenanalyse deutlich zu beschleunigen. Dies gelingt, weil Speedgain for Databases nicht nur ausgewählte Metriken bereitstellt, sondern alle verfügbaren Statistiken oder Performance-Daten relevanter Bereiche eines Datenbanksystems abspeichern kann.

Nie war es leichter in einer Überwachungslösung die Ansichten frei nach den eigenen Vorstellungen zusammenzustellen

Speedgain for Databases wird von Datenbankadministratoren entwickelt, die gleichzeitig auch Anwender des Produktes sind. Die finale Erstellung der Dashboards wird vom Produktteam genauso durchgeführt, wie es später auch für den Anwender möglich ist. Der Einsatz von bekannten Produkten wie PostgreSQL und Grafana hilft dem Anwender, sich zügig in der Anwendung zurechtzufinden und mit geringem Einarbeitungsaufwand eigene Ansichten zu erstellen. Nie war es leichter in einer Monitoring-Lösung die verschiedenen Metriken und Anzeigen frei nach den eigenen Vorstellungen anzuordnen und zu filtern.

Ein Dashboard in Grafana besteht aus mehreren Panels, wovon jedes eine vollständig eigene Einheit mit Datenquelle, Abfrage und Darstellungsart ist. Die Panels können leicht von einem Dashboard auf ein anderes kopiert werden. Auf diese Weise kann sich der Anwender Panels von vorhandenen Dashboards in einer neuen Übersicht zusammenstellen und ergänzen. Wie einfach dies geht, kann man sich unter Create a Custom Board ansehen [2].

Will man die Abfrage anpassen, um z. B. weitere oder andere Filter zu integrieren oder aber ein anderes Feld anzuzeigen, bietet Grafana einen Assistenten für PostgreSQL, mit dem auch Abfragen mit komplexeren SQLs, wie z. B. Window-Functions für die Darstellung des Deltas von inkrementellen Metriken, wie sie häufig bei statistischen Datensammlern zur Verfügung gestellt werden.

Darüber hinaus kann man die Abfragen auch ohne Assistentenunterstützung selbst in SQL schreiben. Die Namen und Spalten der Tabellen sind in Speedgain for Databases dabei im Original des jeweiligen Datenbanksystems belassen, so dass sich ein Datenbankadministrator schnell in den erfassten Daten zurechtfinden kann.

Das mitgelieferte Grafana kann verwendet werden, um weitere Datenquellen zu integrieren

Will man neben den relationalen Datenbanken auch Observability-Daten weiterer Systeme in Speedgain for Databases integrieren, so hat man hierfür verschiedene Möglichkeiten. Dabei kommt es auf das Quellsystem und die Art der zu erfassenden Daten an, wie diese optimal in Speedgain for Databases integriert werden können. So müssen Log-Daten zum Beispiel nicht noch zusätzlich zu verschiedenen Zeitpunkten persistiert werden. Hier ist es ausreichend, wenn diese lang genug rückwirkend zur Verfügung stehen. Manche Quellsysteme können die Log-Daten bereits selbst entsprechend lange vorhalten und stellen diese in einem Format zur Verfügung, welches von Grafana direkt verarbeitet werden kann, z. B. CloudWatch oder Azure Monitor. Für andere Systeme ist es erforderlich, ein zusätzliches Tool, wie z. B. Loki, einzusetzen, um die Log-Daten zentralisiert außerhalb der Anwendung zu speichern. Solche Tools haben den Vorteil, dass sie eine für Log-Daten optimierte Speicherstruktur verwenden, die deutlich weniger Speicherplatz verbraucht und gleichzeitig performant abgefragt und gefiltert werden kann.

Für die Darstellung der neuen Daten in Grafana wird eine neue Datenquelle benötigt. Viele gängige Datenquellen sind bereits in einer Standard-Installation von Grafana enthalten. Weitere Datenquellen sind über die Installation von Plugins verfügbar. Ein Plugin liefert dabei die Unterstützung für bestimmte Datenquellen bzw. Produkte, kann aber auch bereits fertige Dashboards beinhalten. Manche Plugins liefern auch neue Panel-Typen für bestimmte Datenquellen.

Die Liste der verfügbaren Plugins ist lang und wird von der Community ständig erweitert. Abb. 2 zeigt einen Ausschnitt der verfügbaren Datenquellen-Plugins von der Grafana-Homepage.

Damit ist Grafana ein universelles Werkzeug, um Daten aus den verschiedensten Quellen zu repräsentieren. Speedgain for Databases erlaubt es dem Anwender, von diesen Funktionen Gebrauch zu machen und Grafana nach seinen Wünschen einzurichten. Umgekehrt ist es auch möglich, dass eine bereits vorhandene Installation von Grafana verwendet wird, um die Dashboards von Speedgain for Databases einzubinden.

Fazit

Durch die gezielte Wahl von etablierten Open-Source-Produkten und die Adaption einer modernen Software-Architektur ist es ITGAIN gelungen, mit Speedgain for Databases ein universelles Observability-Tool für Datenbanken zu erschaffen, welches sich gut an die Anforderungen in hybriden Umgebungen anpasst und in bestehende Tool-Landschaften integrieren lässt.

Neugierg auf Speedgain geworden? Mehr Informationen sowie eine kostenfreie Testversion finden Sie hier.
 

Autor:innen
Markus Fraune

Markus Fraune

Markus Fraune ist Db2-Admin und IT-Consultant bei ITGAIN (seit 2015). Er bertreut mehrere Kunden mit allen Arten von Db2-Datenbanken (von kleinem OLTP bis zu riesigen DWH/OLAP).
>> Weiterlesen

Melanie Krumbein

Melanie Krumbein ist seit über 20 Jahren in IT-Projekten tätig. Ihr Schwerpunkt liegt dabei auf der Microsoft-SQL-Server-Produktgruppe.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben