SQL-Abfrageergebnisse in Diagrammen darstellen

Mit Observability Analytics können Sie SQL-Abfrageergebnisse als Diagramme visualisieren, um Muster und Trends in Ihren Logdaten zu erkennen. Nachdem Sie eine Abfrage zum Suchen und Aggregieren Ihrer Logs ausgeführt haben, können Sie die Ergebnisse in einer Tabelle ansehen, in ein Diagramm umwandeln und die Visualisierung in einem Dashboard speichern.

Im folgenden Diagramm wird beispielsweise die Anzahl der Logeinträge über einen Zeitraum von 12 Stunden nach severity aufgeschlüsselt:

Beispieldiagramm mit einer Aufschlüsselung nach Schweregrad.

Hinweis

In diesem Abschnitt werden die Schritte beschrieben, die Sie ausführen müssen, bevor Sie Observability Analytics verwenden können.

Log-Buckets konfigurieren

Prüfen Sie, ob für Ihre Log-Buckets ein Upgrade zur Verwendung von Observability Analytics durchgeführt wurde:

  1. Rufen Sie in der Google Cloud -Console die Seite Logspeicher auf.

    Zum Logspeicher

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.

  2. Prüfen Sie für Log-Buckets mit einer Logansicht, die Sie abfragen möchten, ob in der Spalte Observability Analytics verfügbar die Option Öffnen angezeigt wird. Wenn Upgrade angezeigt wird, klicken Sie auf Upgrade und schließen Sie das Dialogfeld.

IAM-Rollen und ‑Berechtigungen konfigurieren

In diesem Abschnitt werden die IAM-Rollen oder -Berechtigungen beschrieben, die für die Verwendung von Observability Analytics erforderlich sind:

  • Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung von Observability Analytics und zum Abfragen von Logansichten benötigen:

    • So fragen Sie die Log-Buckets _Required und _Default ab: Loganzeige (roles/logging.viewer)
    • So fragen Sie alle Logansichten in einem Projekt ab: Logs View Accessor (roles/logging.viewAccessor)

    Sie können einen Prinzipal auf eine bestimmte Logansicht beschränken, indem Sie entweder eine IAM-Bedingung für die auf Projektebene erteilte Rolle „Logs View Accessor“ hinzufügen oder eine IAM-Bindung zur Richtliniendatei der Logansicht hinzufügen. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht steuern.

    Dies sind dieselben Berechtigungen, die Sie benötigen, um Logeinträge auf der Seite Log-Explorer aufzurufen. Informationen zu zusätzlichen Rollen, die Sie zum Abfragen von Ansichten in benutzerdefinierten Buckets oder zum Abfragen der _AllLogs-Ansicht des _Default-Log-Buckets benötigen, finden Sie unter Cloud Logging-Rollen.

  • Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Observability Analytics User (roles/observability.analyticsUser) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen von Analyseansichten benötigen.

  • Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Monitoring Editor (roles/monitoring.editor) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Diagrammen benötigen.

Daten für das Diagramm auswählen

Wenn Sie konfigurieren möchten, welche Daten in einem Diagramm angezeigt werden sollen, erstellen Sie eine Abfrage mit SQL. Wenn Sie den Tab Diagramm auswählen, werden die Abfrageergebnisse in einem Diagramm angezeigt. Nachdem Sie die Abfrage ausgeführt und ein Diagramm generiert haben, können Sie das Diagramm anpassen, indem Sie den Diagrammtyp ändern und Spalten auswählen, um andere Daten anzuzeigen.

So rufen Sie Ihre Abfrageergebnisse als Diagramm auf:

  1. Rufen Sie in der Google Cloud Console die Seite Observability Analytics auf:

    Zu Observability Analytics

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.

  2. Geben Sie im Bereich Abfrage eine Abfrage ein und klicken Sie auf Ausführen.

  3. Nachdem die Abfrage abgeschlossen ist, wählen Sie auf dem Tab Ergebnisse aus, wie Sie die Abfrageergebnisse ansehen möchten:

    • Tabelle: Nur tabellarisches Format.

    • Diagramm: Nur Diagrammformat.

    • Beide: Diagramm- und Tabellenformat.

      Nachdem Sie ausgewählt haben, wie die Abfrageergebnisse angezeigt werden sollen, können Sie alle Felder für die ausgewählte Visualisierung konfigurieren und die Abfrage und die Ergebnisse dann in einem benutzerdefinierten Dashboard speichern. Wenn Sie die Option Tabelle ausgewählt haben, wird das Format als Tabelle gespeichert. Andernfalls ist das Format ein Diagramm.

      Bei Diagrammen können Sie mit den Visualisierungsoptionen den Diagrammtyp auswählen und festlegen, welche Zeilen und Spalten im Diagramm dargestellt werden sollen. Weitere Informationen zur Diagrammkonfiguration finden Sie unter Diagrammkonfiguration anpassen.

