Über Verhältnisse von Metriken

In diesem Dokument erfahren Sie, wie Sie das Verhältnis von Messwertdaten am besten darstellen oder überwachen. Sie enthält auch Links zu Beispielen und gibt an, wann Sie Verhältnisse berechnen können. Außerdem werden Anomalien beschrieben, die Sie möglicherweise sehen, wenn Sie ein Verhältnis zweier verschiedener Messwerte grafisch darstellen. Diese Anomalien sind auf Unterschiede bei der Abtastrate oder den Ausrichtungsparametern zurückzuführen.

Mithilfe von Verhältnissen können Sie Ihre Messwertdaten in eine andere und möglicherweise nützlichere Form umwandeln. Angenommen, Sie haben einen Messwerttyp, bei dem die Anzahl der HTTP-Antworten nach Antwortcode gezählt wird. Die Messwertdaten geben die Anzahl der Fehler an, aber nicht den Anteil der fehlgeschlagenen Anfragen. Leistungsanforderungen werden jedoch häufig als Prozentsatz angegeben, z. B. „Die Fehlerrate muss unter 0, 1 % liegen“. Um die Fehlerrate mithilfe der Messwertdaten zu ermitteln, berechnen Sie das Verhältnis der fehlgeschlagenen Anfragen zur Gesamtzahl der Anfragen.

Best Practices

Wenn Sie ein Verhältnis von Messwertdaten überwachen oder grafisch darstellen möchten, empfehlen wir die Verwendung von Monitoring Query Language (MQL). Sie können MQL mit der Cloud Monitoring API und mit der Google Cloud Console verwenden. Die Google Cloud Console enthält einen Codeeditor, der Vorschläge, Fehlererkennung und weitere Unterstützung zum Erstellen gültiger MQL-Abfragen bietet. Weitere Informationen und Beispiele finden Sie in den folgenden Dokumenten:

Wenn Sie eine Benachrichtigungsrichtlinie erstellen möchten, die ein Verhältnis von Messwerten überwacht, wenn Sie mit MQL nicht vertraut sind, verwenden Sie die Cloud Monitoring API und fügen Sie einen Zeitachsenfilter ein. Ein Beispiel finden Sie unter Messwertverhältnis.

Wenn Sie mit MQL nicht vertraut sind, sollten Sie die Google Cloud Console und eine menügesteuerte Schnittstelle verwenden, um ein Verhältnis von Messwertdaten grafisch darzustellen. Eine ausführliche Anleitung finden Sie unter Ein Verhältnis von Messwerten darstellen und Einem benutzerdefinierten Dashboard Diagramme und Tabellen hinzufügen.

Einschränkungen bei Verhältnissen

Wenn Sie ein Verhältnis konfigurieren, gelten die folgenden Einschränkungen:

  • Nach der Aggregation müssen die Labels in der Nennerzeitreihe mit den Labels in der Zeitreihe des Zählers identisch oder eine Teilmenge dieser Labels sein.

    Wir empfehlen, Aggregationsoptionen auszuwählen, damit der Zähler und die Nennerzeitachse nach der Aggregation dieselben Labels haben.

    Angenommen, die Zeitreihe des Zählers hat die Labels method, quota_metric und project_id. Die Nennerzeitachse hat die Labels limit_name, quota_metric und project_id. Die gültigen Auswahlmöglichkeiten für die Nennergruppierung hängen von der Auswahl für den Zähler ab:

    • Zähler, gruppiert nach dem Label method: Kombinieren Sie die Nennerzeitachse zu einer einzelnen Zeitreihe. Keine andere Gruppierung führt dazu, dass die Labels für die Nennerzeitachse eine Teilmenge der Labels für die Zeitreihen der Zähler sind.
    • Zähler, gruppiert nach dem Label quota_metric: Gruppiert den Nenner nach diesem Label oder fasst alle Zeitachsen im Nenner zu einer einzigen Zeitachse zusammen.
    • Zähler gruppiert nach den Labels quota_metric und project_id: Gruppiert den Nenner nach beiden Labels oder nach einem Label oder fassen Sie die Nenner-Zeitachsen zu einer einzigen Zeitachse zusammen.

    Mit den Optionen für die Aggregation des gültigen Nenners wird immer das Label limit_name aus der gruppierten Zeitachse entfernt, weil dieses Label in der Zählerzeitreihe nicht vorhanden ist.

    Beispiele finden Sie unter Beispiele für MQL-Benachrichtigungsrichtlinien.

  • Wenn Sie ein Diagramm über die Google Cloud Console konfigurieren, muss der Ausrichtungszeitraum für den Zähler und den Nenner identisch sein. Diese Felder können sich jedoch in der Cloud Monitoring API unterscheiden.

    Wir empfehlen, unabhängig vom Tool, mit dem Sie das Diagramm erstellen, denselben Ausrichtungszeitraum für den Zähler und den Nenner zu verwenden.

  • Zähler und Nenner müssen denselben Werttyp haben. Wenn der Zähler beispielsweise vom Typ DOUBLE ist, muss der Nenner auch vom Typ DOUBLE sein.

    Für Verhältnisse müssen Zähler und Nenner den Werttyp DOUBLE oder INT64 haben.

  • Die ausgerichtete Zeitachse für den Zähler und den Nenner muss dieselbe Messwertart haben. Wenn die beiden Messwerte unterschiedliche Arten haben, müssen Sie Aligner verwenden, um sie in dieselbe Art zu konvertieren.

    Angenommen, für eine Konfiguration wird der Messwert DELTA für den Zähler und der Messwert GAUGE für den Nenner ausgewählt. Verwenden Sie in diesem Fall den Geschwindigkeitsvergleicher ALIGN_RATE, um den Messwert DELTA in einen Messwert vom Typ GAUGE zu konvertieren. Ein Beispiel finden Sie unter Verhältnis von Benachrichtigungsrichtlinien zur Nutzung des Ratenkontingents für ein Limit.

  • Bei Verhältnissen, die nicht mit MQL definiert sind, muss der Typ der überwachten Ressource für den Zähler und den Nenner identisch sein.

    Wenn die Ressource für den Zählermesswert beispielsweise Compute Engine-Instanzen ist, muss die Ressource für den Nennermesswert ebenfalls Compute Engine-Instanzen sein.

