Google Cloud eklentisi, Firebase Genkit'in telemetri ve günlük kaydı verilerini Google Cloud'un işlem paketine aktarır.
Kurulum
npm i --save @genkit-ai/google-cloud
Bu eklentiyi kullanan akışları yerel olarak çalıştırmak istiyorsanız Google Cloud KSA aracını da yüklemeniz gerekir.
Google Cloud hesabı oluşturun
Bu eklenti için bir Google Cloud hesabı (henüz yoksa kaydolun) ve bir Google Cloud projesi gereklidir.
Eklentiyi eklemeden önce projeniz için aşağıdaki API'lerin etkinleştirildiğinden emin olun:
Bu API'ler, projenizin API kontrol panelinde listelenmelidir.
API'leri etkinleştirme ve devre dışı bırakma hakkında daha fazla bilgi edinmek için burayı tıklayın.
Genkit yapılandırması
Google Cloud İzleme, Günlük Kaydı ve İzleme'ye dışa aktarmayı etkinleştirmek için Genkit yapılandırmanıza googleCloud
eklentisini ekleyin:
import { googleCloud } from '@genkit-ai/google-cloud';
export default configureGenkit({
plugins: [googleCloud()],
enableTracingAndMetrics: true,
telemetry: {
instrumentation: 'googleCloud',
logger: 'googleCloud',
},
});
Üretimde çalışırken telemetriniz otomatik olarak dışa aktarılır.
Eklenti için Google Cloud proje kimliği ve Google Cloud projesi kimlik bilgileriniz gerekir. Akışınızı bir Google Cloud ortamından (Cloud Functions, Cloud Run vb.) çalıştırıyorsanız proje kimliği ve kimlik bilgileri otomatik olarak ayarlanır. Diğer ortamlarda çalıştırmak için GCLOUD_PROJECT
ortam değişkeninin Google Cloud projenize ayarlanması ve gcloud
aracıyla kimlik doğrulaması yapılması gerekir:
gcloud auth application-default login
Daha fazla bilgi için Uygulama Varsayılan Kimlik Bilgileri dokümanlarına bakın.
Eklenti yapılandırması
googleCloud()
eklentisi isteğe bağlı bir yapılandırma nesnesi alır:
{
projectId?: string,
forceDevExport?: boolean,
telemetryConfig?: TelemetryConfig
}
proje kimliği
Bu seçenek, Google Cloud proje kimliğinin açıkça belirtilmesini sağlar. Çoğu durumda bu gerekli değildir.
ForceDevExport
Bu seçenek, Genkit'i dev
ortamında çalışırken (ör. yerel olarak) telemetri ve günlük verilerini dışa aktarmaya zorlar.
telemetri yapılandırması
Bu seçenek OpenTelemetry NodeSDK örneğini yapılandırır.
import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
googleCloud({
forceDevExport: false, // Set this to true to export telemetry for local runs
telemetryConfig: {
sampler: new AlwaysOnSampler(),
autoInstrumentation: true,
autoInstrumentationConfig: {
'@opentelemetry/instrumentation-fs': { enabled: false },
'@opentelemetry/instrumentation-dns': { enabled: false },
'@opentelemetry/instrumentation-net': { enabled: false },
},
metricExportIntervalMillis: 5_000,
},
});
örnekleyici
OpenTelemetry, tüm izleri dışa aktarmanın pratik olmadığı durumlarda iz örneklemesine izin verir.
Önceden yapılandırılmış dört örnekleyici vardır:
- AlwaysOnSampler - Tüm izleri örnekler
- AlwaysOffSampler - örneklerde iz yok
- Ebeveyn Tabanlı: Üst süreye dayalı örnekler
- TraceIdRatioBased: İzlerin yapılandırılabilir bir yüzdesini örnekler
autoEnstrümantasyon ve autoInstrumentationConfig
Otomatik araçların etkinleştirilmesi, OpenTelemetry'nin kodu değiştirmeye gerek kalmadan üçüncü taraf kitaplıklardan telemetri verilerini yakalamasına olanak tanır.
MetrikleriDışaAktarmaInterval
Bu alan, metrikleri dışa aktarma aralığını milisaniye cinsinden belirtir.
Google Cloud'un işlem paketi aracılığıyla üretim izleme
Bir akış dağıtıldıktan sonra Google Cloud'un işlem paketine gidin ve projenizi seçin.
Günlükler ve izler
Yan menüden "Günlük Kaydı"nı bulun ve "Günlük gezgini"ni tıklayın.
console.log()
dahil olmak üzere dağıtılan akışınızla ilişkili tüm günlükleri görürsünüz. [genkit]
önekine sahip tüm günlükler, hata ayıklama amacıyla ilginç olabilecek bilgiler içeren bir Genkit dahili günlüğüdür. Örneğin, Config[...]
biçimindeki Genkit günlükleri, belirli LLM çıkarımları için sıcaklık ve üstK değerleri gibi meta verileri içerir. Output[...]
biçimindeki günlükler LLM yanıtlarını, Input[...]
günlükleri ise istemleri içerir. Cloud Logging, hassas günlükler üzerinde ayrıntılı kontrol sağlayan güçlü EKL'lere sahiptir.
Belirli günlük satırları için, genişletilmiş menü simgesini tıklayıp "İzleme ayrıntılarında göster"i seçerek ilgili izlere gitmek mümkündür.
Bu, izinle ilgili ayrıntılara hızlı bir bakış sunan iz önizleme bölmesini açar. Tüm ayrıntılara ulaşmak için bölmenin sağ üst kısmındaki "Trace In Trace" (İzlemede Göster) bağlantısını tıklayın.
Cloud Trace'deki en belirgin gezinme öğesi iz dağılım grafiğidir. Belirli bir zaman aralığında toplanan tüm izleri içerir.
Tıklanan veri noktaları, dağılım grafiğinin altında ayrıntıları gösterilir.
Ayrıntılı görünüm, tüm adımlar dahil olmak üzere akış şeklini ve önemli zamanlama bilgilerini içerir. Cloud Trace, bu görünümde belirli bir izle ilişkili tüm günlüklere araya ekleme yeteneğine sahiptir. "Günlükler ve etkinlikler" açılır menüsünden "Genişletilmişleri göster"i seçin.
Sonuç görünümü, günlüklerin istemler ve LLM yanıtları dahil olmak üzere iz bağlamında ayrıntılı incelenmesine olanak tanır.
Metrikler
Genkit'in dışa aktardığı tüm metrikleri görüntülemek için yan menüden "Günlük Kaydı"nı, ardından "Metrik yönetimi"ni tıklayabilirsiniz.
Metrik yönetim konsolu, Cloud Run ve etrafındaki ortamıyla ilgili olanlar da dahil olmak üzere toplanan tüm metriklerin tablo biçiminde bir görünümünü içerir. "İş Yükü" seçeneğini tıkladığınızda Genkit tarafından toplanan metrikleri içeren bir liste açılır. genkit
önekine sahip tüm metrikler dahili bir Genkit metriği oluşturur.
Genkit; akış düzeyi, işlem düzeyi ve oluşturma düzeyi metrikleri dahil olmak üzere çeşitli metrik kategorileri toplar. Her metrik, güçlü filtreleme ve gruplamayı kolaylaştıran birkaç yararlı boyuta sahiptir.
Yaygın olarak kullanılan boyutlar şunlardır:
flow_name
- akışın üst düzey adı.flow_path
- Aralık ve kök kapsama kadar üst aralık zinciri.error_code
- Hata durumunda ilgili hata kodu.error_message
- Hata durumunda ilgili hata mesajı.model
- modelin adı.temperature
- çıkarım sıcaklığı değeri.topK
- çıkarım üst K değeri.topP
- çıkarım üstP değeri.
Akış seviyesi metrikleri
Ad | Boyutlar |
---|---|
genkit/akış/istekler | akış_adı, hata_kodu, hata_mesajı |
genkit/akış/gecikme | akış_adı |
İşlem düzeyindeki metrikler
Ad | Boyutlar |
---|---|
genkit/işlem/istekler | akış_adı, hata_kodu, hata_mesajı |
genkit/işlem/gecikme | akış_adı |
Oluşturma düzeyindeki metrikler
Ad | Boyutlar |
---|---|
genkit/yai/generate | akış_yolu, model, sıcaklık, topK, topP, hata_kodu, hata_mesajı |
genkit/ya/ya/oluştur/girdi_jetonları | akış_yolu, model, sıcaklık, üstK, üstP |
genkit/ai/generate/output_tokens | akış_yolu, model, sıcaklık, üstK, üstP |
genkit/ai/generate/input_characters | akış_yolu, model, sıcaklık, üstK, üstP |
genkit/ai/generate/output_characters | akış_yolu, model, sıcaklık, üstK, üstP |
genkit/ai/generate/input_images | akış_yolu, model, sıcaklık, üstK, üstP |
genkit/ai/generate/output_images | akış_yolu, model, sıcaklık, üstK, üstP |
genkit/yai/oluşturma/gecikme | akış_yolu, model, sıcaklık, topK, topP, hata_kodu, hata_mesajı |
Metrikleri görselleştirme, Metrik Gezgini ile yapılabilir. Yan menüyü kullanarak "Günlük" seçeneğini belirleyin ve "Metrik gezgini"ni tıklayın
"Metrik seçin" açılır listesini tıklayıp "Genel Düğüm", "Genkit" ve bir metriği seçerek bir metrik seçin.
Metriğin görselleştirilmesi türüne (sayaç, histogram vb.) bağlıdır. Metrik Gezgini, metrikleri çeşitli boyutlarına göre grafiğe dönüştürmeye yardımcı olmak için sağlam toplama ve sorgulama olanakları sağlar.
Telemetri Gecikmesi
Bir akışın belirli bir yürütme işlemi için telemetrinin Cloud işlem paketinde gösterilmesinden önce kısa bir gecikme olabilir. Çoğu durumda, bu gecikme 1 dakikadan azdır.
Kotalar ve sınırlar
Unutulmaması gereken birkaç kota vardır:
- Cloud Trace Kotaları
- Özellik anahtarı başına 128 bayt
- Özellik değeri başına 256 bayt
- Cloud Logging Kotaları
- Günlük girişi başına 256 KB
- Cloud Monitoring Kotaları
Maliyet
Cloud Logging, Cloud Trace ve Cloud Monitoring, cömert ücretsiz katmanlara sahiptir. Ayrıntılı fiyatlara aşağıdaki bağlantılardan ulaşabilirsiniz: