Logvolumen mit Observability Analytics analysieren

Mit Observability Analytics können Sie das abrechenbare Volumen Ihrer Logeinträge schätzen, um Ihre Logging-Kosten nachzuvollziehen und zu verwalten. Sie können SQL-Abfragen schreiben, um das Logvolumen nach Dimensionen wie Ressourcentyp oder Anwendungsname zu aggregieren und die Ergebnisse dann anzusehen oder in einem Diagramm darzustellen.

Abrechenbares Volumen abfragen

Das abrechenbare Volumen eines Logeintrags, also die Größe, die an Cloud Billing gemeldet wird, ist über das Feld storage_bytes verfügbar. In Ihren Abfragen können Sie das Feld storage_bytes genauso verwenden wie jedes Schemafeld, dessen Datentyp INTEGER ist. Sie können sie beispielsweise in SELECT-Klauseln, in CASE-Anweisungen und in allgemeinen Tabellenausdrücken einfügen. Weitere Informationen zum Abfragen Ihrer Logs finden Sie in den folgenden Dokumenten:

Da Cloud Billing das abrechenbare Volumen zur Ermittlung Ihrer Kosten verwendet, können Sie Abfragen schreiben, mit denen Sie die Quellen Ihrer Kosten nachvollziehen können. Sie können beispielsweise Abfragen schreiben, mit denen Sie ermitteln können, welche Anwendungen die meisten Logeinträge schreiben. Informationen dazu, wie Sie das abrechenbare Volumen mit den Kosten in Beziehung setzen, finden Sie auf der Seite Google Cloud Observability – Preise im Abschnitt zu Cloud Logging.

Das abrechenbare Volumen eines Logeintrags entspricht nicht der Größe des LogEntry-Objekts, das an die Cloud Logging API gesendet wurde. Das abrechenbare Volumen umfasst Bytes, die für die Serialisierung und Metadaten erforderlich sind.

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.

Beispielabfragen

In diesem Abschnitt finden Sie Beispielabfragen, mit denen Daten aus einer einzelnen Logansicht analysiert werden. Wenn Sie Daten in mehreren Logansichten speichern und aggregierte Werte für die in diesen Ansichten gespeicherten Daten berechnen möchten, müssen Sie die UNION-Anweisung verwenden.

Sie können Ihre Logeinträge über die Seite Observability Analytics oder überall dort abfragen, wo Sie BigQuery-Datasets abfragen können, einschließlich der Seiten BigQuery Studio und Looker Studio sowie des bq-Befehlszeilentools.

So verwenden Sie die Beispielabfragen:

  • Seite Observability Analytics: Ersetzen Sie VIEW durch den Namen der Logansicht. Das Format ist project_ID.region.bucket_ID.view_ID.

    Zu Loganalysen

  • BigQuery-Datasets: Ersetzen Sie VIEW durch den Pfad zur Tabelle im verknüpften BigQuery-Dataset.

    Zu BigQuery Studio

Logvolumen nach Anwendung abfragen

Verwenden Sie die folgende Abfrage, um die Gesamtbytes pro Tag und Anwendung für Ihre Logeinträge zu berechnen, die für eine Google Kubernetes Engine-Ressource geschrieben wurden und eine JSON-Nutzlast haben:

SELECT
  timestamp_trunc(timestamp,DAY) as day,
  JSON_VALUE(labels["k8s-pod/app"]) as app_id,
  SUM(storage_bytes) as total_bytes
FROM
  `VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"
GROUP BY ALL

Sie können ein Diagramm erstellen, um die Daten zu visualisieren.

Im folgenden Beispiel werden die Daten als gestapeltes Balkendiagramm angezeigt. Jeder Balken im Diagramm zeigt die Gesamtzahl der gespeicherten Byte, sortiert nach Anwendung. In diesem Beispiel generiert die Anwendung frontend die meisten Logdaten:

Beispieldiagramm mit den Ergebnissen einer Abfrage des Logvolumens nach Anwendung.

Logvolumen nach Logname abfragen

Verwenden Sie die folgende Abfrage, um die Anzahl der gespeicherten Byte und den Lognamen für jeden Logeintrag aufzulisten, der eine JSON-Nutzlast hat und für eine Google Kubernetes Engine-Ressource geschrieben wurde:

SELECT
  log_id AS log_name,
  storage_bytes
FROM
  `VIEW`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"

In der vorherigen Abfrage werden die Ergebnisse nicht aggregiert. Stattdessen gibt es für jeden Logeintrag eine Zeile, die einen Lognamen und die Anzahl der gespeicherten Byte enthält. Wenn Sie diese Daten in einem Diagramm darstellen, können Sie den Teil Ihrer Logdaten visualisieren, der in verschiedene Logs geschrieben wird:

Beispieldiagramm mit den Ergebnissen einer Abfrage des Logvolumens nach Lognamen.

Das vorherige Diagramm zeigt, dass die meisten Logdaten in das Log mit dem Namen stdout geschrieben werden.

Mit dem bq-Befehlszeilentool das Logvolumen nach Lognamen abfragen

Sie können das Feld storage_bytes in Abfragen einfügen, die Sie über die Seite BigQuery Studio oder mit dem bq-Befehlszeilentool ausführen.

Die folgende Abfrage gibt den Lognamen und die Anzahl der gespeicherten Byte für jeden Logeintrag zurück:

bq query --use_legacy_sql=false  'SELECT log_id as log_name,
  storage_bytes FROM `VIEW`'

Das Ergebnis dieser Abfrage sieht in etwa so aus:

+----------+---------------+
| log_name | storage_bytes |
+----------+---------------+
| stdout   |           716 |
| stdout   |           699 |
| stdout   |           917 |
| stdout   |           704 |

Jede Zeile entspricht einem Logeintrag. Der Wert der Spalte storage_bytes ist das abrechenbare Volumen für diesen Logeintrag.

Beschränkungen

Das Feld storage_bytes ist nur verfügbar, wenn Folgendes zutrifft:

  • Der Log-Bucket wird für die Verwendung von Observability Analytics aktualisiert.
  • Ihre Abfrage wird auf der Seite Observability Analytics oder an einem beliebigen Ort ausgeführt, an dem Sie BigQuery-Datasets abfragen können. Dazu gehören die Seiten BigQuery Studio und Looker Studio sowie das bq-Befehlszeilentool.

  • Der Logeintrag wurde am oder nach dem 1. Januar 2024 geschrieben.