In diesem Dokument werden Analyseansichten beschrieben und es wird erläutert, wann Sie sie erstellen sollten. Außerdem werden die Unterschiede zwischen Analyseansichten und gespeicherten Abfragen beschrieben.
Übersicht
Eine Analytics-Ansicht ist eine Ressource, die Sie abfragen können. Nachdem Sie eine Analyseansicht definiert haben, können Sie Abfragen schreiben, in denen Sie Ihre Analyseansicht in der FROM-Klausel angeben.
Der Hauptvorteil der Verwendung von Analyseansichten besteht darin, dass Sie die Daten nicht im Format einer API oder eines Systems abfragen müssen. Mit einer Analyseansicht können Sie ein Schema definieren, um Ihre Abfragen zu vereinfachen oder den Zeitaufwand für das Schreiben von Abfragen zu reduzieren. Mit der Abfrage in einer Analyseansicht können Sie beispielsweise nur bestimmte Felder beibehalten, Felder umbenennen, verschachtelte Felder in eine Spalte der obersten Ebene verschieben sowie gruppieren und aggregieren.
Analytics-Datenansichten sind keine materialisierten Ansichten. Eine Analyseansicht ist keine vorausberechnete Ansicht, in der Abfrageergebnisse regelmäßig im Cache gespeichert werden. Daher entspricht das Abfragen einer Analyseansicht dem Abfragen der Ansichten, die in der Abfrage der Analyseansicht aufgeführt sind.
Analytics-Ansichten sind leistungsfähiger als gespeicherte Abfragen. Das sind Abfragen, die Sie auf der Seite Loganalysen ausführen und dann speichern. Sie können eine gespeicherte Abfrage noch einmal ausführen, aber die Ergebnisse einer gespeicherten Abfrage können nicht abgefragt werden.
Arten von Analytics-Datenansichten
Es gibt zwei Arten von Analyseansichten: benutzerdefinierte und systemdefinierte:
Benutzerdefinierte Analytics-Datenansichten sind alle Analytics-Datenansichten, die Sie erstellen. Sie können benutzerdefinierte Analytics-Ansichten abfragen, bearbeiten und löschen.
Systemdefinierte Analyseansichten sind Analyseansichten, die vonGoogle Cloud -Diensten erstellt werden. Sie können systemdefinierte Analytics-Ansichten abfragen. Sie können sie jedoch nicht bearbeiten oder löschen.
Informationen zum Auflisten der Analytics-Ansichten in IhremGoogle Cloud -Projekt finden Sie unter Analytics-Ansichten auflisten.
Speicherort von Analyseansichten
Der Standort einer Analyseansicht wird durch den Standort der Ressourcen bestimmt, die abgefragt werden. Wenn in einer Analyseansicht beispielsweise eine Log- oder Observability-Ansicht abgefragt wird, die sich am Speicherort global befindet, muss sich auch die Analyseansicht am Speicherort global befinden. Wenn Sie eine Analyseansicht über die Google Cloud -Konsole erstellen, wird der Standort automatisch festgelegt.
Beispielanwendungsfälle
Der Hauptvorteil einer Analyseansicht besteht darin, dass Sie die Daten nicht im vom System definierten Format abfragen müssen. In einer Analyseansicht können Sie ein Schema definieren, um Ihre Abfragen zu vereinfachen oder den Zeitaufwand für das Schreiben von Abfragen zu reduzieren.
Netzwerkdetails abfragen
Sie möchten die Netzwerkleistung mithilfe von VPC-Flusslogs analysieren. Sie müssen die allgemeine Netzwerkleistung analysieren und bestimmte Netzwerke, IP-Adressen und Hosts identifizieren. Diese Informationen werden in verschachtelten Feldern im Feld json_payload eines Logeintrags gespeichert.
Zur Vereinfachung Ihrer Analyseabfragen erstellen Sie die folgende Analyseansicht und geben ihr den Namen network_details:
SELECT
-- Create a column for each network field.
JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
JSON_VALUE(json_payload.connection.src_ip) as src_ip,
JSON_VALUE(json_payload.connection.src_port) as src_port,
JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
JSON_VALUE(json_payload.connection.dest_port) as dest_port,
CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
-- Only query the VPC Flow Logs log.
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
Bevor Sie die Abfrage verwenden, müssen Sie die Werte der folgenden Variablen festlegen:
- PROJECT_ID: Die Kennung des Projekts.
- LOCATION: Der Speicherort der Logansicht.
- 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.
Wenn Sie die Netzwerkleistung analysieren möchten, fragen Sie Ihre Analyseansicht ab. Wenn Sie sich beispielsweise nur für den Namen der Instanz und die Menge der gesendeten Daten interessieren, können Sie die folgende Abfrage schreiben:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
Basisabfrage für die API-Latenzanalyse
Mehrere Teams benötigen wöchentliche Leistungsdaten, um ihre Analysen durchzuführen. Anstatt dass jedes Team die wöchentlichen Daten generiert, erstellen Sie eine Analyseansicht, mit der die wöchentlichen Daten extrahiert werden. Andere Teams können die Analyseansicht abfragen und dann ihre Analysen durchführen.
Die folgende Abfrage veranschaulicht, wie Sie mit SQL die minimale, maximale und durchschnittliche Anfragelatenz berechnen:
SELECT week, MIN(took_ms) as min, MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE json_payload IS NOT NULL
AND SEARCH(labels,"frontend")
AND JSON_VALUE(json_payload.message) = "request complete"
ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week
Trace-Dienstname extrahieren
Angenommen, Sie möchten Abfragen schreiben, mit denen Sie Ihre Tracedaten analysieren und entweder nach einem synthetisierten Dienstnamen gruppieren oder diesen anzeigen lassen möchten. Die Abfrage für Ihre Analyseansicht bestimmt den Dienstnamen für einen Bereich mithilfe der Funktion COALESCE, die eine Liste von Ausdrücken in der Reihenfolge auswertet und den Wert für den ersten Ausdruck zurückgibt, der nicht als NULL ausgewertet wird:
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.us._Trace.Spans._AllSpans`
LIMIT 10
Ersetzen Sie vor der Verwendung der Abfrage PROJECT_ID durch die ID IhresGoogle Cloud -Projekts.
Trace- und Logdaten über die Trace-ID zusammenführen
Wenn Sie eine Anwendung analysieren, möchten Sie möglicherweise Ihre Log- und Tracedaten korrelieren. Eine Möglichkeit besteht darin, eine Analyseansicht zu erstellen, in der der Join ausgeführt und ausgewählte Felder gemeldet werden.
In der folgenden Abfrage werden Log- und Trace-Daten mithilfe der Span- und Trace-IDs verknüpft:
SELECT
T.trace_id,
T.span_id,
T.name,
T.start_time,
T.duration_nano,
L.log_name,
L.severity,
L.json_payload,
L.text_payload,
L.proto_payload,
L.insert_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans` AS T
JOIN
`PROJECT_ID.us.BUCKET_ID.LOG_VIEW_ID` AS L
ON
-- Join log and trace data by both the span ID and trace ID.
-- Don't join only on span ID, this field isn't globally unique.
T.span_id = L.span_id
-- A regular expression is required because the storage format of the trace ID
-- differs between a log view and a trace view.
AND T.trace_id = REGEXP_EXTRACT(L.trace, r'/([^/]+)$')
Bevor Sie die Abfrage verwenden, müssen Sie die Werte der folgenden Variablen festlegen:
- PROJECT_ID: Die Kennung des Projekts.
- 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.
Im Beispiel sehen Sie, dass sich sowohl die Logansicht als auch die Ansicht zur Beobachtbarkeit am selben Speicherort befinden, nämlich us. In einer Analytics-Ansicht können mehrere Ansichten abgefragt werden, diese müssen sich jedoch am selben Speicherort befinden.
Beschränkungen
Für Analyseansichten gelten die folgenden Einschränkungen:
- In einer Analyseansicht können nur Log- und Observability-Ansichten abgefragt werden.
- Die übergeordnete Ressource einer Analyseansicht muss ein Google Cloud -Projekt sein.
- Sie können eine Analyseansicht nur über die Seite Loganalysen abfragen und nur, wenn Sie die Abfrage-Engine Loganalysen (Standard) verwenden.
- Alle Ansichten, die von einer Analytics-Ansicht abgefragt werden, müssen sich am selben Standort befinden.
- Sie müssen die Google Cloud Console verwenden, um Ihre Analyseansichten zu erstellen oder zu verwalten.
- Sie können maximal 100 Analytics-Ansichten pro Google Cloud Projekt erstellen.
- Sie können maximal 50 Analytics-Ansichten pro Region erstellen.
- Pro Google Cloud Projekt kann eine Analyseansicht in maximal 10 Regionen enthalten sein.
Nächste Schritte
- Analytics-Ansichten erstellen, abfragen und verwalten
- Telemetriedaten mit Loganalysen abfragen und analysieren
- SQL-SQL-Abfrage darstellen
- Abfragen speichern und freigeben
- SQL-Beispielabfragen