Erstelle dein erstes Dashboard - Amazon Managed Grafana

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstelle dein erstes Dashboard

Erstellen eines Dashboards

Gehen Sie wie folgt vor, um ein Dashboard in der Grafana-Konsole zu erstellen.

Um Ihr erstes Dashboard zu erstellen
  1. Wählen Sie im linken Bereich das Pluszeichen aus, wählen Sie Dashboard erstellen und dann Neues Panel hinzufügen.

  2. Wählen Sie in der Ansicht „Neues Dashboard/Bereich bearbeiten“ die Registerkarte „Abfrage“.

  3. Konfigurieren Sie Ihre Abfrage, indem Sie die Datenquelle auswählen, die Sie abfragen möchten. Wenn Sie beispielsweise TestDB als Datenquelle hinzugefügt haben, wird dadurch ein Beispiel-Dashboard namens Random Walk-Dashboard generiert.

Einführung in Zeitreihen

Stellen Sie sich vor, Sie möchten wissen, wie sich die Außentemperatur im Laufe des Tages verändert. Einmal pro Stunde überprüften Sie das Thermometer und notieren sich die Uhrzeit zusammen mit der aktuellen Temperatur. Nach einer Weile hätten Sie so etwas wie die folgenden Daten.

Zeit Wert
09:00 24 °C
10:00 26 °C
11:00 27 °C

Temperaturdaten wie diese sind ein Beispiel für eine Zeitreihe — eine zeitlich geordnete Abfolge von Messungen. Jede Zeile in der Tabelle steht für eine einzelne Messung zu einem bestimmten Zeitpunkt.

Tabellen sind nützlich, wenn Sie einzelne Messungen identifizieren möchten, aber sie können es schwierig machen, das Gesamtbild zu erkennen. Eine üblichere Visualisierung für Zeitreihen ist das Diagramm, bei dem stattdessen jede Messung entlang einer Zeitachse angeordnet wird. Visuelle Darstellungen wie das Diagramm erleichtern das Erkennen von Mustern und Merkmalen der Daten, die andernfalls schwer zu erkennen wären.

Andere Beispiele für Zeitreihen sind:

  • CPU- und Speicherauslastung

  • Sensordaten

  • Börsenindex

Jedes dieser Beispiele ist zwar eine Abfolge chronologisch geordneter Messungen, sie haben aber auch andere Merkmale gemeinsam:

  • Neue Daten werden am Ende in regelmäßigen Abständen angehängt, z. B. stündlich um 09:00 Uhr, 10:00 Uhr, 11:00 Uhr usw.

  • Messungen werden selten aktualisiert, nachdem sie hinzugefügt wurden. Zum Beispiel ändert sich die Temperatur von gestern nicht.

Zeitreihen sind mächtig. Sie helfen Ihnen, die Vergangenheit zu verstehen, indem sie es Ihnen ermöglichen, den Zustand des Systems zu jedem Zeitpunkt zu analysieren. Zeitreihen könnten Ihnen sagen, dass der Server kurz nach dem Rückgang des freien Festplattenspeichers auf Null abgestürzt ist.

Zeitreihen können Ihnen auch dabei helfen, die future vorherzusagen, indem sie Trends in Ihren Daten aufdecken. Wenn beispielsweise die Anzahl der registrierten Benutzer in den letzten Monaten monatlich um 4 Prozent gestiegen ist, können Sie vorhersagen, wie groß Ihre Benutzerbasis am Jahresende sein wird.

Manche Zeitreihen weisen Muster auf, die sich über einen bekannten Zeitraum wiederholen. Beispielsweise ist die Temperatur normalerweise tagsüber höher, bevor sie nachts sinkt. Durch die Identifizierung dieser periodischen oder saisonalen Zeitreihen können Sie zuverlässige Vorhersagen über den nächsten Zeitraum treffen. Wenn Sie wissen, dass die Systemlast täglich gegen 18:00 Uhr ihren Höhepunkt erreicht, können Sie direkt zuvor weitere Maschinen hinzufügen.

Aggregieren von Zeitreihen

Je nachdem, was Sie messen, können die Daten stark variieren. Was wäre, wenn Sie Zeiträume vergleichen möchten, die länger als das Intervall zwischen den Messungen sind? Wenn Sie die Temperatur einmal pro Stunde messen würden, hätten Sie am Ende 24 Datenpunkte pro Tag. Um die Temperatur im August im Laufe der Jahre zu vergleichen, müssten Sie die 31 mal 24 Datenpunkte zu einem kombinieren.

