Messwerte mit Verteilungswert

In diesem Dokument wird beschrieben, wie Sie ein Diagramm erstellen und interpretieren, das Messwertdaten mit dem Werttyp Distribution anzeigt. Dieser Wertetyp wird von Diensten verwendet, wenn die einzelnen Messungen zu zahlreich sind, um sie zu erfassen, aber statistische Informationen, wie z. B. Durchschnittswerte oder Perzentile, zu diesen Messungen wertvoll sind. Wenn eine Anwendung beispielsweise auf HTTP-Traffic angewiesen ist, können Sie mithilfe eines Verteilungsmesswertes, der die HTTP-Antwortlatenz erfasst, bewerten, wie schnell HTTP-Anfragen abgeschlossen werden.

Betrachten Sie zur Veranschaulichung, wie ein Histogramm erstellt wird, einen Dienst, der die HTTP-Latenz von Anfragen misst und diese Daten mithilfe eines Messwerts mit dem Typ „Verteilungswert“ meldet. Die Daten werden minütlich gemeldet. Der Dienst definiert Wertebereiche für den Messwert, die als Buckets bezeichnet werden, und erfasst die Anzahl der Messwerte für jeden Bucket. Wenn beispielsweise eine HTTP-Anfrage abgeschlossen ist, erhöht der Dienst die Anzahl in dem Bucket, dessen Bereich den Latenzwert der Anfrage enthält. Mit diesen Zählungen wird ein Histogramm der Werte für diese Minute erstellt.

Angenommen, die in einem einminütigen Intervall gemessenen Latenzen betragen 5, 1, 3, 5, 6, 10 und 14. Wenn die Buckets [0, 4), [4, 8), [8, 12) und [12, 16] sind, ist das Histogramm dieser Daten [2, 3, 1, 1]. Die folgende Tabelle zeigt, wie sich einzelne Messungen auf die Anzahl für jeden Bucket auswirken:

Bucket Latenzmessungen Anzahl der Werte im Bucket
[12,16) 14 1
[8,12) 10 1
[4,8) 5, 5, 6 3
[0,4) 1, 3 2

Beim Schreiben dieser Daten in die Zeitachse wird ein Point-Objekt erstellt. Bei Messwerten mit einem Verteilungswert enthält dieses Objekt das Histogramm der Werte. Für diesen Stichprobenzeitraum enthält Point [2, 3, 1, 1]. Die einzelnen Messungen werden nicht in die Zeitreihe geschrieben.

Angenommen, in der vorherigen Tabelle wird das Histogramm für die Latenzdaten zum Zeitpunkt 1:00 aufgezeichnet. Diese Tabelle zeigt, wie Sie eine Reihe von Messungen in die Anzahl der Buckets umwandeln können. Angenommen, der Bucket zählt zu den Zeiten 1:01, 1:02 und 1:03 wie in der folgenden Tabelle dargestellt:

Bucket Histogramm für
1:00
Histogramm für
1:01
Histogramm für
1:02
Histogramm für
1:03
[12,16) 1 6 0 1
[8,12) 1 0 2 2
[4,8) 3 1 1 8
[0,4) 2 6 10 3

Die vorherige Tabelle enthält eine Reihe von Histogrammen, die nach Zeit indexiert sind. Jede Spalte in der Tabelle enthält die Latenzdaten für einen Zeitraum von einer Minute. Um die Anzahl der Messungen zu einem bestimmten Zeitpunkt zu erhalten, summieren Sie die Bucket-Anzahl. Die tatsächlichen Messwerte werden jedoch nicht angezeigt, da sie in Messwerten mit Verteilungswert nicht verfügbar sind.

Heatmap-Diagramme

In Heatmap-Diagrammen wird eine einzelne Zeitachse mit Verteilungswerten dargestellt. Bei diesen Diagrammen stellt die X-Achse die Zeit, die Y-Achse die Buckets und die Farbe den Wert dar. Je heller die Farbe, desto höher der Wert. Dunkle Bereiche der Heatmap weisen beispielsweise auf eine geringere Bucket-Anzahl hin als gelbe oder weiße Bereiche.

