In der heutigen digitalen Welt sind enorme Datenmengen zu verwalten, insbesondere wenn es um zeitbasierte Metriken geht, die für das Monitoring und die Analyse von Systemen unerlässlich sind. Google, als eines der größten Technologieunternehmen weltweit, steht vor der Herausforderung, eine Massive Menge an Zeitreihendaten zu erfassen, zu verarbeiten und zu analysieren – und zwar in Echtzeit. Hier setzt Monarch an, eine speziell entwickelte, planetenweit skalierbare In-Memory Zeitreihendatenbank, die von Google als Dienst für das unternehmensweite Monitoring genutzt wird. Monarch wurde konzipiert, um die komplexen Anforderungen von Google-Anwendungen und -Infrastrukturen zu erfüllen, die Milliarden von Nutzern weltweit bedienen. Dabei unterstützt es die Überwachung von Verfügbarkeit, Korrektheit, Leistung und Systemauslastung.
Die gigantische Infrastruktur hinter Diensten wie YouTube, Gmail oder Google Maps stellt umfangreiche Anforderungen an Monitoringlösungen, die von der Erhebung über das Speichern bis hin zur Abfrage von Zeitreihendaten reichen. Ihr Umfang und ihre Komplexitätsprach prägen maßgeblich das Design von Monarch. Monarch basiert auf einer regionalisierten Architektur, die Zuverlässigkeit und Skalierbarkeit gewährleistet. Diese Struktur erlaubt es, Daten lokal in unterschiedlichen Regionen zu halten und gleichzeitig eine globale Sicht auf die Daten zu ermöglichen. Auf diese Weise wird die Ausfallsicherheit erhöht und die Latenz für Abfragen verringert.
Trotzdem stellt Monarch einen einheitlichen globalen Dienst dar, der über verschiedene Regionen hinweg konsistent ist. Die Kombination aus verteiltem Design und globaler Koordination stellt sicher, dass umfassende Datenanalysen auch bei enormen Datenmengen möglich sind. Ein wesentliches Merkmal von Monarch ist seine Fähigkeit, binnen Sekunden Terabytes an Zeitreihendaten in den Arbeitsspeicher aufzunehmen und dadurch äußerst schnelle Abfragezeiten zu ermöglichen. Dies ist ein entscheidender Vorteil bei der Analyse von Daten, da aktuelle und historische Metriken sofort verfügbar sind, um etwa Betriebsstörungen zu erkennen oder Performanceengpässe zu identifizieren. Zusätzlich steht ein leistungsfähiges relationales Datenmodell zur Verfügung, das eine flexible und expressive Abfragesprache unterstützt.
Dies erlaubt es Teams, komplexe Abfragen durchzuführen, welche über einfache Zeitreihen-Analysen hinausgehen und erweiterte Auswertungen und Korrelationen ermöglichen. Monarch entstand als direkte Antwort auf die Limitierungen und Herausforderungen des Vorgängersystems Borgmon, das ursprünglich die interne Überwachung bei Google übernommen hatte. Borgmon revolutionierte seinerzeit das Monitoring, indem es Zeitreihendaten als zentrale Messgröße etablierte. Dennoch wiesen sich mit wachsender Verbreitung und Datenmengen technische und operationelle Schwachpunkte auf. Borgmon war stark dezentralisiert gestaltet, was die Verwaltung einzelner Instanzen für viele Teams zu einem vielschichtigen Problem machte.
Zudem fehlten Mechanismen zur klaren Schematisierung von Messwertdimensionen, was zu semantischen Unklarheiten bei Abfragen führte. Ein weiterer Nachteil war die mangelnde Unterstützung komplexerer Datentypen wie Histogramme, die für fortgeschrittene statistische Auswertungen wichtig sind. Auch das manuelle Sharding und die Einrichtung spezieller Abfragebäume erhöhten den administrativen Aufwand erheblich. Mit Monarch verfolgt Google einen zentralisierten Multi-Tenant-Ansatz. Dies ermöglicht es, zahlreiche Teams und Services in einer einzigen Plattform zu bedienen und gleichzeitig die Verwaltung der Monitoring-Infrastruktur zentral zu halten.
So können beispielsweise Dienstübergreifende Abfragen und Korrelationen von Metriken deutlich einfacher umgesetzt werden, was bei der Fehlersuche und Analyse essenziell ist. Darüber hinaus besitzt Monarch eingebaute Mechanismen zur automatischen Skalierung und zum Self-Healing, die den Betrieb auch in extrem großen Umgebungen stabil halten. Ebenfalls bedeutend ist Monarchs Unterstützung für komplexere Datenstrukturen. Die Datenbank kann Histogramme speichern und verarbeiten, was besonders bei der Ermittlung von Verteilungsmetriken wie Perzentilen hilfreich ist. Dies erhöht die Aussagekraft der gesammelten Daten und erlaubt detailliertere Analysen der Systemleistung und Nutzererfahrung.
Die fortschrittlichen Funktionen der Abfragesprache erweitern die Möglichkeiten für Entwickler und Operations-Teams, maßgeschneiderte Dashboards, Benachrichtigungen und Ad-hoc-Abfragen zu realisieren. Auf der technischen Ebene nutzt Monarch eine ausgeklügelte Kombination aus In-Memory Speicherung für die schnellen Zugriffe und persistenter Speicherung, um Daten dauerhaft zu sichern und historische Analysen zu ermöglichen. Die Verteilung der Daten erfolgt über Regionsgrenzen hinweg, wobei gleichzeitig sichergestellt wird, dass globale Konsistenzanforderungen erfüllt sind. Das Design der Abfrage- und Konfigurationsschicht sorgt dafür, dass alle Regionen wie ein einheitliches System funktionieren und die Nutzer keine Komplexität bei der Handhabung verteilter Systeme spüren. Monarch wurde in den letzten zehn Jahren kontinuierlich weiterentwickelt, basierend auf umfangreichen Betriebserfahrungen.
Dabei lernte das Entwicklungsteam viel über den Umgang mit großen verteilten Systemen, den Umgang mit massiv skalierenden Datenvolumina und der Bereitstellung von zuverlässigen Diensten für Tausende von Teams mit sehr unterschiedlichen Anforderungen. Die Erkenntnisse wurden in Architekturentscheidungen und neue Features umgesetzt, wodurch das System heute als eines der weltweit leistungsfähigsten Zeitreihendatenbanken gilt. Für Unternehmen und Entwickler, die ähnliche Anforderungen an Monitoring und Analyse haben, bieten sich mit Monarch wichtige Impulse. Das Konzept einer global verteilten, dennoch zentral gesteuerten In-Memory Datenbank für Zeitreihen ist beispielhaft für den Umgang mit extrem hohen Datenvolumen in Echtzeit. Die Kombination aus Skalierbarkeit, Zuverlässigkeit, Vielseitigkeit und einfacher Bedienbarkeit zeigt, wie moderne Monitoring-Systeme gestaltet sein sollten.
Abschließend lässt sich sagen, dass Monarch ein wegweisendes Projekt auf dem Gebiet der Zeitreihen-Datenbanken darstellt. Seine Architektur und Technologien bilden eine robuste Grundlage für das Monitoring bei Google und stellen gleichzeitig einen Maßstab für zukünftige Entwicklungen in der Branche dar. Die offenen Erkenntnisse aus der Monarch-Entwicklung können Unternehmen jeder Größe dabei helfen, ihre eigenen Systeme zur Überwachung und Analyse zu optimieren und so eine bessere Betriebsstabilität und eine höhere Dienstqualität zu erreichen.