Das Kombinieren einer Sammlung von Messungen wird Aggregation genannt. Es gibt mehrere Möglichkeiten, Zeitreihendaten zu aggregieren. Hier sind einige gebräuchliche:

  • Average gibt die Summe aller Werte geteilt durch die Gesamtzahl der Werte zurück.

  • Min und Max geben den kleinsten und größten Wert in der Sammlung zurück.

  • Sum gibt die Summe aller Werte in der Sammlung zurück.

  • Count gibt die Anzahl der Werte in der Sammlung zurück.

Wenn Sie beispielsweise die Daten in einem Monat aggregieren, können Sie feststellen, dass der August 2017 im Durchschnitt wärmer war als das Jahr zuvor. Wenn Sie herausfinden möchten, in welchem Monat die höchste Temperatur herrschte, würden Sie die Höchsttemperatur für jeden Monat vergleichen.

Wie Sie Ihre Zeitreihendaten aggregieren, ist eine wichtige Entscheidung, und sie hängt davon ab, welche Geschichte Sie mit Ihren Daten erzählen möchten. Es ist üblich, unterschiedliche Aggregationen zu verwenden, um dieselben Zeitreihendaten auf unterschiedliche Weise zu visualisieren.

Zeitreihen und Überwachung

In der IT-Branche werden Zeitreihendaten häufig gesammelt, um beispielsweise Infrastruktur-, Hardware- oder Anwendungsereignisse zu überwachen. Maschinengenerierte Zeitreihendaten werden in der Regel in kurzen Intervallen erfasst, sodass Sie auf unerwartete Änderungen sofort reagieren können. Die Daten sammeln sich in rasantem Tempo an, weshalb es wichtig ist, Daten effizient zu speichern und abzufragen. Infolgedessen haben Datenbanken, die für Zeitreihendaten optimiert sind, in den letzten Jahren an Beliebtheit gewonnen.

Zeitreihen-Datenbanken

Eine Zeitreihendatenbank (TSDB) ist eine Datenbank, die explizit für Zeitreihendaten konzipiert wurde. Es ist zwar möglich, jede reguläre Datenbank zum Speichern von Messungen zu verwenden, eine TSDB bietet jedoch einige nützliche Optimierungen.

Moderne TSDBs nutzen die Tatsache, dass Messwerte immer nur angehängt und selten aktualisiert oder entfernt werden. Beispielsweise ändern sich die Zeitstempel für jede Messung im Laufe der Zeit kaum, was dazu führt, dass redundante Daten gespeichert werden.

Das folgende Beispiel zeigt eine Folge von Unix-Zeitstempeln.

1572524345, 1572524375, 1572524404, 1572524434, 1572524464

Wenn man sich diese Zeitstempel ansieht, beginnen sie alle mit1572524, was zu einer schlechten Nutzung des Festplattenspeichers führt. Stattdessen könnten Sie jeden nachfolgenden Zeitstempel als Differenz oder Delta des ersten Zeitstempels speichern, wie im folgenden Beispiel gezeigt.

1572524345, +30, +29, +30, +30

Sie könnten sogar noch einen Schritt weiter gehen und die Deltas dieser Deltas berechnen, wie im folgenden Beispiel gezeigt.

1572524345, +30, -1, +1, +0

Wenn in regelmäßigen Abständen Messungen durchgeführt werden, sind die meisten delta-of-deltas davon 0. Aufgrund solcher Optimierungen benötigen TSDBs drastisch weniger Speicherplatz als andere Datenbanken.

Ein weiteres Merkmal einer TSDB ist die Möglichkeit, Messungen mithilfe von Tags zu filtern. Jeder Datenpunkt ist mit einem Tag gekennzeichnet, der Kontextinformationen hinzufügt, z. B. wo die Messung durchgeführt wurde.

Die folgenden TSDBs werden von Grafana unterstützt:

  • Graphit

  • InfluxDB

  • Prometheus

    weather,location=us-midwest temperature=82 1465839830100400200 | -------------------- -------------- | | | | | | | | | +-----------+--------+-+---------+-+---------+ |measurement|,tag_set| |field_set| |timestamp| +-----------+--------+-+---------+-+---------+
Sammeln von Zeitreihendaten

Jetzt, wo Sie Ihre Zeitreihen speichern können, wie erfassen Sie die Messungen eigentlich? Um Zeitreihendaten zu sammeln, installieren Sie in der Regel einen Collector auf dem Gerät, der Maschine oder der Instanz, die Sie überwachen möchten. Einige Collectors wurden für eine bestimmte Datenbank erstellt, und andere unterstützen unterschiedliche Ausgabeziele.

Hier sind einige Beispiele für Collectors:

Ein Collector überträgt entweder Daten in eine Datenbank oder lässt die Datenbank die Daten aus dem Collector abrufen. Jeder Ansatz hat seine eigenen Vor- und Nachteile.