In der folgenden Abbildung sehen Sie eine Darstellung einer Heatmap für das vorherige Beispiel:

Heatmap-Diagramm für das Beispiel.

In der vorherigen Abbildung verwendet die Heatmap Schwarz, um die kleinste Bucket-Zählwert darzustellen, 0 und gelb, um die größte Bucket-Zählwert darzustellen: 10. Rottöne und Orangetöne stellen Werte zwischen diesen beiden Extremen dar.

Da Heatmap-Diagramme nur eine einzelne Zeitreihe anzeigen können, müssen Sie die Aggregationsoptionen so einstellen, dass alle Zeitreihen kombiniert werden.

So zeigen Sie mit dem Metrics Explorer die Summe der RTT-Latenzen einer VM-Instanz an:
  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Metrics Explorer aus:

    Zum Metrics Explorer

  2. Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie RTT latencies in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option VM-Instanz aus.
    2. Wählen Sie im Menü Aktive Messwertkategorien die Option Vm_flow aus.
    3. Wählen Sie im Menü Aktive Messwerte die Option RTT-Latenzen aus.
    4. Klicken Sie auf Anwenden.

Im vorherigen Beispiel wird das Heatmap-Diagramm durch die Auswahl von Werten aus Menüs konfiguriert. Sie können jedoch auch Monitoring Query Language (MQL) verwenden, um Verteilungsmesswerte grafisch darzustellen. So geben Sie eine MQL-Abfrage ein:

  1. Wählen Sie in der Symbolleiste des Bereichs „Query Builder“ die Schaltfläche mit dem Namen  MQL oder  PromQL aus.
  2. Prüfen Sie, ob im Umschalter Sprache MQL ausgewählt ist. Die Ein-/Aus-Schaltfläche für die Sprache befindet sich in derselben Symbolleiste, mit der Sie die Abfrage formatieren können.
  3. Geben Sie eine Abfrage ein und führen Sie sie dann aus.

Geben Sie beispielsweise Folgendes in den Code-Editor ein:

fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [aggregate(value.rtt)]

Im vorherigen Ausdruck werden die Zeitachsendaten abgerufen, ausgerichtet und dann gruppiert. Für den Ausrichtungsvorgang wird eine delta-Ausrichtungsfunktion mit einem Ausrichtungszeitraum von einer Minute verwendet. Da das erste Argument für group_by [] ist, werden alle Zeitachsen kombiniert. Das zweite Argument, [aggregate(value.rtt)], definiert, wie die Zeitachsen kombiniert werden. In diesem Beispiel werden für jeden Zeitstempel die Werte des Felds rtt der verschiedenen Zeitachsen mit der Funktion aggregate kombiniert, die von MQL ausgewählt wird.

Wenn Sie den Messwert über Menüs auswählen und dann zu MQL wechseln, wird Ihre Auswahl in eine strikte MQL-Abfrage umgewandelt:

fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [value_rtt_aggregate: aggregate(value.rtt)]

Der vorherige Ausdruck entspricht funktional dem ursprünglichen MQL-Beispiel.

Weitere Informationen zu MQL finden Sie unter Übersicht über Monitoring Query Language.

Linien- und Balkendiagramme

Liniendiagramme, gestapelte Balkendiagramme und gestapelte Liniendiagramme, die für die Darstellung skalarer Daten vorgesehen sind, können keine Verteilungswerte darstellen. Um einen Messwert mit einem Verteilungswert mit einem dieser Diagrammtypen anzuzeigen, müssen Sie die Histogrammwerte in skalare Werte konvertieren. Sie können beispielsweise die Aggregationsoptionen so einstellen, dass der Mittelwert der Werte im Histogramm oder ein Perzentil berechnet wird.

Informationen zum Anzeigen eines Verteilungswerts in einem Liniendiagramm finden Sie im folgenden Abschnitt.

Aggregations- und Verteilungsmesswerte