Anomalien aufgrund von Abweichungen bei Stichproben und Ausrichtung

Im Allgemeinen ist es am besten, Verhältnisse basierend auf Zeitachsen zu berechnen, die unter Einsatz von Labelwerten für einen einzelnen Messwerttyp erfasst wurden. Ein Verhältnis, das über zwei verschiedene Messwerttypen berechnet wird, unterliegt aufgrund unterschiedlicher Stichprobenzeiträume und Ausrichtungsfenster Anomalien.

Angenommen, Sie haben zwei verschiedene Messwerttypen, eine RPCs-Gesamtzahl und eine RPC-Fehlerzahl, und Sie möchten das Verhältnis von Fehler- zu Gesamtzahl berechnen. Die fehlgeschlagenen RPCs werden in der Zeitreihe beider Messwerttypen gezählt. Daher besteht die Möglichkeit, dass beim Ausrichten der Zeitachse ein fehlgeschlagener RPC nicht im selben Ausrichtungsintervall für beide Zeitachsen angezeigt wird. Dies kann folgende Gründe haben:

  • Da zwei verschiedene Zeitachsen dasselbe Ereignis aufzeichnen, gibt es zwei unterliegende Zählerwerte, die die Sammlung implementieren. Diese werden nicht atomar aktualisiert.
  • Die Abtastraten können abweichen. Wenn die Zeitachsen auf einen gemeinsamen Zeitraum ausgerichtet sind, kann die Anzahl für ein einzelnes Ereignis in angrenzenden Ausrichtungsintervallen für die verschiedenen Messwerte angezeigt werden.

Die unterschiedliche Anzahl der Werte in den entsprechenden Ausrichtungsintervallen kann zu einem unsinnigen error/total-Verhältniswert führen, z. B. 1/0 oder 2/1.

Verhältnisse größerer Zahlen führen mit geringerer Wahrscheinlichkeit zu unsinnigen Werten. Sie können größere Zahlen durch Aggregation erhalten, indem Sie entweder ein Ausrichtungsfenster verwenden, das länger als der Stichprobenzeitraum ist, oder Daten für bestimmte Labels gruppieren. Diese Techniken minimieren den Effekt kleiner Unterschiede in der Anzahl der Punkte in einem gegebenen Intervall. Das heißt, ein Zwei-Punkte-Unterschied ist bei einer erwarteten Anzahl von 3 Punkten in einem Intervall signifikanter als bei einer erwarteten Anzahl von 300.

Wenn Sie integrierte Messwerttypen verwenden, haben Sie möglicherweise keine andere Wahl, als die Verhältnisse zwischen den Messwerttypen zu berechnen, um den von Ihnen benötigten Wert zu erhalten.

Wenn Sie benutzerdefinierte Messwerte entwerfen, die die gleiche Sache – wie RPCs, die den Fehlerstatus zurückgeben – in zwei verschiedenen Messwerten zählen könnten, sollten Sie stattdessen einen einzigen Messwert in Betracht ziehen, der jede Zählung nur einmal enthält. Angenommen, Sie zählen RPCs und möchten das Verhältnis von nicht erfolgreichen RPCs zu allen RPCs verfolgen. Zur Behebung dieses Problems erstellen Sie einen einzelnen Messwerttyp, um RPCs zu zählen, und verwenden ein Label, um den Status des Aufrufs einschließlich des Status „OK“ aufzuzeichnen. Dann wird jeder Statuswert bzw. jeder Fehler oder jedes „OK“ aufgezeichnet, indem für diesen Fall ein einzelner Zähler aktualisiert wird.

Nächste Schritte