Diagrammkonfiguration anpassen

Sie können die Diagrammkonfiguration anpassen, indem Sie den Diagrammtyp ändern, die Dimension und den Messwert für das Diagramm auswählen und eine Aufschlüsselung anwenden. Die Dimension wird verwendet, um Zeilen zu gruppieren oder zu kategorisieren, und ist der Wert der X-Achse. Der Messwert oder der Wert auf der Y-Achse ist eine Datenreihe, die auf der Y-Achse dargestellt wird.

Diagrammtyp ändern

Je nachdem, welche Zeilen und Spalten Sie als Dimension und Messwert ausgewählt haben und wie diese Daten visualisiert werden sollen, können Sie aus den folgenden Diagrammtypen auswählen.

  • Balkendiagramm (Standard): In Balkendiagrammen werden Daten auf zwei Achsen dargestellt. Wenn Ihr Diagramm eine Kategorie oder einen String als Dimension verwendet, können Sie die Diagrammkonfiguration für ein Balkendiagramm auf horizontal oder vertikal festlegen, wobei die Dimensions- und Messwertachsen vertauscht werden.

  • Liniendiagramm: Liniendiagramme können verwendet werden, um Datenänderungen im Zeitverlauf darzustellen. In einem Liniendiagramm wird jede Zeitreihe durch eine andere Linie dargestellt, die den von Ihnen ausgewählten Messwerten entspricht.

    Wenn die X-Achse zeitbasiert ist, wird jeder Datenpunkt am Anfang eines Zeitintervalls platziert. Die einzelnen Datenpunkte sind durch lineare Interpolation verbunden.

  • Gestapeltes Flächendiagramm: Ein Flächendiagramm basiert auf einem Liniendiagramm. Der Bereich unter jeder Linie ist schattiert. In Flächendiagrammen werden die Datenreihen gestapelt. Wenn Sie beispielsweise zwei identische Reihen haben, überlappen sich die Reihen in einem Liniendiagramm, aber der schattierte Bereich wird in einem Flächendiagramm gestapelt.

  • Kreis- oder Ringdiagramm: In einem Kreisdiagramm wird dargestellt, wie sich Kategorien in einem Dataset zum gesamten Dataset verhalten. Dabei wird das gesamte Dataset durch einen Kreis und die Kategorien im Dataset durch Segmente im Kreis dargestellt. Die Größe eines Segments gibt an, wie viel die Kategorie zum Ganzen beiträgt, oft als Prozentsatz.

  • Tabelle: In einer Tabelle wird für jede Zeile im Abfrageergebnis eine Zeile angezeigt. Die Spalten in der Tabelle werden durch die SELECT-Klausel definiert. Wenn Sie Daten in Tabellenform auf einem Dashboard anzeigen möchten, verwenden Sie eine LIMIT-Klausel, um die Anzahl der Zeilen im Ergebnis auf weniger als ein paar Hundert zu beschränken.

  • Gauge oder Kurzübersicht: Gauges und Kurzübersichten zeigen den aktuellen Wert zusammen mit einer grünen, gelben oder roten Anzeige an, je nachdem, wie hoch dieser Wert im Vergleich zu einer Reihe von Grenzwerten ist. Im Gegensatz zu Gauges, die nur Informationen zum letzten Wert enthalten, können Kurzübersichten auch Informationen zu früheren Werten enthalten.

    In Gauges und Kurzübersichten kann das Abfrageergebnis nur angezeigt werden, wenn es mindestens eine Zeile enthält und diese Zeile eine Spalte mit einem Zeitstempel und eine Spalte mit numerischen Daten enthält. Das Abfrageergebnis kann mehrere Zeilen und mehr als zwei Spalten enthalten.

    Wenn Sie die zeitbasierte Aggregation als Teil Ihrer Abfrage ausführen möchten, gehen Sie so vor:

    • Konfigurieren Sie Ihre Abfrage so, dass Daten über ein Zeitintervall aggregiert werden, die Ergebnisse nach absteigenden Zeitstempeln sortiert werden und die Anzahl der Zeilen in den Ergebnissen begrenzt wird. Sie können die LIMIT-Klausel oder die Zeitraumauswahl verwenden, um die Anzahl der Zeilen im Abfrageergebnis zu begrenzen.

      Im folgenden Beispiel wird eine Logansicht abgefragt, die Daten werden nach Stunde aggregiert, ein Limit wird angewendet und die Ergebnisse werden sortiert:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10

      Im Folgenden wird die Bedeutung der Felder im vorherigen Ausdruck beschrieben:

      • PROJECT_ID: Die Kennung des Projekts.
      • LOCATION: Der Speicherort der Logansicht oder der Analyseansicht.
      • BUCKET_ID: Der Name oder die ID des Log-Buckets.
      • LOG_VIEW_ID: Die Kennung der Logansicht. Sie ist auf 100 Zeichen begrenzt und darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten.

    • Legen Sie die Dimension so fest, dass sie der Spalte mit der Zeiteinheit entspricht. Wenn Ihre Abfrage beispielsweise Daten nach einer Stunde aggregiert und eine Spalte mit dem Namen hour erstellt, setzen Sie das Menü Dimension auf hour.

    • Wählen Sie Intervall deaktivieren aus, da in Ihrer Abfrage bereits das Aggregationsintervall angegeben ist. In diesem Beispiel beträgt das Intervall eine Stunde.

    • Legen Sie für Messwert die numerische Spalte und für die Funktion Keine fest.

    Wenn Sie die zeitbasierte Aggregation von Observability Analytics durchführen lassen möchten, gehen Sie so vor:

    • Konfigurieren Sie die Zeitraumauswahl, die sich auf die Anzahl der Zeilen im Abfrageergebnis auswirkt.
    • Legen Sie die Dimension so fest, dass sie der Spalte mit der Zeiteinheit entspricht. Sie können dieses Menü beispielsweise auf timestamp festlegen.
    • Legen Sie im Menü Intervall ein bestimmtes Aggregationsintervall fest. Legen Sie beispielsweise den Wert dieses Felds auf 1 hour fest. Wählen Sie nicht Automatisches Intervall aus.
    • Legen Sie den Messwert auf die numerische Spalte fest und wählen Sie eine Funktion wie Summe aus.

