In diesem Dokument werden Analysedatenansichten beschrieben und erläutert, wann Sie sie erstellen sollten. Außerdem werden die Unterschiede zwischen Analyseansichten und Konzepten beschrieben, die Ihnen vielleicht schon bekannt sind, z. B. Protokollansichten und gespeicherte Abfragen.
Informationen zum Erstellen, Abfragen und Verwalten von Analysedatenansichten finden Sie unter Analysedatenansichten erstellen und abfragen.
Übersicht
Eine Analyseansicht ist eine Ressource, die abgefragt werden kann. Diese Ressource enthält eine SQL-Abfrage, mit der eine oder mehrere Protokollansichten abgefragt werden.
Mit einer Logansicht in einem Log-Bucket können Sie festlegen, welche Logeinträge im Log-Bucket sichtbar sind. Sie können die Loganzeige mit dem Log-Explorer und den Seiten Log Analytics abfragen. In beiden Fällen wird das Format der abgefragten Daten durch die Datenstruktur LogEntry
bestimmt.
Mit der SQL-Abfrage in einer Analyseansicht können Sie die Protokolldaten in einer oder mehreren Protokollansichten in ein benutzerdefiniertes Format umwandeln. Sie können also filtern, welche Logeinträge in der Loganzeige zum Abfrageergebnis beitragen, und die Spalten des Ergebnisses definieren. Sie können beispielsweise Spalten verwerfen, Daten aus einem verschachtelten JSON-Feld in eine Spalte verschieben oder Spalten hinzufügen.
Analytics-Ansichten sind keine materialisierten Ansichten. Eine Analyseansicht ist keine vorausberechnete Ansicht, bei der Abfrageergebnisse regelmäßig im Cache gespeichert werden. Das Abfragen einer Analyseansicht entspricht daher dem Abfragen der Protokollansichten, die von der Analyseansicht abgefragt werden.
Sowohl eine Analyseansicht als auch eine gespeicherte Abfrage enthalten eine SQL-Abfrage. Eine Analyseansicht ist jedoch eine Ressource, die abgefragt werden kann. Sie können eine gespeicherte Abfrage noch einmal ausführen, aber nicht das Ergebnis einer gespeicherten Abfrage abfragen.
Arten von Analysen
Es gibt zwei Arten von Analyseansichten: benutzerdefinierte und systemdefinierte:
Benutzerdefinierte Analytics-Datenansichten sind alle Analytics-Datenansichten, die Sie erstellen. Sie können benutzerdefinierte Analysedatenansichten abfragen, bearbeiten und löschen.
Systemdefinierte Analysedatenansichten sind Analysedatenansichten, die vonGoogle Cloud -Diensten erstellt wurden. Sie können benutzerdefinierte Analysedatenansichten abfragen. Sie können sie jedoch nicht bearbeiten oder löschen.
Informationen zum Auflisten der Analysedatenansichten in Ihrem Google Cloud-Projekt finden Sie unter Analysedatenansichten auflisten.
Speicherort von Analyseansichten
Der Speicherort einer Analyseansicht wird durch den Speicherort der abgefragten Ressourcen bestimmt. Wenn in einer Analyseansicht beispielsweise eine Protokollansicht abgefragt wird, die sich an global
befindet, muss sich die Analyseansicht auch an global
befinden. Wenn Sie eine Analytics-Datenanalyse in der Google Cloud Console erstellen, wird der Standort automatisch festgelegt.
Vorteile von Analyseaufrufen
Der Hauptvorteil von Analyseansichten besteht darin, dass Sie Ihre Protokolldaten transformieren und ein einheitliches Schema für andere Abfragen erstellen können. Möglicherweise können Sie aber auch feststellen, dass Sie mit einer Analyseansicht den Aufwand für das Erstellen von Abfragen reduzieren oder die Struktur Ihrer Abfragen verbessern können. Da Analyseansichten keine materialisierten Ansichten sind, wird die Abfragezeit durch ihre Verwendung nicht unbedingt verkürzt.
Beispiel: Datentransformation
Angenommen, Sie analysieren die Netzwerkleistung mithilfe von VPC-Flusslogs. Sie müssen die Netzwerkleistung insgesamt analysieren und auch in der Lage sein, bestimmte Netzwerke, IP-Adressen oder Hosts zu identifizieren.
Leider befinden sich die erforderlichen Informationen in verschachtelten Feldern im Feld json_payload
eines Logeintrags.
Um diese Informationen aus den Logeinträgen zu extrahieren, schreiben Sie die folgende Abfrage und speichern Sie sie dann als Analyseansicht mit dem Namen network_details
:
SELECT
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 `TABLE_NAME_OF_LOG_VIEW`
WHERE
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
Wenn Sie die Netzwerkleistung analysieren möchten, können Sie jetzt Ihre Analysedatenansicht abfragen. Wenn Sie beispielsweise nur an den Namen der Instanz und die Menge der gesendeten Daten interessiert sind, 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
Beispiel: Basisabfrage für die API-Latenzanalyse
Angenommen, Sie sollen die Latenz von Anfragen für einwöchige Intervalle auswerten und zusammenfassen. Andere Teams verwenden die Daten der wöchentlichen Leistungsanalyse als Grundlage für andere Analysen.
In der Analyseansicht, die Sie erstellen und die von anderen Teams abgefragt werden kann, werden die minimale, maximale und durchschnittliche Latenz abgeschlossener Anfragen erfasst, die in einer bestimmten Logansicht in Logeinträgen aufgezeichnet wurden:
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 `TABLE_NAME_OF_LOG_VIEW`
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
Erforderliche IAM-Rollen und -Berechtigungen
Da in Analyseansichten Protokollansichten abgefragt werden, müssen Sie mit Ihren IAM-Rollen Protokollansichten abfragen und Log Analytics verwenden können, um Analyseansichten erstellen und abfragen zu können. In diesem Abschnitt werden die IAM-Rollen aufgeführt, die zum Erstellen von Analysedatenansichten und zum Abfragen von Protokolldatenansichten und zum Verwenden von Log Analytics erforderlich sind:
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Observability Analytics User (
roles/observability.analyticsUser
) für Ihr Projekt zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Erstellen, Verwalten und Verwenden von Analyseansichten benötigen.Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen, Verwalten und Verwenden von Analyseansichten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Analysedatenansichten zu erstellen, zu verwalten und zu verwenden:
-
observability.analyticsViews.get
-
observability.analyticsViews.list
-
observability.analyticsViews.create
-
observability.analyticsViews.update
-
observability.analyticsViews.delete
-
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen einer Protokollansicht und zur Verwendung von Log Analytics benötigen:
-
So rufen Sie die Log-Buckets
_Required
und_Default
ab: Loganzeige (roles/logging.viewer
) -
So rufen Sie alle Logansichten in einem Projekt ab:
Zugriffsberechtigter für Logbetrachtung (
roles/logging.viewAccessor
)
Sie können ein Hauptkonto auf eine bestimmte Protokollansicht beschränken, indem Sie der Rolle „Zugriff auf Protokollansicht“ auf Projektebene eine IAM-Bedingung hinzufügen oder der Richtliniendatei der Protokollansicht eine IAM-Bindung hinzufügen. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht steuern.
Informationen zu zusätzlichen Rollen, die Sie benötigen, um Ansichten in benutzerdefinierten Bucket oder die Ansicht
_AllLogs
des Log-Buckets_Default
abzufragen, finden Sie unter Cloud Logging-Rollen. -
So rufen Sie die Log-Buckets
Beschränkungen
Für Analysedatenansichten gelten die folgenden Einschränkungen:
- Eine Analyseansicht kann nicht in einer anderen Analyseansicht abgefragt werden.
- In einer Analyseansicht können mehrere Logansichten abgefragt werden. Die Log-Buckets, in denen die abgefragten Log-Ansichten gehostet werden, müssen sich jedoch an einem Ort befinden. Angenommen, Sie haben zwei Log-Buckets, einen in
us-east1
und den anderen inasia-east1
. Sie können keine Analyseansicht erstellen, in der Logansichten für diese Log-Buckets abgefragt werden. - Die übergeordnete Ressource einer Analyseansicht muss ein Google Cloud-Projekt sein. Sie können keine Analyseansicht in Ordnern oder Organisationen erstellen.
- Verknüpfte Datasets werden für Analyseansichten nicht unterstützt. Daher können Sie Analysedatenansichten nur über die Seite Loganalysen abfragen. Außerdem müssen Sie diese Abfragen über den Standard-Cloud Logging-Dienst ausführen.
- Das Erstellen oder Verwalten von Analysedatenansichten wird nicht über die API unterstützt.
Für Analysedatenansichten gelten die folgenden Limits:
- Maximale Anzahl von Analytics-Aufrufen pro Google Cloud-Projekt: 100
- Maximale Anzahl von Analytics-Aufrufen pro Google Cloud-Projekt und Region: 50
- Maximale Anzahl von Regionen pro Google Cloud-Projekt, in denen Analytics-Datenansichten gespeichert werden können: 10
Nächste Schritte
- Analyseansichten erstellen und abfragen
- Logs abfragen und analysieren
- SQL-Abfrage speichern und freigeben