Dokumen ini menjelaskan cara mengaktifkan pengumpulan dan penyimpanan aktivitas Gemini untuk Google Cloud , termasuk hal berikut:
- Gemini untuk perintah dan log respons, seperti input pengguna, informasi kontekstual, dan respons. Google Cloud
- Gemini untuk log metadata Google Cloud , seperti metadata telemetri dan baris kode yang diterima oleh pengguna.
Jika Anda perlu membuat metrik Gemini Code Assist, lihat Memantau penggunaan Gemini Google Cloud .
Gemini untuk Google Cloud tidak mengumpulkan atau mengirim ke
Cloud Logging interaksi pengguna lain yang mungkin dilakukan pengguna dengan
Gemini untuk Google Cloud, termasuk masukan tertulis. Data yang dikumpulkan dikirim ke Cloud Logging untuk penyimpanan. Anda dapat meninjau data ini dengan menelusuri entri log dengan jenis resource cloudaicompanion.googleapis.com/Instance
.
Fitur ini tidak mencatat perintah atau respons dalam Gemini di Vertex AI. Untuk mengaktifkan log untuk Gemini di Vertex AI, lihat Mengaktifkan log audit Akses Data.
Peran Identity and Access Management (IAM) mengontrol kemampuan prinsipal untuk mengakses log. Anda dapat memberikan peran standar kepada akun utama, atau membuat peran khusus. Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan, lihat Kontrol akses.
Secara default, Cloud Logging mengenkripsi konten pelanggan yang disimpan dalam penyimpanan. Data yang disimpan di bucket log oleh Logging dienkripsi menggunakan kunci enkripsi kunci, sebuah proses yang dikenal sebagai enkripsi menyeluruh. Akses ke data logging Anda memerlukan akses ke kunci enkripsi kunci tersebut, yang dikelola Google untuk Anda tanpa tindakan apa pun dari Anda.
Organisasi Anda mungkin memiliki persyaratan enkripsi tingkat lanjut, terkait kepatuhan, atau peraturan yang tidak disediakan oleh enkripsi saat istirahat default kami. Untuk memenuhi persyaratan organisasi Anda, alih-alih Google yang mengelola kunci enkripsi yang melindungi data Anda, Anda dapat mengelola kunci Anda.
Untuk mengetahui informasi spesifik tentang penggunaan kunci enkripsi yang dikelola pelanggan (CMEK), termasuk keuntungan dan batasannya, lihat Kunci enkripsi yang dikelola pelanggan.
Batasan
Pencatatan data log Gemini di Google Cloud dibatasi untuk interaksi pengguna dengan Gemini Code Assist dalam IDE.
Selain itu, jika pengguna akhir menonaktifkan setelan telemetri VS Code, maka Gemini untuk Google Cloud tidak mencatat metadata. Namun, log perintah dan respons tetap dibuat saat administrator mengaktifkan pencatatan log perintah dan respons.
Sebelum memulai
-
Untuk mendapatkan izin yang diperlukan agar dapat melihat log Gemini untuk Google Cloud , minta administrator Anda untuk memberi Anda peran IAM Logs Viewer (
roles/logging.viewer
) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Tinjau harga Cloud Logging dan harga Gemini untuk Google Cloud logging sebelum mengaktifkan Gemini untuk Google Cloud logging.
Melihat log pengguna dan log metadata Gemini Google Cloud
Untuk melihat log pengguna dan log metadata Gemini, lakukan salah satu hal berikut: Google Cloud
Konsol
-
Di konsol Google Cloud , buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
- Di toolbar, pilih project konsol Google Cloud .
- Di toolbar, luaskan menu Semua resource dan pilih resource Cloud AI Companion Instance.
gcloud
Jalankan perintah berikut:
gcloud logging read "resource.type=cloudaicompanion.googleapis.com/Instance" --project PROJECT_ID --limit 3
Ganti PROJECT_ID
dengan ID project yang log Gemini untuk Google Cloud -nya ingin Anda lihat.
API
Buat file JSON yang berisi informasi berikut:
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "resource.type: cloudaicompanion.googleapis.com/Instance" }
Ganti
PROJECT_ID
dengan ID project yang log Gemini untuk Google Cloud -nya ingin Anda lihat.Dapatkan token autentikasi:
TOKEN=$(gcloud auth print-access-token)
Gunakan
cURL
untuk memanggil metodeentries.list
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ "https://logging.googleapis.com/v2/entries:list"
Ganti
JSON_FILE_NAME
dengan jalur untuk file JSON yang Anda buat di langkah sebelumnya.Untuk mengetahui informasi selengkapnya tentang autentikasi, lihat Melakukan autentikasi untuk menggunakan REST.
Respons menampilkan sekumpulan entri log.
Log Gemini untuk Google Cloud
LogEntry
adalah unit dasar data di Cloud Logging. Bagian berikut memberikan daftar kolom yang ditemukan
di LogEntry
untuk peristiwa platform Gemini for Google Cloud , seperti
permintaan pengguna dan respons Gemini for Google Cloud .
Permintaan pengguna
Tabel berikut menunjukkan daftar kolom yang ditemukan dalam entri log permintaan pengguna.
Kolom | Nilai dan catatan |
---|---|
LogEntry.resource.type |
Gemini untuk Google Cloud jenis resource: cloudaicompanion.googleapis.com/Instance . |
LogEntry.resource.labels.resource_container |
ID unik Penampung Resource tempat Gemini untuk Google Cloud digunakan. |
LogEntry.resource.labels.location |
Lokasi tempat Gemini untuk Google Cloud digunakan. |
LogEntry.resource.labels.instance_id |
ID unik resource tempat Gemini untuk Google Cloud digunakan. |
LogEntry.labels.method |
Dapat berupa salah satu dari berikut, bergantung pada apa yang memanggil logEntry :CompleteTask : misalnya, permintaan chat dari Gemini Code Assist atau layanan Gemini lainnya. Google Cloud GenerateCode : misalnya, permintaan untuk membuat kode, seperti dengan permintaan transformasi kode dalam Gemini Code Assist.CompleteCode : misalnya, permintaan untuk menyelesaikan kode saat bekerja di IDE, seperti dengan saran inline dalam Gemini Code Assist. |
LogEntry.labels.product |
Gemini untuk Google Cloud nama layanan. Jika produk Gemini untuk Google Cloud adalah Gemini Code Assist, maka nilai ini adalah code_assist . Jika produk Gemini untuk Google Cloud adalah Gemini Cloud Assist, maka nilai ini adalah cloud_assist . Jika tidak, nilai ini adalah unknown . |
LogEntry.labels.request_id |
ID unik untuk mengorelasikan permintaan dengan entri log respons. |
LogEntry.labels.user_id |
ID pengguna yang memulai permintaan ini. |
LogEntry.jsonPayload |
Payload entri log. |
LogEntry.logName |
Mengidentifikasi log. |
Contoh berikut menunjukkan contoh entri log untuk peristiwa perintah chat.
{
"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"
}
Contoh berikut menunjukkan contoh entri RequestLog
untuk perintah
saran kode inline
otomatis dan
perintah Gemini untuk Google Cloud dalam file kode.
Data perintah untuk saran kode inline menggunakan objek codeCompletionRequest
(seperti yang ditunjukkan dalam contoh berikut), sementara pembuatan yang dipicu secara manual menggunakan
codeGenerationRequest
.
{
"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"
}
Respons Gemini untuk Google Cloud
Tabel berikut menunjukkan kolom respons dan deskripsi Gemini untuk Google Cloud .
Kolom | Nilai dan catatan |
---|---|
LogEntry.resource.type |
Gemini untuk Google Cloud jenis resource: cloudaicompanion.googleapis.com/Instance . |
LogEntry.resource.labels.resource_container |
ID unik Penampung Resource tempat Gemini untuk Google Cloud digunakan. |
LogEntry.resource.labels.location |
Lokasi tempat Gemini untuk Google Cloud digunakan. |
LogEntry.resource.labels.instance_id |
ID unik resource tempat Gemini untuk Google Cloud digunakan. |
LogEntry.labels.method |
Dapat berupa salah satu dari berikut, bergantung pada apa yang memanggil logEntry :CompleteTask : misalnya, permintaan chat dari Gemini Code Assist atau layanan Gemini lainnya. Google Cloud GenerateCode : misalnya, permintaan untuk membuat kode, seperti dengan permintaan transformasi kode dalam Gemini Code Assist.CompleteCode : misalnya, permintaan untuk menyelesaikan kode saat bekerja di IDE, seperti dengan saran inline dalam Gemini Code Assist. |
LogEntry.labels.product |
Gemini untuk Google Cloud nama layanan. Jika produk Gemini untuk Google Cloud adalah Gemini Code Assist, maka nilai ini adalah code_assist . Jika produk Gemini untuk Google Cloud adalah Gemini Cloud Assist, maka nilai ini adalah cloud_assist . Jika tidak, nilai ini adalah unknown . |
LogEntry.labels.request_id |
ID unik untuk mengorelasikan permintaan dengan entri log respons. |
LogEntry.labels.user_id |
ID pengguna yang memulai permintaan ini. |
LogEntry.jsonPayload |
Payload entri log. Kutipan sumber yang digunakan untuk menghasilkan respons disertakan dalam objek ini sebagai attribution_context . |
LogEntry.logName |
Mengidentifikasi log. |
Log metadata Gemini untuk Google Cloud
Agar log metadata dibuat, setelan telemetri ekstensi Gemini Code Assist harus diaktifkan untuk ekstensi VS Code dan IntelliJ. Selain itu, untuk VS Code, setelan pengumpulan telemetri global juga harus diaktifkan.
Log metadata Gemini untuk Google Cloud mengikuti struktur yang sama dengan log Gemini untuk Google Cloud tetapi menentukan kolom yang berbeda. Tabel berikut menunjukkan daftar kolom yang ditemukan dalam entri log permintaan pengguna:
Kolom | Nilai dan catatan |
---|---|
LogEntry.@type |
Jenis resource metadata Google Cloud Gemini untuk:type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.MetadataLog . |
LogEntry.labels.method |
Untuk log metadata, nilai label ini adalah Export.Metrics . |
LogEntry.labels.product |
Gemini untuk Google Cloud nama layanan. Jika produk Gemini untuk Google Cloud adalah Gemini Code Assist, maka nilai ini adalah code_assist . Jika produk Gemini untuk Google Cloud adalah Gemini Cloud Assist, maka nilai ini adalah cloud_assist . Jika tidak, nilai ini adalah unknown . |
LogEntry.labels.user_id |
ID pengguna yang memulai permintaan ini. |
LogEntry.jsonPayload |
Menunjukkan peristiwa codeExposure atau peristiwa code.Acceptance . Peristiwa codeExposure menunjukkan eksposur saran kode kepada pengguna. Peristiwa code.Acceptance menunjukkan bahwa ada peristiwa penerimaan oleh pengguna, seperti pengetikan, tab, atau penerimaan penuh. |
LogEntry.jsonPayload.clientName |
Nama IDE, seperti CloudCodeVscode . |
LogEntry.jsonPayload.clientVersion |
Nomor versi IDE. |
LogEntry.jsonPayload.codeAcceptance |
Khusus untuk IDE VS Code dan IntelliJ, menunjukkan bahwa ada beberapa peristiwa penerimaan oleh pengguna, seperti pengetikan, tab, atau penerimaan penuh. Juga mencakup kolom berikut:
|
LogEntry.jsonPayload.codeExposure |
Khusus untuk IDE VS Code dan IntelliJ, menunjukkan bahwa ada eksposur saran kode kepada pengguna. Juga mencakup kolom berikut:
|
LogEntry.jsonPayload.chatExposure |
Menunjukkan bahwa respons chat ditampilkan kepada pengguna. Juga mencakup kolom berikut:
|
Contoh berikut menunjukkan contoh entri log codeExposure
:
{
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"
}
Contoh berikut menunjukkan contoh entri log codeAcceptance
:
{
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"
}
Contoh berikut menunjukkan contoh entri log chatExposure
:
{
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"
}
Menghitung tingkat penerimaan kode
Untuk menghitung rasio penerimaan menggunakan log metadata Gemini Code Assist, temukan jumlah total ID unik dari peristiwa dengan codeAcceptance.originalRequestId
dan bagi dengan jumlah total ID unik dari peristiwa dengan codeExposure.originalRequestId
. Anda dapat menyempurnakan penghitungan ini lebih lanjut menurut bahasa pemrograman dan menurut pengguna menggunakan kolom peristiwa log metadata masing-masing.
Menghitung baris kode yang diterima
Untuk menghitung baris kode yang diterima, temukan nilai maksimum untuk
codeAcceptance.linesCount
untuk codeAcceptance.originalRequestId
unik.
Kemudian, tambahkan nilai linesCount
untuk semua peristiwa codeAcceptance
akhir untuk setiap
originalRequestId
guna menghitung total baris kode yang diterima. Anda dapat
lebih menyempurnakan penghitungan ini menurut bahasa pemrograman dan menurut pengguna menggunakan
masing-masing kolom peristiwa log metadata.
Langkah berikutnya
- Pelajari cara melihat, menganalisis, dan memantau log Anda di Google Cloud.
- Pelajari lebih lanjut cara memantau penggunaan Gemini untuk Google Cloud.