Dimension und Messwert ändern

Sie können auswählen, welche Zeilen und Spalten im Diagramm dargestellt werden, indem Sie die Dimensions- und Messwertfelder auswählen.

  • Dimension

    Die Dimension muss eine Zeitstempel-, numerische oder Stringspalte sein. Standardmäßig ist die Dimension auf die erste zeitstempelbasierte Spalte im Schema festgelegt. Wenn in der Abfrage kein Zeitstempel vorhanden ist, wird die erste Stringspalte als Dimension ausgewählt. Im Bereich Diagrammanzeige können Sie auch die Dimension anpassen. Wenn eine Zeitstempelspalte als Dimension ausgewählt ist, zeigt das Diagramm, wie sich die Daten im Laufe der Zeit ändern. Wenn eine Stringspalte als Dimension für ein Balkendiagramm ausgewählt ist, können Sie die Daten in aufsteigender oder absteigender Reihenfolge sortieren. Dadurch wird die Dimension nach lexikalischer Reihenfolge sortiert. Sie können auch die Sortierreihenfolge „default“ beibehalten, bei der die Dimension anhand der Werte des entsprechenden Measures in absteigender Reihenfolge sortiert wird.

    Standardmäßig wird das Intervall für Zeitstempel automatisch festgelegt. Sie können aber auch ein benutzerdefiniertes Intervall auswählen. Bei automatischen Intervallen werden die Werte basierend auf der Zeitauswahl geändert, um ähnlich große Gruppen beizubehalten.

    Sie können das Intervall auch deaktivieren. So können Sie für komplexere Analysen eigene Aggregationen und Zeiträume in der Abfrage angeben. Wenn Sie das Intervall deaktivieren, wird die Aggregationsfunktion der Messwerte auf none gesetzt. Wenn das Dimensionsintervall deaktiviert ist, sind nur numerische Messwerte zulässig.

  • Messen

    Im Bereich Diagrammanzeige können Sie mehrere Messwerte auswählen. Wenn Sie einen Messwert auswählen, müssen Sie auch die Aggregationsfunktion auswählen, die für die gruppierten Werte ausgeführt werden soll, z. B. count, sum, average und percentile-99. Beispielsweise gibt count-distinct die Anzahl der eindeutigen Werte in einer bestimmten Spalte zurück.

    Wenn Sie das Kästchen Intervall deaktivieren für die Dimension aktivieren, ist die Aggregationsfunktionsoption none verfügbar. Wenn die Dimension ein Stringwert ist, wird das Kästchen Intervall deaktivieren nicht angezeigt. Wenn Sie die Aggregationsfunktionen eines Messwerts auf none festlegen, wird das Intervall jedoch ebenfalls deaktiviert.

