Einem benutzerdefinierten Dashboard dauerhafte Filter hinzufügen

In diesem Dokument wird beschrieben, wie Sie Ihren benutzerdefinierten Dashboards dauerhafte Filter auf Dashboardebene hinzufügen können. Permanente Filter, mit denen Sie die von einem Dashboard angezeigten Daten ändern können, ohne jedes Widget ändern zu müssen, haben einen Standardstatus und können auf das gesamte Dashboard oder nur auf bestimmte Widgets angewendet werden. In der Dashboard-Symbolleiste werden alle permanenten Filter zusammen mit einem Menü angezeigt, über das Sie den Wert des Filters vorübergehend ändern können.

Wenn Sie eine Standardpräsentation von Daten auf einem Dashboard zusammen mit menübasierten Optionen zum Ändern dieser Anzeige definieren möchten, fügen Sie permanente Filter hinzu. Wenn Sie beispielsweise Messwerte für alle Zonen und auch für eine bestimmte Zone sehen möchten, erstellen Sie einen permanenten Filter auf der Grundlage des Labels zone.

Sie können mit der Google Cloud Console oder der Cloud Monitoring API permanente Filter erstellen und anwenden. In diesem Dokument wird die Verwendung der Google Cloud Console beschrieben. Informationen zur Verwendung der Cloud Monitoring API finden Sie unter Dashboards nach API erstellen und verwalten: Dashboardfilter.

Informationen zum Hinzufügen und Ändern temporärer Gruppierungen und Filter finden Sie unter Einem benutzerdefinierten Dashboard temporäre Filter hinzufügen.

Funktionsweise von Dashboard-Filtern

Ein Dashboardfilter gibt ein Label und einen Wert an. Die im Dashboard angezeigten Zeitachsen bestimmen, welche Labels zum Filtern verfügbar sind. Wie ein Widget einen Filter für das gesamte Dashboard unterstützt, hängt vom Typ der im Widget angezeigten Daten und der Konfiguration des Widgets ab:

  • Für Widgets, die Zeitreihendaten anzeigen, z. B. Liniendiagramme, gelten die folgenden Regeln:

    • Wenn die vom Widget angezeigte Zeitachse das Label in einem Filter nicht unterstützt, ändert der Filter auf das gesamte Dashboard die angezeigten Daten nicht.

      Wenn Sie beispielsweise einen Filter für das Label instance_id hinzufügen, aber in einem Diagramm im Dashboard keine Daten mit dem Label instance_id angezeigt werden, werden die angezeigten Daten durch den Filter nicht geändert.

    • Wenn im Widget ein Wert für ein Label angegeben ist, werden die angezeigten Daten durch den Filter für das gesamte Dashboard nicht geändert.

      Wenn Sie beispielsweise einen Filter für das Label instance_id hinzufügen, aber ein Diagramm im Dashboard einen Filter basierend auf dem Label instance_id enthält, werden die angezeigten Daten durch den Filter auf das gesamte Dashboard nicht geändert.

    • Andernfalls werden die angezeigten Daten im Diagramm nur nach den Zeitachsen gefiltert, die dem Filter für das gesamte Dashboard entsprechen.

  • Bei Widgets des Logbereichs wird die Abfrage durch Filter auf Dashboard-Ebene, die auf einem Ressourcenlabel basieren, aktualisiert. Wenn Sie beispielsweise den Filter cluster_name: mycluster für das gesamte Dashboard hinzufügen, enthält die Abfrage resource.labels."cluster_name"="mycluster".

Sie können mehrere Filter für das gesamte Dashboard hinzufügen. Diese Filter werden durch ein logisches UND verknüpft.

Hinweise

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Monitoring-Bearbeiter (roles/monitoring.editor) für Ihr Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Hinzufügen oder Ändern dauerhafter Filter mithilfe der Google Cloud Console benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Weitere Informationen zu Rollen finden Sie unter Zugriff mit Identity and Access Management steuern.

Dauerhaften Filter erstellen

