SQL-Abfrageergebnisse in Diagrammen darstellen

In diesem Dokument wird beschrieben, wie Sie Ihre Observability Analytics-Abfrageergebnisse in Diagrammen darstellen können, um Muster und Trends in Ihren Logdaten zu erkennen. Mit Observability Analytics können Sie Logs suchen und aggregieren, um mithilfe von SQL-Abfragen nützliche Erkenntnisse zu gewinnen.

Nachdem Sie eine Abfrage ausgeführt haben, können die Abfrageergebnisse in einer Tabelle angezeigt oder in ein Diagramm umgewandelt werden. Die Abfrage und die Visualisierung können in einem Dashboard gespeichert werden. Wenn Sie beispielsweise sehen möchten, welche Schweregradtypen Ihre Logs generieren, erstellen Sie ein Diagramm, in dem die Anzahl der in den letzten 12 Stunden generierten Logs angezeigt wird, und schlüsseln Sie die Logs nach severity auf. Der folgende Screenshot zeigt Datenpunkte, die nach verschiedenen Schweregradtypen aufgeschlüsselt sind:

Beispieldiagramm mit 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 _Required und _Default Log-Buckets 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 Ansicht _AllLogs des Log-Buckets _Default benötigen, finden Sie unter Cloud Logging roles.

  • 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 Monitoring Editor (roles/monitoring.editor) IAM-Rolle für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Diagrammen benötigen.

Daten für 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 Ihre Abfrageergebnisse in einem Diagramm angezeigt. Nachdem die Abfrage ausgeführt und ein Diagramm erstellt wurde, können Sie die Diagrammkonfiguration anpassen, indem Sie den Diagrammtyp ändern und Spalten auswählen, um verschiedene 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 dann auf Ausführen.

  3. Wählen Sie nach Abschluss der Abfrage auf dem Tab Ergebnisse aus, wie Sie Ihre Abfrageergebnisse anzeigen möchten:

    • Tabelle: Nur Tabellenformat.

    • Diagramm: Nur Diagrammformat.

    • Beide: Diagramm- und Tabellenformat.

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

      Bei Diagrammen können Sie mit den Visualisierungsoptionen den Diagrammtyp und die Zeilen und Spalten auswählen, die in Diagrammen 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 das Maß auswählen, die in Diagrammen dargestellt werden sollen, und eine Aufschlüsselung anwenden. Mit der Dimension werden Zeilen gruppiert oder kategorisiert. Sie ist der Wert der X-Achse. Das Maß oder der Wert der Y-Achse ist eine Datenreihe, die auf der Y-Achse dargestellt wird.

Diagrammtyp ändern

Je nachdem, welche Art von Zeilen und Spalten Sie als Dimension und Maß ausgewählt haben und wie Sie diese Daten visualisieren möchten, können Sie aus den folgenden Diagrammtypen auswählen.

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

  • Liniendiagramm: Mit Liniendiagrammen können Datenänderungen im Zeitverlauf dargestellt werden. Wenn Sie ein Liniendiagramm verwenden, wird jede Zeitreihe durch eine andere Linie dargestellt, die den von Ihnen ausgewählten Maßen entspricht.

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

  • Gestapeltes Flächendiagramm: Ein Flächendiagramm basiert auf einem Liniendiagramm. Die Fläche 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, die schattierte Fläche wird jedoch in einem Flächendiagramm gestapelt.

  • Kreis- oder Ringdiagramm: In einem Kreisdiagramm wird dargestellt, wie sich Kategorien in einem Dataset auf das gesamte Dataset beziehen. Dazu wird ein Kreis verwendet, um das gesamte Dataset darzustellen, und Kreissegmente, um die Kategorien im Dataset darzustellen. Die Größe eines Kreissegments 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 in einem Dashboard anzeigen möchten, verwenden Sie eine LIMIT-Klausel, um die Anzahl der Zeilen im Ergebnis auf einige Hundert zu beschränken.

  • Gauge oder Kurzübersicht: Gauges und Kurzübersichten liefern den letzten Wert zusammen mit einer grünen, gelben oder roten Anzeige, je nachdem, wie dieser Wert im Vergleich zu einer Reihe von Grenzwerten ist. Anders als bei 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.

      Die folgende Abfrage fragt beispielsweise eine Logansicht ab, aggregiert Daten nach Stunde, wendet ein Limit an und sortiert die Ergebnisse:

      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 für Dimension die Spalte fest, in der die Zeiteinheit angegeben ist. Wenn Ihre Abfrage beispielsweise Daten nach Stunde aggregiert und eine Spalte mit dem Namen hour erstellt, legen Sie das Menü Dimension auf hour fest.

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

    • Legen Sie für Maß die numerische Spalte fest und setzen Sie die Funktion auf Keine.

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

    • Konfigurieren Sie die Zeitraumauswahl. Dies wirkt sich auf die Anzahl der Zeilen im Abfrageergebnis aus.
    • Legen Sie für Dimension die Spalte fest, in der die Zeiteinheit angegeben ist. Sie können dieses Menü beispielsweise auf timestamp festlegen.
    • Legen Sie im Menü Intervall das Aggregationsintervall auf ein bestimmtes Intervall fest. Legen Sie beispielsweise den Wert dieses Felds auf 1 hour fest. Wählen Sie nicht Automatisches Intervall aus.
    • Legen Sie für Maß die numerische Spalte fest und wählen Sie eine Funktion wie Summe aus.