Aufschlüsselung hinzufügen

Wenn Sie eine einzelne Datenreihe anhand einer anderen Spalte in mehrere Datenreihen aufteilen möchten, fügen Sie eine Aufschlüsselung hinzu.

Wählen Sie bei der Aufschlüsselung Spalten mit einer kleinen Anzahl kurzer und aussagekräftiger Labels aus, z. B. region_name. Wählen Sie keine Felder aus, die eine große Anzahl von Strings oder lange Strings enthalten könnten, z. B. textPayload.

Sehen Sie sich beispielsweise die folgende Diagrammkonfiguration an, bei der das Feld Dimension auf type, das Feld Ergebnis auf Zeilen zählen und das Feld Aufschlüsselung auf severity festgelegt ist:

Beispieldiagramm mit einer Aufschlüsselung nach Schweregrad

Im vorherigen Screenshot sehen Sie eine gestapelte Datenreihe, in der der Ressourcentyp k8s_container in verschiedene severity-Typen aufgeteilt ist. So können Sie feststellen, wie viele Logs der einzelnen Schweregrade von einer bestimmten Ressource generiert wurden.

Diagramm in einem benutzerdefinierten Dashboard speichern

Nachdem ein Diagramm aus Ihrer Abfrage generiert wurde, können Sie es in einem benutzerdefinierten Dashboard speichern. Mit benutzerdefinierten Dashboards können Sie Informationen, die für Sie nützlich sind, mithilfe einer Vielzahl von Widget-Typen anzeigen und organisieren. In diesen Dashboards können Sie auch Variablen definieren. Das sind Filter auf Dashboard-Ebene, die nur auf bestimmte Widgets angewendet werden. Wenn Sie eine Variable auf ein Widget anwenden möchten, müssen Sie die Abfrage ändern. Weitere Informationen finden Sie unter Variable auf ein Widget anwenden.

In einem Dashboard wird eine Warnmeldung für ein Widget mit einer SQL-Abfrage angezeigt, wenn die Abfrage in der BigQuery-Engine ausgeführt wird und sich die abgefragten Ressourcen nicht in derselben Eigentumsgrenze befinden. Die Eigentumsgrenzen werden durch mehrere Faktoren bestimmt, darunter die Hierarchie der von der Abfrage verwendeten Ressourcen. Richten Sie einen Dienstperimeter ein, um diese Warnungen zu vermeiden.

So speichern Sie das Diagramm in einem Dashboard:

  1. Rufen Sie in der Google Cloud Console die Seite Observability Analytics auf:

    Zu Observability Analytics

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.

  2. Führen Sie eine Abfrage aus, um ein Diagramm zu generieren, und klicken Sie dann auf Im Dashboard speichern.

  3. Geben Sie im Dialogfeld Im Dashboard speichern einen Titel für das Diagramm ein und wählen Sie das Dashboard aus, in dem Sie das Diagramm speichern möchten.

  4. Optional: Klicken Sie in der Toast-Benachrichtigung auf Dashboard ansehen, um das benutzerdefinierte Dashboard aufzurufen.

Wenn Sie eine Liste der benutzerdefinierten Dashboards aufrufen möchten, die Diagramme enthalten, die von SQL-Abfragen generiert wurden, klicken Sie auf den Button Im Dashboard speichern und dann auf Menü.

In einem benutzerdefinierten Dashboard gespeichertes Diagramm bearbeiten

