Pengumpulan Telemetri

Plugin telemetri Firebase mengekspor kombinasi metrik, trace, dan log ke Google Cloud Observability. Dokumen ini menjelaskan metrik, atribut trace, dan log yang akan dikumpulkan serta hal yang dapat Anda harapkan dalam hal latensi, kuota, dan biaya.

Penundaan telemetri

Mungkin ada sedikit keterlambatan sebelum telemetri dari pemanggilan tertentu tersedia di Firebase. Hal ini bergantung pada interval ekspor Anda (5 menit secara default).

Kuota dan batas

Ada beberapa kuota yang penting untuk diingat:

Biaya

Cloud Logging, Cloud Trace, dan Cloud Monitoring memiliki paket gratis yang melimpah. Harga khusus dapat ditemukan di link berikut:

Metrik

Plugin Firebase telemetry mengumpulkan sejumlah metrik yang berbeda untuk mendukung berbagai jenis tindakan Genkit yang dijelaskan di bagian berikut.

Metrik fitur

Fitur adalah titik entri tingkat atas ke kode Genkit Anda. Dalam sebagian besar kasus, ini akan berupa alur. Jika tidak, ini akan menjadi span teratas dalam rekaman aktivitas.

Nama Jenis Deskripsi
genkit/feature/requests Penghitung Jumlah permintaan
genkit/feature/latency Histogram Latensi eksekusi dalam md

Setiap metrik fitur berisi dimensi berikut:

Nama Deskripsi
name Nama fitur. Pada umumnya, ini adalah alur Genkit tingkat teratas
status 'success' atau 'failure' bergantung pada apakah permintaan fitur berhasil atau tidak
error Hanya ditetapkan saat status=failure. Berisi jenis error yang menyebabkan kegagalan
source Bahasa sumber Genkit. Misalnya, 'ts'
sourceVersion Versi framework Genkit

Metrik tindakan

Tindakan mewakili langkah eksekusi umum dalam Genkit. Setiap langkah ini akan melacak metrik berikut:

Nama Jenis Deskripsi
genkit/action/requests Penghitung Frekuensi tindakan ini telah dieksekusi
genkit/action/latency Histogram Latensi eksekusi dalam md

Setiap metrik tindakan berisi dimensi berikut:

Nama Deskripsi
name Nama tindakan
featureName Nama fitur induk yang sedang dieksekusi
jalur Jalur eksekusi dari root fitur ke tindakan ini. misalnya. '/myFeature/parentAction/thisAction'
status 'success' atau 'failure', bergantung pada apakah tindakan berhasil atau tidak
error Hanya ditetapkan saat status=failure. Berisi jenis error yang menyebabkan kegagalan
source Bahasa sumber Genkit. Misalnya, 'ts'
sourceVersion Versi framework Genkit

Membuat metrik

Ini adalah metrik tindakan khusus yang berkaitan dengan tindakan yang berinteraksi dengan model. Selain permintaan dan latensi, input dan output juga dilacak, dengan dimensi khusus model yang mempermudah proses debug dan penyesuaian konfigurasi.

Nama Jenis Deskripsi
genkit/ai/generate/requests Penghitung Frekuensi model ini dipanggil
genkit/ai/generate/latency Histogram Latensi eksekusi dalam md
genkit/ai/generate/input/tokens Penghitung Token input
genkit/ai/generate/output/tokens Penghitung Token output
genkit/ai/generate/input/characters Penghitung Memasukkan karakter
genkit/ai/generate/output/characters Penghitung Karakter output
genkit/ai/generate/input/images Penghitung Gambar input
genkit/ai/generate/output/images Penghitung Gambar output
genkit/ai/generate/input/audio Penghitung File audio input
genkit/ai/generate/output/audio Penghitung File audio output

Setiap metrik yang dihasilkan berisi dimensi berikut:

Nama Deskripsi
modelName Nama model
featureName Nama fitur induk yang sedang dieksekusi
jalur Jalur eksekusi dari root fitur ke tindakan ini. misalnya. '/myFeature/parentAction/thisAction'
latencyMs Waktu respons yang diperlukan model
status 'success' atau 'failure' bergantung pada apakah permintaan fitur berhasil atau tidak
error Hanya ditetapkan saat status=failure. Berisi jenis error yang menyebabkan kegagalan
source Bahasa sumber Genkit. Misalnya, 'ts'
sourceVersion Versi framework Genkit

Trace

