In diesem Dokument wird beschrieben, wie Sie die Erhebung und Speicherung von Gemini for Google Cloud -Aktivitäten aktivieren können. Dazu gehören:
- Gemini für Google Cloud Prompts und Antwortprotokolle, z. B. Nutzereingaben, Kontextinformationen und Antworten.
- Gemini für Google Cloud Metadatenprotokolle, z. B. Telemetriemetadaten und vom Nutzer akzeptierte Codezeilen.
Gemini für Google Cloud erfasst oder sendet keine anderen Nutzerinteraktionen, die der Nutzer mit Gemini für Google Cloud ausgeführt hat, einschließlich schriftliches Feedback, an Cloud Logging. Google CloudDie erfassten Daten werden zum Speichern an Cloud Logging gesendet. Sie können diese Daten prüfen, indem Sie nach Logeinträgen mit dem Ressourcentyp cloudaicompanion.googleapis.com/Instance
suchen.
Mit dieser Funktion werden keine Prompts oder Antworten in Gemini in Vertex AI protokolliert. Informationen zum Aktivieren von Logs für Gemini in Vertex AI finden Sie unter Audit-Logs zum Datenzugriff aktivieren.
Mit IAM-Rollen (Identity and Access Management, Identitäts- und Zugriffsverwaltung) wird festgelegt, ob ein Hauptkonto auf Protokolle zugreifen kann. Sie können Hauptkonten vordefinierte Rollen zuweisen oder benutzerdefinierte Rollen erstellen. Weitere Informationen zu erforderlichen Berechtigungen finden Sie unter Zugriffssteuerung.
Cloud Logging verschlüsselt inaktive Kundendaten standardmäßig. Von Logging in Protokoll-Buckets gespeicherte Daten werden mit Schlüsselverschlüsselungsschlüsseln verschlüsselt. Dieser Vorgang wird als Umschlagverschlüsselung bezeichnet. Der Zugriff auf Ihre Logging-Daten erfordert den Zugriff auf diese Schlüsselverschlüsselungsschlüssel, die Google für Sie verwaltet, ohne dass Sie etwas tun müssen.
Ihre Organisation kann regulatorische, Compliance- oder erweiterte Verschlüsselungsanforderungen haben, die unsere Standardverschlüsselung inaktiver Daten nicht anspricht. Anstatt die Schlüsselverschlüsselungsschlüssel, die Ihre Daten schützen, von Google verwalten zu lassen, können Sie Ihre Schlüssel selbst verwalten.
Weitere Informationen zur Verwendung von vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK), einschließlich Vorteilen und Einschränkungen, finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel.
Beschränkungen
Die von Gemini in Google Cloud erfassten Protokolldaten enthalten keine Nutzerinteraktionen mit den folgenden Produkten:- Gemini in BigQuery
- Gemini in Looker
- Gemini in Google Security Operations
- Gemini-Bereich in der Google Cloud Console für das Rechenzentrum
Hinweise
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Logs Viewer (
roles/logging.viewer
) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen von Gemini- Google Cloud Protokollen benötigen. 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.
Sehen Sie sich die Preise für Cloud Logging und die Preise für Gemini for Google Cloud an, bevor Sie Gemini for Google Cloud -Protokollierung aktivieren.
Gemini für die Google Cloud Protokollierung aktivieren
Wenden Sie sich an den Google Cloud Support oder Ihren Google Cloud Ansprechpartner und geben Sie die Projekt-ID an, für die Sie Gemini für dieGoogle Cloud Protokollierung, Gemini für die Google Cloud Metadatenprotokollierung oder beides aktivieren möchten.
Gemini für Google Cloud Nutzerprotokolle und Metadatenprotokolle ansehen
So rufen Sie Gemini- Google Cloud Nutzerprotokolle und Metadatenprotokolle auf:
Google Cloud Console
-
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
- Wählen Sie in der Symbolleiste ein Google Cloud Console-Projekt aus.
- Maximieren Sie in der Symbolleiste das Menü Alle Ressourcen und wählen Sie die Ressource Cloud AI Companion-Instanz aus.
Google Cloud CLI
Führen Sie dazu diesen Befehl aus:
gcloud logging read "resource.type=cloudaicompanion.googleapis.com/Instance" --project PROJECT_ID --limit 3
Gemini für Google Cloud -Protokolle
Ein LogEntry
ist die grundlegende Dateneinheit in Cloud Logging. In den folgenden Abschnitten finden Sie Listen der Felder, die im LogEntry
für ein Gemini for Google Cloud -Plattformereignis enthalten sind, z. B. Nutzeranfragen und Gemini for Google Cloud -Antworten.
Nutzeranforderungen
Die folgende Tabelle enthält eine Liste der Felder in einem Logeintrag für Nutzeranfragen.
Feld | Werte und Hinweise |
---|---|
LogEntry.resource.type |
Gemini für Google Cloud Ressourcentyp: cloudaicompanion.googleapis.com/Instance . |
LogEntry.resource.labels.resource_container |
Die eindeutige ID des Ressourcencontainers, in dem Gemini für Google Cloud verwendet wurde. |
LogEntry.resource.labels.location |
Standort, an dem Gemini für Google Cloud verwendet wurde. |
LogEntry.resource.labels.instance_id |
Die eindeutige ID der Ressource, in der Gemini für Google Cloud verwendet wurde. |
LogEntry.labels.method |
Kann eine der folgenden Optionen sein, je nachdem, was logEntry aufgerufen hat:CompleteTask : z. B. eine Chatanfrage von Gemini Code Assist oder einem anderen Gemini-Dienst Google Cloud .GenerateCode : z. B. eine Anfrage zum Generieren von Code, z. B. mit einer Codetransformationsanfrage in Gemini Code Assist.CompleteCode : z. B. eine Anfrage zum Vervollständigen von Code bei der Arbeit in der IDE, z. B. mit Inline-Vorschlägen in Gemini Code Assist. |
LogEntry.labels.product |
Gemini für Google Cloud Dienstname Wenn das Gemini for Google Cloud -Produkt Gemini Code Assist ist, ist dieser Wert code_assist . Wenn das Gemini for Google Cloud -Produkt Gemini Cloud Assist ist, ist dieser Wert cloud_assist . Andernfalls ist der Wert unknown . |
LogEntry.labels.request_id |
Eine eindeutige Kennung, um eine Anfrage mit einem Antwortprotokolleintrag zu korrelieren. |
LogEntry.labels.user_id |
Die Kennung des Nutzers, der diese Anfrage initiiert hat. |
LogEntry.jsonPayload |
Die Nutzlast des Logeintrags. |
LogEntry.logName |
Identifiziert das Protokoll. |
Das folgende Beispiel zeigt einen Beispiel-Logeintrag für ein Chat-Prompt-Ereignis.
{
"insertId": "654581e30003b19e340bbd96",
"resource": {
"type": "cloudaicompanion.googleapis.com/Instance",
"labels": {
instance_id: "default"
location: "global"
resource_container: "my-project-id"
}
},
"timestamp": "2023-11-03T23:27:31.242078Z",
"labels": {
"product": "code_assist",
"request_id": "4ea1e265-ea5d-4d11-b3c8-39bad9c96326"
"user_id": "my-user@example.com"
},
"jsonPayload" : {
@type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.RequestLog"
"taskCompletionRequest":
input: {
messages: [{
author: "USER"
content: "What are some best practices to save cost on my Google Cloud bill?"
}]
preamble: ""
}
}
"logName": "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Frequest",
"receiveTimestamp": "2023-11-03T23:27:31.255648319Z"
"severity": "INFO"
}
Das folgende Beispiel zeigt einen RequestLog
-Eintrag für automatische Prompts zur Inline-Codevorschläge und Prompts für Gemini Google Cloud in einer Codedatei.
Für Prompt-Daten für Inline-Codevorschläge wird das codeCompletionRequest
-Objekt verwendet (wie im folgenden Beispiel gezeigt), während für die manuell ausgelöste Generierung codeGenerationRequest
verwendet wird.
{
"insertId": "654581e30003b19e340bbd96",
"resource": {
"type": "cloudaicompanion.googleapis.com/Instance",
"labels": {
instance_id: "default"
location: "global"
resource_container: "my-project-id"
}
},
"timestamp": "2023-11-03T23:27:31.242078Z",
"labels": {
"product": "code_assist",
"request_id": "4ea1e265-ea5d-4d11-b3c8-39bad9c96326"
"user_id": "my-user@example.com"
},
"jsonPayload" : {
@type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.RequestLog"
"codeCompletionRequest": {
"input_data_context": {
"additional_context": {
"files": [
{
"language": "go",
"path": "{/path/to/../current-file.go",
"segments": [
{
"content": "...Prefix Text..."
},
{
"content": "...Suffix Text..."
}
],
"state": ["EDITED"]
},
{
"language": "go",
"path": "/path/to/../recent-file.go",
"segments": [
{
"content": "...File Text..."
}
],
"state": ["RECENTLY_OPENED"]
}
]
}
}
}
}
"logName": "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Frequest",
"receiveTimestamp": "2023-11-03T23:27:31.255648319Z"
"severity": "INFO"
}
Gemini für Google Cloud -Antworten
In der folgenden Tabelle sind die Antwortfelder und Beschreibungen für Gemini für Google Cloud aufgeführt.
Feld | Werte und Hinweise |
---|---|
LogEntry.resource.type |
Gemini für Google Cloud Ressourcentyp: cloudaicompanion.googleapis.com/Instance . |
LogEntry.resource.labels.resource_container |
Die eindeutige ID des Ressourcencontainers, in dem Gemini für Google Cloud verwendet wurde. |
LogEntry.resource.labels.location |
Standort, an dem Gemini für Google Cloud verwendet wurde. |
LogEntry.resource.labels.instance_id |
Die eindeutige ID der Ressource, in der Gemini für Google Cloud verwendet wurde. |
LogEntry.labels.method |
Kann eine der folgenden Optionen sein, je nachdem, was logEntry aufgerufen hat:CompleteTask : z. B. eine Chatanfrage von Gemini Code Assist oder einem anderen Gemini-Dienst Google Cloud .GenerateCode : z. B. eine Anfrage zum Generieren von Code, z. B. mit einer Codetransformationsanfrage in Gemini Code Assist.CompleteCode : z. B. eine Anfrage zum Vervollständigen von Code bei der Arbeit in der IDE, z. B. mit Inline-Vorschlägen in Gemini Code Assist. |
LogEntry.labels.product |
Gemini für Google Cloud Dienstname Wenn das Gemini for Google Cloud -Produkt Gemini Code Assist ist, ist dieser Wert code_assist . Wenn das Gemini for Google Cloud -Produkt Gemini Cloud Assist ist, ist dieser Wert cloud_assist . Andernfalls ist der Wert unknown . |
LogEntry.labels.request_id |
Eine eindeutige Kennung, um eine Anfrage mit einem Antwortprotokolleintrag zu korrelieren. |
LogEntry.labels.user_id |
Die Kennung des Nutzers, der diese Anfrage initiiert hat. |
LogEntry.jsonPayload |
Die Nutzlast des Logeintrags. Alle Quellenangaben, die zum Generieren der Antwort verwendet wurden, sind in diesem Objekt als attribution_context enthalten. |
LogEntry.logName |
Identifiziert das Protokoll. |
Gemini für Google Cloud Metadatenlogs
Damit die Metadatenprotokolle generiert werden können, muss die Telemetrieeinstellung Gemini Code Assist-Erweiterung sowohl für VS Code- als auch für IntelliJ-Erweiterungen aktiviert sein. Außerdem muss für VS Code die globale Einstellung für die Erfassung von Telemetriedaten aktiviert sein.
Gemini for Google Cloud -Metadatenprotokolle folgen derselben Struktur wie Gemini for Google Cloud -Protokolle, enthalten aber andere Felder. In der folgenden Tabelle sind die Felder aufgeführt, die in einem Logeintrag für Nutzeranfragen gefunden werden:
Feld | Werte und Hinweise |
---|---|
LogEntry.@type |
Gemini für den Google Cloud Metadatenressourcentyp type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.MetadataLog |
LogEntry.labels.method |
Für Metadatenprotokolle ist dieser Labelwert Export.Metrics . |
LogEntry.labels.product |
Gemini für Google Cloud Dienstname Wenn das Gemini for Google Cloud -Produkt Gemini Code Assist ist, ist dieser Wert code_assist . Wenn das Gemini for Google Cloud -Produkt Gemini Cloud Assist ist, ist dieser Wert cloud_assist . Andernfalls ist der Wert unknown . |
LogEntry.labels.user_id |
Die Kennung des Nutzers, der diese Anfrage initiiert hat. |
LogEntry.jsonPayload |
Gibt entweder ein codeExposure -Ereignis oder ein code.Acceptance -Ereignis an. Ein codeExposure -Ereignis gibt an, dass einem Nutzer ein Codevorschlag präsentiert wurde. Ein Ereignis vom Typ code.Acceptance gibt an, dass der Nutzer ein Einwilligungsereignis ausgelöst hat, z. B. durch Eingabe, Tabulatortaste oder vollständige Einwilligung. |
LogEntry.jsonPayload.clientName |
Der Name der IDE, z. B. CloudCodeVscode . |
LogEntry.jsonPayload.clientVersion |
Die Versionsnummer der IDE. |
LogEntry.jsonPayload.codeAcceptance |
Nur für VS Code und IntelliJ IDEs: Gibt an, dass ein Nutzer ein Ereignis zur Bestätigung ausgeführt hat, z. B. Eingabe, Tabulator oder vollständige Bestätigung. Außerdem enthält er die folgenden Felder:
|
LogEntry.jsonPayload.codeExposure |
Nur für VS Code und IntelliJ IDEs: Gibt an, dass einem Nutzer ein Codevorschlag angezeigt wurde. Außerdem enthält er die folgenden Felder:
|
LogEntry.jsonPayload.chatExposure |
Gibt an, dass eine Chatantwort für einen Nutzer sichtbar war. Enthält außerdem das folgende Feld:
|
Das folgende Beispiel zeigt einen codeExposure
-Logeintrag:
{
insertId: "whfrqgc1gj"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.MetadataLog"
clientName: "CloudCodeVscode"
clientVersion: "1.93.1"
codeExposure: {
originalRequestId: "cac019824a0b25ba"
programmingLanguage: "python"
}
requestId: "0c5178fe-446f-4ab6-b996-520dec100cf8"
}
labels: {
method: "Export.Metrics"
product: "code_assist"
user_id: "user@company.com"
}
logName: "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Fmetadata"
receiveTimestamp: "2025-02-03T23:34:35.662837985Z"
resource: {
labels: {
instance_id: "default"
location: "global"
resource_container: "my-project-id"
}
type: "cloudaicompanion.googleapis.com/Instance"
}
severity: "INFO"
timestamp: "2025-02-03T23:34:35.021564463Z"
}
Das folgende Beispiel zeigt einen codeAcceptance
-Logeintrag:
{
insertId: "whfrqgc1gk"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.MetadataLog"
clientName: "CloudCodeVscode"
clientVersion: "1.93.1"
codeAcceptance: {
linesCount: 2
originalRequestId: "cac019824a0b25ba"
programmingLanguage: "python"
}
requestId: "ddf11040-c315-452e-b7cd-928c3f97984e"
}
labels: {
method: "Export.Metrics"
product: "code_assist"
user_id: "user@company.com"
}
logName: "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Fmetadata"
receiveTimestamp: "2025-02-03T23:34:37.632662272Z"
resource: {
labels: {
instance_id: "default"
location: "global"
resource_container: "my-project-id"
}
type: "cloudaicompanion.googleapis.com/Instance"
}
severity: "INFO"
timestamp: "2025-02-03T23:34:36.778692483Z"
}
Das folgende Beispiel zeigt einen chatExposure
-Logeintrag:
{
insertId: "3diaj2c208"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.MetadataLog"
clientName: "CloudCodeVscode"
clientVersion: "1.93.1"
chatExposure: {
originalRequestId: "cac019824a0b25ba"
}
requestId: "0c5178fe-446f-4ab6-b996-520dec100cf8"
}
labels: {
method: "Export.Metrics"
product: "code_assist"
user_id: "user@company.com"
}
logName: "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Fmetadata"
receiveTimestamp: "2025-02-03T23:34:35.662837985Z"
resource: {
labels: {
instance_id: "default"
location: "global"
resource_container: "my-project-id"
}
type: "cloudaicompanion.googleapis.com/Instance"
}
severity: "INFO"
timestamp: "2025-02-03T23:34:35.021564463Z"
}
Akzeptanzrate für Codes berechnen
Wenn Sie die Annahmerate anhand von Gemini Code Assist-Metadatenprotokollen berechnen möchten, ermitteln Sie die Gesamtzahl der eindeutigen IDs aus Ereignissen mit codeAcceptance.originalRequestId
und teilen Sie sie durch die Gesamtzahl der eindeutigen IDs aus Ereignissen mit codeExposure.originalRequestId
. Mit den entsprechenden Metadaten-Log-Ereignisfeldern können Sie diese Berechnung nach Programmiersprache und Nutzer weiter verfeinern.
Akzeptierte Codezeilen berechnen
Um die Anzahl der akzeptierten Codezeilen zu berechnen, suchen Sie nach dem letzten getaggten Ereignis mit codeAcceptance
für eine eindeutige codeAcceptance.originalRequestId
und sehen Sie sich dann codeAcceptance.linesCount
an. Fügen Sie dann den linesCount
-Wert für alle endgültigen codeAcceptance
-Ereignisse für jede originalRequestId
hinzu, um die Gesamtzahl der akzeptierten Codezeilen zu berechnen. Sie können diese Berechnung mithilfe der entsprechenden Felder für Metadatenprotokollereignisse nach Programmiersprache und Nutzer weiter verfeinern.
Nächste Schritte
- Weitere Informationen zum Ansehen, Analysieren und Überwachen von Protokollen in Google Cloud
- Weitere Informationen zum Überwachen der Gemini-Nutzung für Google Cloud