Bei der Aggregation werden Punkte innerhalb einer Zeitachse normalisiert und mehrere Zeitachsen kombiniert. Die Aggregation ist für Verteilungstypmesswerte die gleiche Aggregation wie für Messwerte, die einen Ganzzahl- oder Doppel-Werttyp haben. Der Diagrammtyp erzwingt jedoch einige Anforderungen an die Auswahlmöglichkeiten, die für die Ausrichtung und Gruppierung von Zeitachsen verwendet werden.

Heatmap-Diagramme

In Heatmap-Diagrammen wird eine Zeitreihe mit Verteilungswert angezeigt. Daher müssen die Ausrichtungsfunktion und die Gruppierungsfunktion so festgelegt werden, dass eine einzelne Zeitachse erstellt wird.

Wählen Sie eine sum- oder delta-Ausrichtungsfunktion aus, wenn in einem Diagramm eine Heatmap angezeigt wird. Diese Funktionen kombinieren auf Bucket-Ebene alle Stichproben für eine einzelne Zeitachse, die sich im selben Ausrichtungszeitraum befinden. Das Ergebnis ist ein Verteilungswert. Wenn beispielsweise zwei benachbarte Stichproben einer Zeitachse [2, 3, 1, 1] und [2, 5, 4, 1] sind, liefert die Summenausrichtungsfunktion [4, 8, 5, 2].

Die Gruppierungsfunktion definiert, wie verschiedene Zeitachsen kombiniert werden. Diese Funktion wird manchmal als Aggregator oder Reducer bezeichnet. Legen Sie für Heatmaps die Gruppierungsfunktion auf die Funktion sum fest. Mit der Summenfunktion werden die Werte derselben Buckets in allen Histogrammen addiert, was zu einem neuen Histogramm führt. Zum Beispiel beträgt die Summe des Werts [2, 3, 1, 1] aus Zeitreihe-A und des Werts [1, 5, 2, 2] aus Zeitreihe-B [3, 8, 3, 3].

Liniendiagramme

In Liniendiagrammen werden nur Zeitreihen mit Skalarwerten angezeigt. Wenn Sie einen Verteilungswert auswählen, wird das Diagramm mit optimalen Parametern für die Anzeige einer Heatmap konfiguriert. Die Felder des Elements Aggregation sind auf Verteilung und Keine festgelegt.

  • Wie die Verteilung interpretiert wird, hängt vom jeweiligen Messwert ab. Für Messwerttypen mit Verteilungswert, die die Messwertart GAUGE haben, ist die Standardausrichtungsfunktion auf sum festgelegt. Wenn ein Messwerttyp mit Verteilungswert die Messwertart CUMULATIVE hat, ist die Standardausrichtungsfunktion DELTA.

  • Bei der Einstellung Keine werden alle Zeiten kombiniert.

Wenn Sie einen Messwert mit Verteilungswert in einem Liniendiagramm anzeigen möchten, müssen Sie die Standardeinstellungen des Diagramms ändern. Wenn Sie beispielsweise ein Liniendiagramm in einem Dashboard so konfigurieren möchten, dass das 99. Perzentil jeder Zeitachse für einen Verteilungswert angezeigt wird, gehen Sie so vor:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Dashboards aus:

    Zu Dashboards

  2. Klicken Sie in der Symbolleiste auf  Widget hinzufügen.
  3. Wählen Sie im Dialogfeld Widget hinzufügen die Option  Messwert aus.
  4. Wählen Sie unter Messwert den Messwert VM-Instanz – RTT-Latenzen aus.
  5. Maximieren Sie im Element Aggregation das erste Menü und wählen Sie 99. Perzentil aus.
  6. Legen Sie im Bereich Anzeige den Wert des Menüs Widget-Typ auf Liniendiagramm fest.
  7. Optional: Maximieren Sie im Element Aggregation das zweite Menü und wählen Sie die Labels aus, die zum Gruppieren von Zeitachsen verwendet werden. Standardmäßig sind keine Labels ausgewählt. Daher wird im Diagramm eine Linie angezeigt.

Nächste Schritte

Informationen zum Ermitteln des Bucket-Modells für einen Messwert und zum Interpretieren von Perzentilen finden Sie unter Perzentile und Verteilungsmesswerte.