Wenn Sie ein Dashboard entwerfen, geben Sie möglicherweise mehrere Möglichkeiten an, die im Dashboard angezeigten Daten anzuzeigen. Wenn in einem Dashboard beispielsweise Messwerte für VM-Instanzen angezeigt werden, möchten Sie möglicherweise Messwerte für alle VMs und Messwerte für VMs in einer bestimmten Zone aufrufen. In diesem Fall könnten Sie einen permanenten Filter für das Label zone erstellen, wobei die Standardeinstellung auf alle Zonen (*) festgelegt ist. Im Dashboard können Sie über das Menü für den Filter zone eine bestimmte Zone auswählen.

Sie können einen dauerhaften Filter auf bestimmte Widgets beschränken. Stellen Sie sich ein Szenario vor, bei dem Sie eine Gegenüberstellung der Messwerte für VMs in zwei verschiedenen Zonen wünschen. Sie erstellen zwei Sammlungen von Diagrammen und für jede Sammlung einen Filter. Ihre Standardkonfiguration erfüllt Ihr ursprüngliches Ziel. Beim Aufrufen des Dashboards werden jedoch Ihre Variablen und Menüs zur Auswahl verschiedener Werte in der Symbolleiste aufgelistet. Mithilfe dieser Menüs können Sie Daten für verschiedene Zonen anzeigen.

Permanente Filter, die nur für bestimmte Widgets gelten, werden manchmal als Vorlagenvariablen bezeichnet. Nachdem Sie einen Filter dieses Typs erstellt haben, können Sie beim Hinzufügen eines Widgets zu Ihrem Dashboard den Filter auch auf dieses Widget anwenden. Weitere Informationen finden Sie unter Permanente Filter auf ein Widget anwenden.

So erstellen Sie einen dauerhaften Filter:

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

    Zu Dashboards

  2. Klicken Sie in der Dashboard-Symbolleiste auf Einstellungen und wählen Sie Filter verwalten aus.
  3. Klicken Sie auf Label und wählen Sie ein Label aus. Sie können beispielsweise zone auswählen.
  4. Klicken Sie auf Standardwert und wählen Sie dann den Standardwert für das Label aus. Wenn alle Werte abgeglichen werden sollen, wählen Sie * aus.

    Nachdem der Filter erstellt wurde, wird er der Dashboard-Symbolleiste hinzugefügt. Wenn Sie den Filterwert vorübergehend ändern möchten, klicken Sie auf den Filter und wählen Sie im Menü eine Option aus.

  5. Führen Sie einen der folgenden Schritte aus:

    • Wählen Sie Auf alle anwenden und dann Anwenden aus, um den Filter auf alle Widgets im Dashboard anzuwenden.

    • So wenden Sie den Filter auf einige Widgets im Dashboard an:

      1. Entfernen Sie das Häkchen bei Auf alle anwenden.
      2. Geben Sie im Textfeld Variablenname einen Anzeigenamen für die Variable ein.
      3. Maximieren Sie das Menü Auf Diagramme anwenden, wählen Sie die Widgets aus, auf die der Filter angewendet werden soll, und klicken Sie dann auf OK.

      4. Klicken Sie auf Anwenden.

Dauerhaften Filter auf ein Widget anwenden

Wenn Sie einen dauerhaften Filter auf ein Widget anwenden möchten, müssen Sie dieses Widget mit der Variablen verknüpfen:

  • Bei Diagrammen, die Sie über Menüs konfigurieren, können Sie diese Verknüpfung beim Erstellen oder Bearbeiten des Filters vornehmen.

  • Bearbeiten Sie im Logbereich das Widget und konfigurieren Sie die Standardabfrage. Folgen Sie der Anleitung im Abschnitt Syntax zum Anwenden eines permanenten Filters.

  • Bearbeiten Sie bei MQL- oder PromQL-definierten Diagrammen und Tabellen das Diagramm bzw. die Tabelle und ändern Sie dann die MQL bzw. PromQL. Beachten Sie die Anweisungen im Abschnitt Syntax zum Anwenden eines permanenten Filters.

Syntax zum Anwenden eines dauerhaften Filters

