In Observability Analytics können Sie SQL-Beispielabfragen verwenden, um Ihre Cloud Trace-Daten zu analysieren, Latenz-Ausreißer zu identifizieren und Perzentile für die Spannen leistung für alle Ihre Dienste zu berechnen.
In diesen Beispielen wird gezeigt, wie Sie in der Ansicht _AllSpans gespeicherte Spannen filtern, gruppieren und aggregieren. Wenn Sie noch keine Abfragen in Observability Analytics geschrieben haben,
lesen Sie zuerst Traces abfragen und analysieren.
Unterstützung von SQL-Sprachen
Für Abfragen auf der Seite Observability Analytics werden GoogleSQL-Funktionen mit einigen Ausnahmen unterstützt.
Die folgenden SQL-Befehle werden für SQL-Abfragen, die über die Seite Observability Analytics ausgegeben werden, nicht unterstützt:
- DDL- und DML-Befehle
- Benutzerdefinierte JavaScript-Funktionen
- BigQuery ML-Funktionen
- SQL-Variablen
Die folgenden Elemente werden nur unterstützt, wenn Sie ein verknüpftes BigQuery-Dataset über die BigQuery Studio und Looker Studio Seiten oder über das bq-Befehlszeilentool abfragen:
- Benutzerdefinierte JavaScript-Funktionen
- BigQuery ML-Funktionen
- SQL-Variablen
Best Practices
Wir empfehlen, den Zeitraum der Abfrage über die Zeitraumauswahl festzulegen. Wenn Sie beispielsweise die Daten der letzten Woche aufrufen möchten, wählen Sie in der Zeitraumauswahl Letzte 7 Tage aus. Sie können auch die Zeitraumauswahl verwenden, um eine Start- und Endzeit festzulegen, eine Uhrzeit anzugeben, um die herum Sie sich die Daten ansehen möchten, und Zeitzonen zu ändern.
Wenn Sie ein start_time-Feld in die WHERE-Klausel einfügen, wird die Einstellung für die Zeitraumauswahl nicht verwendet. Das folgende Beispiel zeigt, wie nach Zeitstempel gefiltert wird:
-- Matches trace spans whose start_time is within the most recent 1 hour. WHERE start_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
Weitere Informationen zum Filtern nach Zeit finden Sie unter Zeitfunktionen und Zeitstempelfunktionen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben Google Cloud, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Laden der Seite Observability Analytics und zum Schreiben, Ausführen und Speichern privater Abfragen für Ihre Trace-Daten benötigen:
- Observability View Accessor (
roles/observability.viewAccessor) für die Observability-Ansichten, die Sie abfragen möchten. Diese Rolle unterstützt IAM-Bedingungen, mit denen Sie die Zuweisung auf eine bestimmte Ansicht beschränken können. Wenn Sie der Rollenzuweisung keine Bedingung hinzufügen, kann das Hauptkonto auf alle Observability-Ansichten zugreifen. - Observability Analytics User (
roles/observability.analyticsUser) für Ihr Projekt. Diese Rolle enthält die Berechtigungen, die zum Speichern und Ausführen privater Abfragen sowie zum Ausführen freigegebener Abfragen erforderlich sind.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
- Observability View Accessor (
Abfragen auf dieser Seite verwenden
-
Rufen Sie in der Google Cloud Console die manage_search Observability Analytics Seite auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Klicken Sie im Bereich Abfrage auf code SQL und kopieren und fügen Sie dann eine Abfrage in den Bereich „SQL-Abfrage“ ein.
Im Folgenden sehen Sie das Format der
FROM-Klausel zum Abfragen der Ansicht_AllSpans:FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
Die
FROM-Klausel enthält die folgenden Felder:- PROJECT_ID: Die Kennung des Projekts.
- LOCATION: Der Speicherort des Observability-Buckets.
_Traceist der Name des Observability-Buckets.Spansist der Name des Datasets._AllSpansist der Name der Ansicht.
Wenn Sie die in diesem Dokument gezeigten Abfragen auf der BigQuery Studio-Seite verwenden oder
das bq-Befehlszeilentool nutzen möchten, bearbeiten Sie die FROM-Klausel und geben Sie den
Pfad zum verknüpften BigQuery-Dataset ein.
Wenn Sie beispielsweise die
_AllSpans Ansicht für das verknüpfte BigQuery-Dataset mit dem Namen
my_linked_dataset
im Projekt myproject abfragen möchten, lautet der Pfad
`myproject.my_linked_dataset._AllSpans`.
Gängige Anwendungsfälle
In diesem Abschnitt werden einige gängige Anwendungsfälle aufgeführt, die Ihnen bei der Erstellung Ihrer benutzerdefinierten Abfragen helfen können.
Alle Trace-Daten anzeigen
Führen Sie die folgende Abfrage aus, um die Ansicht _AllSpans abzufragen:
-- Display all data.
SELECT *
FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
-- Limit to 10 entries.
LIMIT 10
Allgemeine Informationen zu Spannen anzeigen
Führen Sie die folgende Abfrage aus, um allgemeine Informationen zu Spannen wie Startzeit und Dauer anzuzeigen:
SELECT
start_time,
-- Set the value of service name based on the first non-null value in the list.
COALESCE(
JSON_VALUE(resource.attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
name AS span_name,
duration_nano,
status.code AS status,
trace_id,
span_id
FROM
`PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
LIMIT 10
Weitere Informationen finden Sie unter Bedingte Ausdrücke.
50. und 99. Perzentil der Spannenlatenz anzeigen
Führen Sie die folgende Abfrage aus, um das 50. und 99. Perzentil der Latenz für jeden RPC-Dienst anzuzeigen:
SELECT
-- Compute 50th and 99th percentiles for each service
STRING(attributes['rpc.service']) || '/' || STRING(attributes['rpc.method']) AS rpc_service_method,
APPROX_QUANTILES(duration_nano, 100)[OFFSET(50)] AS duration_nano_p50,
APPROX_QUANTILES(duration_nano, 100