Sie können ein Diagramm ändern, nachdem es in einem Dashboard gespeichert wurde. Weitere Informationen finden Sie unter Widget-Konfiguration ändern. Im Dialogfeld Widget konfigurieren können Sie Folgendes tun:

  • Ändern Sie die abgefragten Daten.
  • Abfrage bearbeiten, die zum Erstellen eines Diagramms verwendet wird.
  • Passen Sie die Diagrammkonfiguration an, um andere Daten zu visualisieren.

Beschränkungen

  • Wenn sich Ihr Google Cloud -Projekt in einem Ordner befindet, der Assured Workloads verwendet, können die von Ihnen generierten Diagramme nicht in einem benutzerdefinierten Dashboard angezeigt werden.

  • Filter auf Dashboard-Ebene werden nicht auf Diagramme angewendet, die aus einer SQL-Abfrage generiert wurden.

  • Ausgewählte Spalten müssen mindestens eine Zeile mit einem Wert ungleich null enthalten.

  • Wenn Sie eine Abfrage speichern und die Diagrammkonfiguration anpassen, wird die benutzerdefinierte Diagrammkonfiguration nicht gespeichert.

  • Wenn Ihre Abfrage bereits Aggregationen enthält, kann das generierte Diagramm aufgrund einer zusätzlichen Aggregation, die automatisch von Observability Analytics angewendet wird, anders aussehen.

  • JSON-Pfade müssen in Strings oder Zahlen umgewandelt werden, damit sie in Diagrammen dargestellt werden können.

Beispielabfragen

In diesem Abschnitt finden Sie SQL-Beispielabfragen zum Erstellen von Diagrammen für Ihre Abfrageergebnisse. Wenn Sie mehr nützliche Informationen aus Ihren Logs gewinnen möchten, passen Sie die Diagrammkonfiguration an. So verwenden Sie die Beispielabfragen:

  1. Rufen Sie in der Google Cloud Console die Seite Observability Analytics auf:

    Zu Observability Analytics

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.

  2. Ermitteln Sie den Tabellennamen für die Logansicht, die Sie abfragen möchten.

    Um diesen Namen zu ermitteln, rufen Sie die Liste Logansichten auf, suchen Sie die Logansicht und wählen Sie dann Abfrage aus. Der Bereich Abfrage ist mit einer Standardabfrage ausgefüllt, die den Tabellennamen der abgefragten Logansicht enthält. Der Tabellenname hat das Format project_ID.region.bucket_ID.view_ID.

    Weitere Informationen zum Zugriff auf die Standardabfrage finden Sie unter Logansicht abfragen.

  3. Ersetzen Sie VIEW durch den Tabellennamen für die Logansicht, die Sie abfragen möchten, und kopieren Sie dann die Abfrage.

  4. Fügen Sie die Abfrage im Bereich Abfrage ein und klicken Sie dann auf Abfrage ausführen.

Logeinträge nach Standort und Schweregrad in einem Diagramm darstellen

Mit der folgenden Abfrage werden location und severity ausgewählt, wobei der Standort als String umgewandelt wird:

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `VIEW`
WHERE resource.labels.location IS NOT NULL

Ein Beispieldiagramm und eine Beispielkonfiguration sehen so aus:

Beispieldiagramm, in dem Logeinträge nach Standort und Schweregrad dargestellt werden.

Im vorherigen Screenshot hat die Diagrammkonfiguration die folgende Diagrammkonfiguration:

  • Diagrammtyp: Balkendiagramm, horizontal
  • Dimension: location, mit einem Limit von 10
  • Messwert: Zeilen zählen
  • Aufschlüsselung: severity, maximal fünf

BigQuery-Audit-Logs für den Datenzugriff in Diagrammen darstellen

Die folgende Abfrage filtert nach BigQuery-data_access-Audit-Logs und wählt bestimmte Felder aus, z. B. user_email, ip, auth_permission und job_execution_project. Sie können beispielsweise ein Diagramm erstellen, das die Häufigkeit der BigQuery API-Nutzung der einzelnen Hauptkonten im Zeitverlauf visualisiert.

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `VIEW` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

Ein Beispieldiagramm und eine Beispielkonfiguration sehen so aus:

Beispieldiagramm für BigQuery-Audit-Logs zum Datenzugriff

Im vorherigen Screenshot hat die Diagrammkonfiguration die folgende Diagrammkonfiguration:

  • Diagrammtyp: Balkendiagramm, vertikal
  • Dimension: user_email, maximal fünf
  • Messwert: Zeilen zählen
  • Aufschlüsselung: auth_permission, maximal fünf

Nächste Schritte