Das folgende Beispiel zeigt die JSON-Teildarstellung eines Dashboards, das eine Vorlagenvariable und einen Dashboard-weiten Filter definiert:

{
  "dashboardFilters": [
      {
        "filterType": "RESOURCE_LABEL",
        "labelKey": "instance_id",
        "stringValue": "3133577226154888113",
        "templateVariable": "iid"
      },
      {
        "filterType": "RESOURCE_LABEL",
        "labelKey": "zone"
      }
    ],
  "displayName": "Illustrate Template Variables",
  ...

Im angezeigten JSON-Format bezieht sich der erste Eintrag in der dashboardFilters-Struktur auf eine Vorlagenvariable mit dem Namen iid und einen Filter für das gesamte Dashboard mit dem Labelschlüssel zone. Die Vorlagenvariable ist ein Alias des Labels instance_id.

In der Datenstruktur für eine Vorlagenvariable werden nicht die Widgets aufgelistet, für die sie gilt. Stattdessen verknüpfen Sie ein Widget mit einer Vorlagenvariablen, indem Sie die Abfrage des Widgets so ändern, dass sie einen Verweis auf die Variable enthält. Wenn das Widget im Dashboard angezeigt wird, wird der Wert der Vorlagenvariablen aufgelöst.

In den folgenden Abschnitten wird beschrieben, wie Sie Logbereiche und Diagramme mit Anmerkungen versehen:

Logbereich

Wenn Sie einen Logbereich so konfigurieren möchten, dass die Anzeige nach dem Wert einer Vorlagenvariablen gefiltert wird, fügen Sie die Variable dem Abfragebereich hinzu. Das folgende Beispiel veranschaulicht eine Abfrage, die nach dem Wert der Vorlagenvariablen iid filtert:

${iid}

Bevor im Logbereich die anzuzeigenden Logs abgefragt werden, wird die Vorlagenvariable aufgelöst. Wenn der Wert der Vorlagenvariablen in diesem Beispiel "12345" ist, wird ${iid} durch die Anweisung resource.labels."instance_id"="12345" ersetzt.

Sie können auch nur den Wert einer Vorlagenvariablen in eine Abfrage einbeziehen. Wir empfehlen, den Wert nur als Teil eines Filters zu verwenden, der mit einem regulären Ausdruck definiert ist. Die folgende Abfrage verwendet beispielsweise einen regulären Ausdruck, um Logeinträge abzugleichen, deren JSON-Nutzlast den beschriebenen String enthält:

jsonPayload.message=~"Connected to instance: ${iid.value}"

Wenn Sie eine Abfrage für den Logbereich konfiguriert haben und dann auf die Schaltfläche zum Öffnen des Log-Explorers klicken, werden die Vorlagenvariablen aufgelöst, bevor der Log-Explorer geöffnet wird.

In der folgenden Tabelle sehen Sie, wie die Vorlagenvariable vom Logbereich aufgelöst wird:

Syntax Ausgewählter
Wert
Ausdruck für aufgelösten Logbereich
${iid} 12345 resource.labels."instance_id"="12345"
${iid} * ""
${iid.value} 12345 12345
${iid.value} * .*

MQL-definierte Diagramme und Tabellen

Wenn Sie ein Diagramm mit Monitoring Query Language (MQL) konfigurieren, hängen Sie eine Pipe und die Variable an den Abfragestring an:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| every 1m
| ${iid}

Bevor das Diagramm die anzuzeigende Zeitachse abfragt, wird die Vorlagenvariable aufgelöst. Wenn der Wert der Vorlagenvariablen in diesem Beispiel "12345" ist, wird ${iid} durch die Anweisung filter (resource.instance_id == '12345') ersetzt. Dieser Filter entspricht Zeitachsen, die ein Label mit dem Namen resource.instance_id haben, und nur, wenn der Wert dieses Labels genau 12345 ist.

Wenn Sie Zeitachsen mithilfe eines regulären Ausdrucks filtern möchten, konfigurieren Sie die Abfrage so, dass sie nur den Wert der Vorlagenvariablen enthält. Im Folgenden wird gezeigt, wie Sie mit einem regulären Ausdruck bestimmen, ob der Wert des Labels resource.instance_id den Wert der Vorlagenvariablen iid enthält, um die Syntax zu veranschaulichen:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| filter resource.instance_id=~"${iid.value}"
| group_by 1m, [value_utilization_mean: mean(value.utilization)]
| every 1m

Die folgende Tabelle zeigt, wie die Vorlagenvariable für MQL-Abfragen aufgelöst wird:

Syntax Ausgewählter
Wert
Aufgelöster MQL-Ausdruck
${iid} 12345 filter (resource.instance_id == '12345')
${iid} * filter (true)
${iid.value} 12345 12345
${iid.value} * .*

PromQL-definierte Diagramme und Tabellen

Wenn Sie ein Diagramm mit PromQL definieren, hängen Sie die Variable in geschweiften Klammern an den Abfragestring an:

compute_googleapis_com:instance_cpu_utilization {
    project_id="my-project", ${iid}
}

Bevor das Diagramm die anzuzeigende Zeitachse abfragt, wird die Vorlagenvariable aufgelöst. Wenn der Wert der Vorlagenvariablen in diesem Beispiel "12345" ist, wird ${iid} durch die Anweisung instance_id == '12345' ersetzt.

Ähnlich wie bei MQL kann die Abfrage nur den Wert der Vorlagenvariablen extrahieren, wenn Sie ein Widget mit PromQL definieren. Wir empfehlen, den Wert nur als Teil eines Filters zu verwenden, der mit einem regulären Ausdruck definiert ist. Im Folgenden wird die Syntax veranschaulicht, wie mit einem regulären Ausdruck ermittelt wird, ob der Wert des Labels instance_id den Wert der Vorlagenvariablen iid enthält:

compute_googleapis_com:instance_cpu_utilization{
    instance_id=~"${iid.value}"
}

Die folgende Tabelle zeigt, wie die Vorlagenvariable für PromQL-Abfragen aufgelöst wird:

Syntax Ausgewählter
Wert
PromQL-Ausdruck behoben
${iid} 12345 instance_id == '12345'
${iid} * noop_filter=~".*"
${iid.value} 12345 12345
${iid.value} * .+

Mit Zeitreihenfiltern definierte Diagramme und Tabellen

Wenn Sie ein Diagramm mit Zeitachsenfiltern definieren, hängen Sie die Variable an den Filterstring an:

"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
           resource.type=\"gce_instance\" ${iid}"

Im Gegensatz zu MQL- und PromQL-definierten Diagrammen können Sie den Wert einer Vorlagenvariablen nicht in einem Zeitachsenfilter verwenden.

In der folgenden Tabelle sehen Sie, wie die Vorlagenvariable aufgelöst wird:

Syntax Ausgewählter
Wert
Aufgelöster Filterausdruck
${iid} 12345 resource.instance_id == "12345"
${iid} * Ausgelassen
${iid.value} 12345 Nicht unterstützt
${iid.value} * Nicht unterstützt

Permanente Filter ändern

Wenn Sie den Wert eines Filters vorübergehend ändern möchten, der in der Dashboard-Symbolleiste angezeigt wird, klicken Sie auf den Filternamen und geben Sie entweder einen Wert ein oder wählen Sie im Menü eine Option aus.

So ändern Sie die Konfiguration eines dauerhaften Filters:

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

    Zu Dashboards

  2. Klicken Sie in der Dashboard-Symbolleiste auf Einstellungen und wählen Sie Filter verwalten aus.
  3. Suchen Sie den Filter, den Sie ändern möchten, und nehmen Sie die Änderungen über die Menüs vor.
  4. Klicken Sie auf Anwenden.

Dauerhaften Filter löschen

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

    Zu Dashboards

  2. Klicken Sie in der Dashboard-Symbolleiste auf Einstellungen und wählen Sie Filter verwalten aus.
  3. Suchen Sie den Filter, den Sie entfernen möchten, und klicken Sie auf Löschen.
  4. Klicken Sie auf Anwenden.

Nächste Schritte