Vorteile Nachteile
Push Es ist einfacher, Daten an mehrere Ziele zu replizieren. Die TSDB hat keine Kontrolle darüber, wie viele Daten gesendet werden.
pull Mehr Kontrolle über die aufgenommene Datenmenge und die Datenauthentizität. Firewalls, VPNs oder Load Balancer können den Zugriff auf die Agenten erschweren.

Da es ineffizient ist, jede Messung in die Datenbank zu schreiben, aggregieren Collectors die Daten vorab und schreiben sie in regelmäßigen Abständen in die TSDB.

Dimensionen von Zeitreihen

Bei Zeitreihendaten handelt es sich bei den Daten häufig um eine Reihe von mehreren Zeitreihen. Viele Grafana-Datenquellen unterstützen diese Art von Daten.

Der häufigste Fall ist die Ausgabe einer einzelnen Abfrage für eine Messung mit einer oder mehreren zusätzlichen Eigenschaften als Dimensionen. Sie könnten beispielsweise eine Temperaturmessung zusammen mit einer Positionseigenschaft abfragen. In diesem Fall werden aus dieser einzelnen Abfrage mehrere Reihen zurückgegeben, und jede Serie hat eine eindeutige Position als Dimension.

Um eindeutige Serien innerhalb einer Reihe von Zeitreihen zu identifizieren, speichert Grafana Dimensionen in Etiketten.

Labels

Jede Zeitreihe in Grafana hat optional Beschriftungen. Labels sind eine Reihe von Schlüssel-Wert-Paaren zur Identifizierung von Dimensionen. Beispielbezeichnungen sind oder{location=us}. {country=us,state=ma,city=boston} Innerhalb einer Reihe von Zeitreihen identifiziert die Kombination aus ihrem Namen und ihren Beschriftungen jede Reihe. z. B. temperature {country=us,state=ma,city=boston}.

Verschiedene Quellen von Zeitreihendaten verfügen über nativ gespeicherte Dimensionen oder über gemeinsame Speichermuster, mit denen die Daten in Dimensionen extrahiert werden können.

Normalerweise unterstützen TSDBs die Dimensionalität nativ. Prometheus speichert Abmessungen in Etiketten. In TSDBs wie Graphite oder OpenTSDB wird stattdessen der Begriff Tags verwendet.

In Tabellendatenbanken wie SQL sind diese Dimensionen im Allgemeinen die GROUP BY Parameter einer Abfrage.

Mehrere Dimensionen im Tabellenformat

In SQL- oder SQL-ähnlichen Datenbanken, die Tabellenantworten zurückgeben, sind zusätzliche Dimensionen normalerweise Spalten in der Abfrageantworttabelle.

Einzelne Dimension

Stellen Sie sich zum Beispiel eine Abfrage wie das folgende Beispiel vor.

SELECT BUCKET(StartTime, 1h), AVG(Temperature) AS Temp, Location FROM T GROUP BY BUCKET(StartTime, 1h), Location ORDER BY time asc

Die Abfrage könnte eine Tabelle mit drei Spalten zurückgeben.

StartTime Temporäre Dateien Ort
09:00 24 LGA
09:00 20 BOS
10:00 26 LGA
10:00 22 BOSS

Beim Tabellenformat handelt es sich um langformatierte Zeitreihen, die auch als Tall bezeichnet werden. Es enthält wiederholte Zeitstempel und wiederholte Werte im Feld Position. In diesem Fall würden zwei Zeitreihen im Satz als Temp {Location=LGA} und Temp {Location=BOS} identifiziert werden.

Einzelne Zeitreihen aus dem Satz werden mithilfe der folgenden Dimensionen extrahiert:

  • Die Spalte mit der StartTime Zeitangabe als Zeitindex der Zeitreihe

  • Die numerisch eingegebene Spalte Temp als Serienname

  • Der Name und die Werte der Location Spalte, in der eine Zeichenfolge eingegeben wurde, um die Beschriftungen zu erstellen, z. B. location=LGA

Mehrere Dimensionen

Wenn die Abfrage aktualisiert wird, um mehr als eine Zeichenfolgenspalte auszuwählen und nach ihnen zu gruppieren (z. B.GROUP BY BUCKET(StartTime, 1h), Location, Sensor), wird eine zusätzliche Dimension hinzugefügt.

StartTime Temporäre Dateien Ort Sensor
09:00 24 LGA A
09:00 24,1 VERZÖGERT B
09:00 20 BOS A
09:00 20,2 BOSS B
10:00 26 LGA A
10:00 26,1 VERZÖGERT B
10:00 22 BOSS A
10:00 22,2 BOSS B