Dimension und Maß ändern

Sie können auswählen, welche Zeilen und Spalten in Diagrammen dargestellt werden sollen, indem Sie die Felder für Dimension und Maß 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. Sie können auch im Bereich Diagrammanzeige anpassen, was die Dimension ist. Wenn eine Zeitstempelspalte als Dimension ausgewählt ist, zeigt das Diagramm, wie sich die Daten im Zeitverlauf ändern. Wenn eine Stringspalte als Dimension für ein Balkendiagramm ausgewählt ist, können Sie die Daten aufsteigend oder absteigend sortieren. Dadurch wird die Dimension in lexikografischer Reihenfolge sortiert. Sie können auch die Standardsortierreihenfolge beibehalten, bei der die Dimension anhand der Werte des entsprechenden Maßes 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 Zeitraumauswahl geändert, um ähnlich große Gruppen beizubehalten.

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

  • Messen

    Sie können im Bereich Diagrammanzeige mehrere Maße auswählen. Wenn Sie ein Maß 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. count-distinct gibt beispielsweise die Anzahl der eindeutigen Werte in einer bestimmten Spalte zurück.

    Wenn Sie das Kästchen Intervall deaktivieren für die Dimension auswählen, ist die Option für die Aggregationsfunktion none verfügbar. Wenn die Dimension ein Stringwert ist, wird das Kästchen Intervall deaktivieren nicht angezeigt. Wenn Sie die Aggregationsfunktionen eines Maßes auf none setzen, wird das Intervall jedoch auch deaktiviert.

Aufschlüsselung hinzufügen

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

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

Sehen Sie sich beispielsweise die folgende Diagrammkonfiguration an, bei der das Dimension-Feld auf type, das Measure-Feld auf Zeilen zählen und das Breakdown-Feld auf severity gesetzt ist:

Beispieldiagramm mit Aufschlüsselung nach Schweregrad.
width=

Im vorherigen Screenshot sehen Sie eine gestapelte Datenreihe, bei der der Ressourcentyp k8s_container in verschiedene severity-Typen aufgeteilt ist. So können Sie ermitteln, wie viele Logs der einzelnen Schweregradtypen 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 mithilfe verschiedener Widget-Typen nützliche Informationen anzeigen und organisieren. Mit 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 Eigentümerschaftsgrenze befinden. Eigentümerschaftsgrenzen werden durch mehrere Faktoren bestimmt, darunter die Hierarchie der Ressourcen, die von der Abfrage verwendet werden. Wenn Sie diese Warnungen vermeiden möchten, richten Sie einen Dienstperimeter ein.

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 erstellen, und klicken Sie dann auf dem Tab Diagramm auf Diagramm speichern.

  3. Geben Sie im Dialogfeld In 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: Wenn Sie das benutzerdefinierte Dashboard aufrufen möchten, klicken Sie in der Benachrichtigung auf Dashboard ansehen.

Wenn Sie eine Liste der benutzerdefinierten Dashboards aufrufen möchten, die Diagramme enthalten, die mit SQL-Abfragen erstellt wurden, klicken Sie auf die Schaltfläche Diagramm 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 Konfiguration eines Widgets ändern. Im Dialogfeld Widget konfigurieren haben Sie folgende Möglichkeiten:

  • Die abgefragten Daten ändern.
  • Die Abfrage bearbeiten, mit der ein Diagramm erstellt wird.
  • Die Diagrammkonfiguration anpassen, um verschiedene Daten zu visualisieren.

Beschränkungen

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

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

  • Die ausgewählten 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 sich das generierte Diagramm aufgrund zusätzlicher Aggregationen unterscheiden, die automatisch von Observability Analytics angewendet werden.

  • JSON-Pfade müssen in Strings oder Zahlen umgewandelt werden, um in Diagrammen dargestellt zu werden.

Beispielabfragen

In diesem Abschnitt finden Sie Beispiel-SQL-Abfragen zum Erstellen von Diagrammen aus Ihren Abfrageergebnissen. Wenn Sie nützlichere Erkenntnisse 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. Suchen Sie den Tabellennamen für die Logansicht, die Sie abfragen möchten.

    Rufen Sie dazu die Liste Logansichten auf, suchen Sie die Logansicht und wählen Sie 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 in den Bereich Abfrage ein und klicken Sie dann auf Abfrage ausführen.

Logeinträge nach Standort und Schweregrad in Diagrammen 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 mit Logeinträgen für Standort und Schweregrad.

Im vorherigen Screenshot hat die Diagrammkonfiguration die folgenden Einstellungen:

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

Audit-Logs zum BigQuery-Datenzugriff in Diagrammen darstellen

Mit der folgenden Abfrage werden Audit-Logs für den BigQuery-data_access gefiltert und bestimmte Felder wie user_email, ip, auth_permission und job_execution_project ausgewählt. Sie können beispielsweise ein Diagramm erstellen, in dem die Häufigkeit der BigQuery API-Nutzung der einzelnen Prinzipale im Zeitverlauf visualisiert wird.

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 Audit-Logs zum Datenzugriff für BigQuery

Im vorherigen Screenshot hat die Diagrammkonfiguration die folgenden Einstellungen:

  • Diagrammtyp: Balkendiagramm, vertikal
  • Dimension: user_email, mit einem Limit von fünf
  • Maß: Zeilen zählen
  • Aufschlüsselung: auth_permission, mit einem Limit von fünf

Nächste Schritte