Mit benutzerdefinierten Labels für Benachrichtigungsrichtlinien in Cloud Monitoring können Sie Ihre Benachrichtigungenorganisieren und priorisieren. Wenn Sie diese Labels konfigurieren, werden sie in Monitoring für Benachrichtigungsrichtlinien und Benachrichtigungen angezeigt und können in Benachrichtigungen enthalten sein.
Über Labels
Labels sind Schlüssel/Wert-Paare, mit denen Informationen an eine Zeitreihe, eine Benachrichtigungsrichtlinie, eine Benachrichtigung oder eine Benachrichtigung angehängt werden. Die Labels einer Zeitreihe können beispielsweise die spezifische VM-Instanz (Virtual Machine) identifizieren, aus der Daten erhoben wurden. Labels sind entweder benutzerdefiniert oder vordefiniert.
Benutzerdefinierte Labels
Benutzerdefinierte Labels enthalten von Ihnen angegebene Informationen. Diese Labels können statische oder dynamische Werte haben:
Statische benutzerdefinierte Labels haben Werte, die nicht geändert werden können. Sie können statische benutzerdefinierte Labels erstellen, wenn Sie eine Benachrichtigungsrichtlinie mit der Google Cloud Console oder der Cloud Monitoring API konfigurieren. Weitere Informationen finden Sie in folgenden Dokumenten:
Dynamische benutzerdefinierte Labels haben Werte, die sich basierend auf den Werten der Zeitreihendaten ändern können. Sie können dynamische benutzerdefinierte Labels erstellen, wenn Sie die Bedingung einer Benachrichtigungsrichtlinie mit PromQL konfigurieren. Ein Beispiel finden Sie unter Beispiel: Benutzerdefinierte Labels mit dynamischen Werten hinzufügen.
Labelschlüssel müssen mit einem Kleinbuchstaben beginnen. Sowohl Labelschlüssel als auch Labelwerte dürfen nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
Vordefinierte Labels
Vordefinierte Labels sind in Ressourcendeskriptoren enthalten. Diese Labels müssen ausgefüllt werden, wenn Zeitreihendaten geschrieben werden. Diese Labels enthalten Informationen zum erhobenen Messwert oder zur Ressource, für die der Messwert geschrieben wird. Die Labels einer Zeitreihe können beispielsweise eine VM, eine Zone, ein Google Cloud Projekt und einen Gerätetyp identifizieren. Wenn Monitoring eine Benachrichtigung auf Grundlage dieser Zeitreihe erstellt, werden die Labels an die Benachrichtigung weitergegeben.
App Hub-Labels
App Hub hängt Labels an Log-, Messwert- und Trace-Daten an, die von einer Anwendung und ihren Diensten und Arbeitslasten generiert werden. Mit diesen Labels kann die Google Cloud Infrastruktur Dashboards für Anwendungen, Dienste und Arbeitslasten erstellen, die Messwert- und Logdaten enthalten. Weitere Informationen finden Sie in einem der folgenden Dokumente:
- Google Cloud Console: Benachrichtigungsrichtlinie mit einer App Hub-Anwendung verknüpfen.
- Cloud Monitoring API: Benachrichtigungsrichtlinie mit einer App Hub-Anwendung verknüpfen.
Labels ansehen
Sie können die Labels einer Benachrichtigungsrichtlinie oder einer Benachrichtigung auf der Detailseite einer Benachrichtigung, der Detailseite einer Benachrichtigungsrichtlinie, und in einigen Benachrichtigungen ansehen.
- Benachrichtigungsrichtlinien: Statische benutzerdefinierte Labels sind im Abschnitt Benutzerlabels aufgeführt. Dynamische benutzerdefinierte Labels und vordefinierte Labels sind nicht sichtbar.
- Benachrichtigungen: Statische benutzerdefinierte Labels sind im Abschnitt Richtlinienlabels und dynamische benutzerdefinierte Labels im Abschnitt Messwertlabels aufgeführt. Vordefinierte Labels sind in den Abschnitten Labels für überwachte Ressourcen und Messwertlabels aufgeführt.
Benachrichtigungen: Vordefinierte und benutzerdefinierte Labels sind in den folgenden Benachrichtigungstypen aufgeführt:
- Google Chat
- PagerDuty
- Pub/Sub
- Webhook
Beispiel: Benutzerdefinierte Labels mit dynamischen Werten hinzufügen
Mit PromQL können Sie ein Label so konfigurieren, dass sich sein Wert dynamisch basierend auf Zeitreihendaten ändert. Beispiel: Ihre Benachrichtigungen sollen ein Label criticality haben, dessen Wert sich je nach Wert des überwachten Messwerts für die CPU-Auslastung ändert:
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
"criticality", "CRITICAL", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
"criticality", "WARNING", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
"criticality", "INFO", "", ""
)
or ignoring (criticality)
label_replace(
avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
"criticality", "GOOD", "", ""
)
Die folgende Abbildung zeigt, wie Benachrichtigungsrichtlinien, die PromQL-Abfragen verwenden, die überwachten Zeitreihendaten verarbeiten:
Der Richtlinienhandler verarbeitet die Daten zur CPU-Auslastung und gibt eine Zeitreihe aus, die angibt, wann die Bedingung erfüllt ist. Im vorherigen Beispiel ist die Bedingung erfüllt, wenn die CPU-Auslastung mindestens 70 % beträgt. Für jede Eingabezeitreihe kann der Richtlinienhandler eine von vier Zeitreihen generieren:
| Name der Ausgabezeitreihe | Bedingung erfüllt | Beschreibung |
|---|---|---|
| „GOOD“ | Nein | Diese Zeitreihe hat dieselben Labels wie die Eingabezeitreihe. Sie hat kein Label für den Schweregrad. |
| „CRITICAL“ | Ja | Die CPU-Auslastung beträgt mindestens 90%. Die Ausgabezeitreihe hat dieselben Labels wie die Zeitreihe „GOOD“ sowie ein Label für den Schweregrad mit dem Wert „CRITICAL“. |
| „WARNING“ | Ja | Die CPU-Auslastung beträgt mindestens 80 %, aber weniger als 90%. Die Ausgabezeitreihe hat dieselben Labels wie die Zeitreihe „GOOD“ sowie ein Label für den Schweregrad mit dem Wert „WARNING“. |
| „INFO“ | Ja | Die CPU-Auslastung beträgt mindestens 70 %, aber weniger als 80%. Die Ausgabezeitreihe hat dieselben Labels wie die Zeitreihe „GOOD“ sowie ein Label für den Schweregrad mit dem Wert „INFO“. |
Die vom Richtlinienhandler generierten Zeitreihendaten sind die Eingabe für den
Benachrichtigungsmanager, der bestimmt, wann Benachrichtigungen erstellt und
geschlossen werden. Um zu bestimmen, wann eine Benachrichtigung geschlossen werden soll, verwendet der Benachrichtigungsmanager die Werte der Felder duration, evaluationMissingData und autoClose.
Best Practices
So prüfen Sie, ob jeweils höchstens eine Benachrichtigung geöffnet ist, wenn Sie Labels erstellen, deren Werte dynamisch festgelegt werden:
Überschreiben Sie im Objekt
MetricThresholddie Standardwerte für die folgenden Felder:- Feld
duration: Legen Sie einen Wert ungleich null fest. - Feld
evaluationMissingData: Legen Sie fest, dass Benachrichtigungen geschlossen werden, wenn keine Daten mehr eingehen. Wenn Sie die Cloud Monitoring API verwenden, legen Sie dieses Feld aufEVALUATION_MISSING_DATA_INACTIVEfest. Wenn Sie die Google Cloud Console verwenden, legen Sie das Feld auf „Fehlende Datenpunkte werden als Werte behandelt, die nicht gegen die Richtlinienbedingung verstoßen“ fest.
- Feld
Legen Sie im
AlertStrategyObjekt dasautoCloseFeld auf den Mindestwert von 30 Minuten fest. Wenn Sie die Cloud Monitoring API verwenden, legen Sie dieses Feld auf30mfest.
Weitere Informationen finden Sie unter Teilweise Messwertdaten.
Benachrichtigungsablauf
Angenommen, die Messwerte für die CPU-Auslastung liegen unter 70 %, wenn die Benachrichtigungsrichtlinie erstellt wird. Die folgende Sequenz zeigt, wie Benachrichtigungen geöffnet und geschlossen werden:
Da die Messwerte für die CPU-Auslastung unter 70 % liegen, generiert der Richtlinienhandler die Zeitreihe „GOOD“ und es werden keine Benachrichtigungen geöffnet.
Angenommen, die CPU-Auslastung steigt auf 93%. Der Richtlinienhandler beendet die Generierung der Zeitreihendaten „GOOD“ und beginnt mit der Generierung von Daten für die Zeitreihe „CRITICAL“.
Der Benachrichtigungsmanager sieht eine neue Zeitreihe „CRITICAL“, die die Bedingung erfüllt, und öffnet dann eine Benachrichtigung. Die Benachrichtigung enthält das Label für den Schweregrad mit dem Wert
CRITICAL.Angenommen, die CPU-Auslastung sinkt auf 75%. Der Richtlinienhandler beendet die Generierung der Zeitreihe „CRITICAL“ und beginnt mit der Generierung der Zeitreihe „INFO“.
Der Benachrichtigungsmanager sieht eine neue Zeitreihe „INFO“, die die Bedingung erfüllt, und öffnet dann eine Benachrichtigung. Die Benachrichtigung enthält das Label für den Schweregrad mit dem Wert
INFO.Der Benachrichtigungsmanager sieht, dass keine Daten für die Zeitreihe „CRITICAL“ eingehen und dass eine Benachrichtigung für diese Zeitreihe geöffnet ist. Da die Richtlinie so konfiguriert ist, dass Benachrichtigungen geschlossen werden, wenn keine Daten mehr eingehen, schließt der Benachrichtigungsmanager die Benachrichtigung, die mit der Zeitreihe „CRITICAL“ verknüpft ist. Daher bleibt nur die Benachrichtigung geöffnet, deren Label für den Schweregrad den Wert
INFOhat.Angenommen, die CPU-Auslastung sinkt auf 45%. Dieser Wert liegt unter allen Schwellenwerten. Daher beendet der Richtlinienhandler die Generierung der Zeitreihe „INFO“ und beginnt mit der Generierung der Zeitreihe „GOOD“.
Der Benachrichtigungsmanager sieht, dass keine Daten für die Zeitreihe „INFO“ eingehen und dass eine Benachrichtigung für diese Zeitreihe geöffnet ist. Da die Richtlinie die empfohlenen Einstellungen verwendet, wird die Benachrichtigung geschlossen.
Wenn Sie nicht den empfohlenen Wert für das Feld evaluationMissingData verwenden, werden offene Benachrichtigungen nicht sofort geschlossen, wenn keine Daten mehr eingehen.
Das kann dazu führen, dass mehrere offene Benachrichtigungen für dieselbe Eingabezeitreihe angezeigt werden. Weitere Informationen finden Sie unter
Teilweise Messwertdaten.