Semua tindakan Genkit secara otomatis dilengkapi dengan instrumen untuk memberikan rekaman aktivitas mendetail untuk fitur AI Anda. Secara lokal, trace dapat dilihat di UI Developer. Untuk aplikasi yang di-deploy, aktifkan Firebase Genkit Monitoring untuk mendapatkan tingkat visibilitas yang sama.

Bagian berikut menjelaskan atribut rekaman aktivitas yang dapat Anda harapkan berdasarkan jenis tindakan Genkit untuk span tertentu dalam rekaman aktivitas.

Root Span

Span root memiliki atribut khusus untuk membantu membedakan atribut status untuk seluruh rekaman aktivitas dibandingkan dengan setiap span.

Nama atribut Deskripsi
genkit/feature Nama fitur induk yang sedang dieksekusi
genkit/isRoot Ditandai benar jika span ini adalah span root
genkit/rootState Status eksekusi secara keseluruhan sebagai success atau error. Hal ini tidak menunjukkan bahwa langkah ini gagal secara khusus.

Flow

Nama atribut Deskripsi
genkit/input Input ke alur. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/metadata/subtype Jenis tindakan Genkit. Untuk alur, nilainya adalah flow.
genkit/name Nama tindakan Genkit ini. Dalam hal ini, nama alur
genkit/output Output yang dihasilkan dalam alur. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/path Jalur eksekusi yang sepenuhnya memenuhi syarat yang mengarah ke langkah ini dalam rekaman aktivitas, termasuk informasi jenis.
genkit/state Status eksekusi span ini sebagai success atau error.
genkit/type Jenis primitif Genkit yang sesuai dengan span ini. Untuk alur, ini akan berupa action.

Util

Nama atribut Deskripsi
genkit/input Input ke utilitas. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/name Nama tindakan Genkit ini. Dalam hal ini, nama alur
genkit/output Output yang dihasilkan di util. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/path Jalur eksekusi yang sepenuhnya memenuhi syarat yang mengarah ke langkah ini dalam rekaman aktivitas, termasuk informasi jenis.
genkit/state Status eksekusi span ini sebagai success atau error.
genkit/type Jenis primitif Genkit yang sesuai dengan span ini. Untuk alur, ini akan berupa util.

Model

Nama atribut Deskripsi
genkit/input Input ke model. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/metadata/subtype Jenis tindakan Genkit. Untuk model, ID-nya adalah model.
genkit/model Nama model.
genkit/name Nama tindakan Genkit ini. Dalam hal ini, nama model.
genkit/output Output yang dihasilkan oleh model. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/path Jalur eksekusi yang sepenuhnya memenuhi syarat yang mengarah ke langkah ini dalam rekaman aktivitas, termasuk informasi jenis.
genkit/state Status eksekusi span ini sebagai success atau error.
genkit/type Jenis primitif Genkit yang sesuai dengan span ini. Untuk alur, ini akan berupa action.

Alat

Nama atribut Deskripsi
genkit/input Input ke model. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/metadata/subtype Jenis tindakan Genkit. Untuk alat, ID-nya adalah tool.
genkit/name Nama tindakan Genkit ini. Dalam hal ini, nama model.
genkit/output Output yang dihasilkan oleh model. Nilai ini akan selalu <redacted> karena batas ukuran atribut rekaman aktivitas.
genkit/path Jalur eksekusi yang sepenuhnya memenuhi syarat yang mengarah ke langkah ini dalam rekaman aktivitas, termasuk informasi jenis.
genkit/state Status eksekusi span ini sebagai success atau error.
genkit/type Jenis primitif Genkit yang sesuai dengan span ini. Untuk alur, ini akan berupa action.

Log

Untuk aplikasi yang di-deploy dengan Firebase Genkit Monitoring, log digunakan untuk merekam metadata input, output, dan konfigurasi yang memberikan detail lengkap tentang setiap langkah dalam fitur AI Anda.

Semua log akan menyertakan kolom metadata bersama berikut:

