Lassen Sie uns über die Zeitreihendatenbank für verteilte Überwachung sprechen.
Eine Zeitreihendatenbank ist für Zeitstempel- oder Zeitreihendaten optimiert. Zeitreihendaten sind Messungen oder Ereignisse, die über einen bestimmten Zeitraum verfolgt, überwacht, gesammelt oder aggregiert werden. Dies können Daten sein, die aus Herzschlägen von Bewegungsverfolgungssensoren, JVM-Metriken aus Java-Anwendungen, Markthandelsdaten, Netzwerkdaten, API-Antworten, Prozessverfügbarkeit usw. erfasst wurden.
Zeitreihendatenbanken werden vollständig mit zeitgestempelten Daten angepasst, die indiziert und effizient so geschrieben sind, dass Sie Zeitreihendaten einfügen können. Sie können diese Zeitreihendaten viel schneller abfragen als in einem relationalen ODER NoSQL-Datenbank.
In letzter Zeit hat es viel Popularität gewonnen. Und warum nicht? Es macht einen fantastischen Job für Unternehmen und Überwachung des IT-Betriebs. Die gute Nachricht ist: Es gibt viele Optionen zur Auswahl, und die meisten davon sind Open Source.
InfluxDB
InfluxDB ist eine der beliebtesten Zeitreihendatenbanken unter DevOps, die in Go geschrieben ist. InfluxDB wurde von Grund auf entwickelt, um eine hochgradig skalierbare Datenerfassungs- und Speicher-Engine bereitzustellen. Es ist sehr effizient beim Sammeln, Speichern, Abfragen, Visualisieren und Ergreifen von Aktionen für Streams von Zeitreihendaten, Ereignisse und Metriken in Echtzeit.
Es bietet Richtlinien für Downsampling und Datenaufbewahrung, um die Speicherung von Daten mit hohem Wert und hoher Genauigkeit im Speicher und von Daten mit niedrigerem Wert auf der Festplatte zu unterstützen. Es basiert auf einer Cloud-nativen Methode und bietet Skalierbarkeit für mehrere Bereitstellungstopologien, einschließlich lokaler Cloud- und Hybridumgebungen.
InfluxDB ist eine Open-Source-Lösung und unternehmensfähig. Für die Interaktion mit Daten wird InfluxQL verwendet, das einer Strukturabfragesprache sehr ähnlich ist. Die neueste Version bietet Agenten, Dashboards, Abfragen und Aufgaben in einem Toolkit. Es ist ein All-in-One-Tool zum Dashboarding, Visualisieren und Warnen.
Eigenschaften
- Hohe Leistung für Zeitreihendaten mit hoher Leistung während der Aufnahme und Echtzeitabfrage
- InfluxQL zur Interaktion mit Daten, bei denen es sich um eine SQL-ähnliche Abfragesprache handelt
- Kernkomponente des TICK-Stacks (Telegraf, InfluxDB, Chronograf und Kapacitor).
- Plugin-Unterstützung für Protokolle wie collectd, Graphite, OpenTSDB für die Datenaufnahme
- Kann Millionen von Datenpunkten in nur 1 Sekunde verarbeiten
- Aufbewahrungsrichtlinien zum automatischen Entfernen veralteter Daten
Da es Open Source ist, können Sie es herunterladen und auf Ihrem Server starten. Sie bieten jedoch InfluxDB Cloud für AWS, Azure und GCP an.
Prometheus
Prometheus ist eine Open-Source-Überwachungslösung, mit der Erkenntnisse aus Metrikdaten verstanden und erforderliche Warnungen gesendet werden können. Es verfügt über eine lokale Zeitreihendatenbank auf der Festplatte, in der Daten in einem benutzerdefinierten Format auf der Festplatte gespeichert werden.
Das Datenmodell von Prometheus ist mehrdimensional und basiert auf Zeitreihen. Es speichert alle Daten als Streams von Zeitstempelwerten. Dies ist sehr nützlich, wenn Sie mit einer vollständig numerischen Zeitreihe arbeiten. Das Sammeln und Abfragen von Microservices-Daten ist eine der Stärken von Prometheus.
Es ist zur Visualisierung eng in Grafana integriert. Wenn Sie ein Neuling sind, lesen Sie dies Prometheus und Grafana Einführung Artikel.
Eigenschaften
- Hat ein mehrdimensionales Modell, das Metriknamen- und Schlüssel-Wert-Paare (Beschriftungen) verwendet
- PromQL zum Abfragen von Zeitreihendaten, um Tabellen, Warnungen und Ad-hoc-Diagramme zu generieren
- Verwendet den HTTP-Pull-Modus zum Sammeln von Zeitreihendaten
- Verwendet das Zwischen-Gateway, um Zeitreihen zu übertragen
Prometheus hat Hunderte von Exporteure zum Exportieren der Daten von Windows, Linux, Java, Datenbank, APIs, Website, Serverhardware, PHP, Messaging und mehr. Überprüfen Sie dies, um Linux zu überwachen Prometheus + Grafana Setup.
TimescaleDB
ZeitskalaDB ist eine relationale Open-Source-Datenbank, die SQL für Zeitreihendaten skalierbar macht. Diese Datenbank basiert auf PostgreSQL.
Es bietet zwei Produkte - die zuerst Option ist eine kostenlose Community Edition, die Sie auf Ihrem Server installieren können. Das zweite Option ist die TimescaleDB Cloud, in der Sie eine vollständig gehostete und verwaltete Infrastruktur in der Cloud für Ihre Bereitstellungsanforderungen erhalten.
Es kann zur DevOps-Überwachung, zum Verstehen von Anwendungsmetriken, zum Verfolgen von Daten von IoT-Geräten, zum Verstehen von Finanzdaten usw. verwendet werden. Sie können Protokolle, Kubernetes-Ereignisse, Prometheus-Metriken und sogar benutzerdefinierte Metriken messen.
Für Produktbesitzer können Sie damit die Leistung eines Produkts im Laufe der Zeit verstehen, um strategische Entscheidungen für das Wachstum zu treffen.
Eigenschaften
- Führen Sie Abfragen 10-100X schneller als PostgreSQL, MongoDB aus
- Kann horizontal auf Petabyte skaliert werden und schreibt Millionen von Datenpunkten pro Sekunde
- Sehr ähnlich zu PostgreSQL, so einfach für Entwickler und Administratoren zu bedienen
- Kombiniert relationale und Zeitreihen-Datenbankfunktionen, um leistungsstarke Anwendungen zu erstellen.
- Eingebaute Algorithmen und Leistungsmerkmale, um eine Menge Kosten zu sparen.
Graphite
Graphite ist eine All-in-One-Lösung zum Speichern und effizienten Visualisieren von Echtzeit-Zeitreihendaten. Graphit kann zwei Dinge tun, Zeitreihendaten speichern und Diagramme nach Bedarf rendern. Es werden jedoch keine Daten für Sie gesammelt. Dazu können Sie Tools wie Collectd, Ganglia, Sensu, Telegraf usw. verwenden.
Es hat drei Komponenten - Kohlenstoff, Flüstern, funktioniert Graphit-Web. Carbon empfängt die Zeitreihendaten, aggregiert sie und speichert sie auf der Festplatte. Whisper ist ein Zeitreihen-Datenbankspeicher, in dem die Daten gespeichert werden. Graphite-Web ist das Front-End zum Erstellen von Dashboards und zum Visualisieren der Daten.
Graphitmerkmale:
- Das Metrikformat, in dem die Daten übermittelt werden, ist unkompliziert.
- Umfassende API zum Rendern der Daten und Erstellen von Diagrammen, Dashboards und Grafiken
- Bietet eine Vielzahl von Funktionen für statistische Bibliotheken und transformative Renderings
- Verkettet mehrere Renderfunktionen, um eine Zielabfrage zu erstellen.
QuestDB
QuestDB ist eine relationale spaltenorientierte Datenbank, die Echtzeitanalysen für Zeitreihendaten durchführen kann. Es funktioniert mit SQL und einigen Erweiterungen, um ein relationales Modell für Zeitreihendaten zu erstellen. QuestDB wurde von Grund auf neu codiert und weist keine Abhängigkeiten auf, die die Leistung verbessern.
QuestDB unterstützt relationale und Zeitreihenverknüpfungen, die bei der Korrelation der Daten helfen. Der einfachste Weg, um mit QuestDB zu beginnen, besteht darin, es in einem Docker-Container bereitzustellen.
QuestDB-Funktionen:
- Interaktive Konsole zum Importieren von Daten per Drag & Drop und Abfragen
- Unterstützt in Cloud-nativ (AWS, Azure, GCP), lokal oder eingebettet
- Bietet Unternehmensintegration mit Funktionen wie Active Directory, Hochverfügbarkeit, Unternehmenssicherheit und Clustering
- Bietet Einblicke in Echtzeit mithilfe von operativen und prädiktiven Analysen
AWS Timestream
Wie kann AWS nicht in der Liste enthalten sein?
AWS-Zeitstrom ist ein serverloser Zeitreihendatenbankdienst, der schnell und skalierbar ist. Es wird hauptsächlich für IoT-Anwendungen verwendet, um Billionen von Ereignissen an einem Tag und 1000-mal schneller zu speichern, wobei die Kosten für relationale Datenbanken 1/10 betragen.
Mit der speziell entwickelten Abfrage-Engine können Sie aktuelle und historische gespeicherte Daten gleichzeitig abfragen. Es bietet mehrere integrierte Funktionen zur Analyse von Zeitreihendaten, um nützliche Erkenntnisse zu gewinnen.
Amazon Timestream-Funktionen:
- Keine zu verwaltenden Server oder bereitzustellende Instanzen; alles wird automatisch gehandhabt.
- Bezahlen Sie kostengünstig nur für das, was Sie aufnehmen, speichern und abfragen.
- Kann täglich Billionen von Ereignissen ohne Leistungseinbußen aufnehmen
- Integrierte Analysefunktion mit Standardfunktionen für SQL, Interpolation und Glättung zur Identifizierung von Trends, Mustern und Anomalien
- Alle Daten werden mit dem AWS Key Management System (KMS) mit vom Kunden verwalteten Schlüsseln (CMK) verschlüsselt.
OpenTSDB
OpenTSDB ist eine skalierbare Zeitreihendatenbank, die auf HBase geschrieben wurde. Es ist in der Lage, Billionen von Datenpunkten mit Millionen von Schreibvorgängen pro Sekunde zu speichern. Sie können die Daten mit dem ursprünglichen Zeitstempel und dem genauen Wert für immer in OpenTSDB behalten, damit Sie keine Daten verlieren.
Es verfügt über einen Zeitreihen-Daemon (TSD) und Befehlszeilenprogramme. Der Zeitreihen-Daemon ist dafür verantwortlich, Daten in HBase zu speichern oder daraus abzurufen. Sie können mit TSD über die HTTP-API, Telnet oder eine einfache integrierte Benutzeroberfläche kommunizieren. Sie benötigen Tools wie Flume, Collectd, Vacuumetrix usw., um Daten aus verschiedenen Quellen in OpenTSDB zu sammeln.
OpenTSBD-Funktionen:
- Kann Metriken mit halsbrecherischer Geschwindigkeit aggregieren, filtern und herunterrechnen
- Speichert und schreibt Daten mit Millisekundengenauigkeit
- Läuft auf Hadoop und HBase und lässt sich leicht skalieren, indem dem Cluster Knoten hinzugefügt werden
- Verwendet die GUI zum Generieren von Diagrammen
Fazit
Da heutzutage immer mehr IoT / Smart-Geräte verwendet werden, wird auf Websites mit Millionen von Ereignissen pro Tag ein enormer Echtzeitverkehr generiert, der Handel auf dem Markt nimmt zu und die Zeitreihendatenbank ist da! Zeitreihendatenbanken sind ein Muss in Ihrem Produktionsstapel für Überwachung.
Der größte Teil der oben aufgeführten Zeitreihendatenbank kann selbst gehostet werden Cloud-VM und probieren Sie es aus, um zu sehen, was für Sie funktioniert.