In diesem Fall haben die Beschriftungen, die die Dimensionen darstellen, zwei Schlüssel, die auf den beiden Zeichenkettenspalten basieren, Location undSensor. Die Daten ergeben vier Reihen:

  • Temp {Location=LGA,Sensor=A}

  • Temp {Location=LGA,Sensor=B}

  • Temp {Location=BOS,Sensor=A}

  • Temp {Location=BOS,Sensor=B}

Anmerkung

Hinweis: Mehrere Dimensionen werden nicht so unterstützt, dass sie mehreren Alerts in Grafana zugeordnet werden. Stattdessen werden sie als mehrere Bedingungen für eine einzelne Warnung behandelt.

Mehrere Werte

Bei SQL-ähnlichen Datenquellen können mehr als eine numerische Spalte ausgewählt werden, mit oder ohne zusätzliche Zeichenfolgenspalten, die als Dimensionen verwendet werden sollen, z. B.. AVG(Temperature) AS AvgTemp, MAX(Temperature) AS MaxTemp In Kombination mit mehreren Dimensionen kann dies zu zahlreichen Reihen führen. Die Auswahl mehrerer Werte ist derzeit so konzipiert, dass sie nur in Verbindung mit Visualisierungen verwendet werden kann.

Einführung in Histogramme und Heatmaps

Ein Histogramm ist eine grafische Darstellung der Verteilung numerischer Daten. Es gruppiert Werte in Buckets (manchmal auch Bins genannt). Dann zählt es, wie viele Werte in jeden Bucket fallen.

Anstatt die tatsächlichen Werte grafisch darzustellen, zeichnen Histogramme die Buckets grafisch auf. Jeder Balken steht für einen Bereich, und die Balkenhöhe steht für die Häufigkeit (z. B. die Anzahl) von Werten, die in das Intervall dieses Bereichs fielen.

Histogramme betrachten nur Wertverteilungen über einen bestimmten Zeitraum. Das Problem mit Histogrammen besteht darin, dass Sie keine Trends oder Veränderungen in der Verteilung im Zeitverlauf erkennen können. Hier werden Heatmaps nützlich.

Heatmaps

Eine Heatmap ist wie ein Histogramm im Zeitverlauf, bei dem jede Zeitscheibe ihr eigenes Histogramm darstellt. Anstatt die Balkenhöhe als Darstellung der Frequenz zu verwenden, werden Zellen verwendet, wobei eine Zelle proportional zur Anzahl der Werte im Bucket eingefärbt wird.

Vordefinierte Daten

Eine Reihe von Datenquellen unterstützt Histogramme im Zeitverlauf, darunter die folgenden:

  • Amazon OpenSearch Service (mithilfe einer Histogramm-Bucket-Aggregation)

  • Prometheus (wobei der metrische Typ Histogramm und die Option Format als auf Heatmap gesetzt sind)

Im Allgemeinen können Sie jede Datenquelle verwenden, die Reihen mit Namen zurückgibt, die für einen bestimmten Bereich stehen, oder Reihen, die nach der Grenze sortiert sind, in aufsteigender Reihenfolge zurückgibt.

Rohdaten im Vergleich zu aggregierten Daten

Wenn Sie die Heatmap mit regulären Zeitreihendaten (ohne vorgefertigte Zeitreihendaten) verwenden, sollten Sie bedenken, dass Ihre Daten häufig bereits von Ihrem Zeitreihen-Backend aggregiert wurden. Die meisten Zeitreihenabfragen geben keine Beispielrohdaten zurück. Stattdessen enthalten sie eine Gruppierung nach Zeitintervall oder maxDataPoints Grenzwert in Verbindung mit einer Aggregationsfunktion (normalerweise Durchschnitt).

Das hängt vom Zeitraum Ihrer Abfrage ab. Der wichtige Punkt ist zu wissen, dass das Histogramm-Bucketing, das Grafana durchführt, für bereits aggregierte und gemittelte Daten durchgeführt werden kann. Für genauere Heatmaps ist es besser, das Bucketing während der Metrikerfassung durchzuführen oder die Daten in oder in einer anderen Datenquelle zu speichern OpenSearch, die Histogramm-Bucketing für Rohdaten unterstützt.

Wenn Sie die Gruppe in Ihrer Abfrage nach Zeit entfernen oder verringern (oder erhöhen maxDataPoints), um mehr Datenpunkte zurückzugeben, ist Ihre Heatmap genauer. Dies kann jedoch auch Ihre CPU und Ihren Arbeitsspeicher stark belasten. Wenn die Anzahl der Datenpunkte unangemessen groß wird, kann dies zu Verzögerungen und Abstürzen führen.