Nama kolom Deskripsi
insertId ID unik untuk entri log
jsonPayload Penampung untuk informasi variabel yang unik untuk setiap jenis log
label {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Waktu log diterima oleh Cloud
referensi Informasi tentang sumber log, termasuk region informasi deployment, dan projectId
tingkat keseriusan, Level log yang ditulis. Lihat LogSeverity Cloud
spanId ID untuk span yang membuat log ini
timestamp Waktu klien mencatat pesan
pelacakan ID untuk rekaman aktivitas format projects/<project-id>/traces/<trace-id>
traceSampled Boolean yang menunjukkan apakah rekaman aktivitas diambil sampelnya. Log tidak diambil sampelnya.

Setiap jenis log akan memiliki payload json yang berbeda yang dijelaskan di setiap bagian.

Input

Payload JSON:

Nama kolom Deskripsi
message [genkit] Input[<path>, <featureName>] termasuk (message X of N) untuk pesan multi-bagian
metadata Konteks tambahan termasuk pesan input yang dikirim ke tindakan

Metadata:

Nama kolom Deskripsi
konten Konten pesan input yang dikirim ke tindakan Genkit ini
featureName Nama flow, tindakan, alat, utilitas, atau helper Genkit.
messageIndex * Indeks yang menunjukkan urutan pesan untuk input yang berisi beberapa pesan. Untuk pesan tunggal, nilai ini akan selalu 0.
model * Nama model.
jalur Jalur eksekusi yang menghasilkan log ini dalam format step1 > step2 > step3
partIndex * Indeks yang menunjukkan urutan bagian dalam pesan untuk pesan multi-bagian. Hal ini biasanya terjadi saat menggabungkan teks dan gambar dalam satu input.
qualifiedPath Jalur eksekusi yang menghasilkan log ini, termasuk informasi jenis format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * Jumlah total pesan untuk input ini. Untuk pesan tunggal, nilai ini akan selalu 1.
totalParts * Jumlah total bagian untuk pesan ini. Untuk pesan satu bagian, nilai ini akan selalu 1.

(*) Item berbintang hanya ada di Log input untuk interaksi model.

Output

Payload JSON:

Nama kolom Deskripsi
message [genkit] Output[<path>, <featureName>] termasuk (message X of N) untuk pesan multi-bagian
metadata Konteks tambahan termasuk pesan input yang dikirim ke tindakan

Metadata:

Nama kolom Deskripsi
candidateIndex * (tidak digunakan lagi) Indeks yang menunjukkan urutan kandidat untuk output yang berisi beberapa kandidat. Untuk log dengan satu kandidat, nilai ini akan selalu 0.
konten Pesan output yang dihasilkan oleh tindakan Genkit
featureName Nama flow, tindakan, alat, utilitas, atau helper Genkit.
messageIndex * Indeks yang menunjukkan urutan pesan untuk input yang berisi beberapa pesan. Untuk pesan tunggal, nilai ini akan selalu 0.
model * Nama model.
jalur Jalur eksekusi yang menghasilkan log ini dengan format `step1 > step2 > step3
partIndex * Indeks yang menunjukkan urutan bagian dalam pesan untuk pesan multi-bagian. Hal ini biasanya terjadi saat menggabungkan teks dan gambar dalam satu output.
qualifiedPath Jalur eksekusi yang menghasilkan log ini, termasuk informasi jenis format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (tidak digunakan lagi) Jumlah total kandidat yang dihasilkan sebagai output. Untuk pesan kandidat tunggal, nilai ini akan selalu 1.
totalParts * Jumlah total bagian untuk pesan ini. Untuk pesan satu bagian, nilai ini akan selalu 1.

(*) Item berbintang hanya ada di Log output untuk interaksi model.

Konfigurasi

Payload JSON:

Nama kolom Deskripsi
message [genkit] Config[<path>, <featureName>]
metadata Konteks tambahan termasuk pesan input yang dikirim ke tindakan

Metadata:

Nama kolom Deskripsi
featureName Nama flow, tindakan, alat, utilitas, atau helper Genkit.
penggunaan Nama model.
jalur Jalur eksekusi yang menghasilkan log ini dengan format `step1 > step2 > step3
qualifiedPath Jalur eksekusi yang menghasilkan log ini, termasuk informasi jenis format: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source Bahasa library Genkit yang digunakan. Ini akan selalu disetel ke 'ts' karena merupakan satu-satunya bahasa yang didukung.
sourceVersion Versi library Genkit.
suhu Suhu model yang digunakan.

Jalur

Payload JSON:

Nama kolom Deskripsi
message [genkit] Paths[<path>, <featureName>]
metadata Konteks tambahan termasuk pesan input yang dikirim ke tindakan

Metadata:

Nama kolom Deskripsi
flowName Nama flow, tindakan, alat, utilitas, atau helper Genkit.
jalur Array yang berisi semua jalur eksekusi untuk span yang dikumpulkan.