Google Cloud eklentisi, Firebase Genkit'in telemetri ve günlük kaydı verilerini Google Cloud'un işlem paketi.
Kurulum
npm i --save @genkit-ai/google-cloud
Bu eklentiyi kullanan akışları yerel olarak çalıştırmak istiyorsanız Google Cloud CLI aracı yüklenmiş olmalıdır.
Google Cloud hesabı oluşturun
Bu eklenti için bir Google Cloud hesabı (hesabınız yoksa kaydolun) ve bir Google Cloud projesi gerekir.
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 Tracing, Logging ve Monitoring'e aktarmayı etkinleştirmek için googleCloud
eklentisini Genkit yapılandırmanıza 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.
Doğrulama
Eklenti için Google Cloud proje kimliği ve Google Cloud projesi kimlik bilgileriniz gerekir. Akışınızı bir Google Cloud ortamından (ör. Cloud Functions, Cloud Run) çalıştırıyorsanız proje kimliği ve kimlik bilgileri otomatik olarak ayarlanır.
Uygulama Varsayılan Kimlik Bilgileri
Diğer ortamlarda çalışırken GCLOUD_PROJECT
ortam değişkenini Google Cloud projenize ayarlamanız ve gcloud
aracıyla kimlik doğrulaması yapmanız gerekir:
gcloud auth application-default login
Daha fazla bilgi için Application Default Credentials (Uygulama Varsayılan Kimlik Bilgileri) belgelerine bakın.
Hizmet Hesabı Kimlik Bilgileri
Bir hizmet hesabı kullanıyor ve Google Cloud ortamının dışında çalıştırıyorsanız kimlik bilgilerinizi ortam değişkeni olarak ayarlayabilirsiniz. Google Cloud Hizmet Hesabı Anahtarınızı ayarlamak için buradaki talimatları uygulayın.
Anahtar dosyasını indirdikten sonra, GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini kullanarak kimlik bilgilerini iki şekilde belirtebilirsiniz veya json dosyasının içeriğini doğrudan GCLOUD_SERVICE_ACCOUNT_CREDS
ortam değişkenine kopyalayabilirsiniz.
Dosya yolu:
GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"
Doğrudan kopya:
GCLOUD_SERVICE_ACCOUNT_CREDS='{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "your-private-key",
"client_email": "your-client-email",
"client_id": "your-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "your-cert-url"
}'
Eklenti yapılandırması
googleCloud()
eklentisi, isteğe bağlı bir yapılandırma nesnesi alır:
{
projectId?: string,
telemetryConfig?: TelemetryConfig
}
proje kimliği
Bu seçenek, Google Cloud proje kimliğinin açık bir şekilde belirtilmesini sağlar. Çoğu durumda bu gerekli değildir.
telemetriConfig
Bu seçenek OpenTelemetry NodeSDK örneğini yapılandırır.
import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
googleCloud({
telemetryConfig: {
forceDevExport: false, // Set this to true to export telemetry for local runs
sampler: new AlwaysOnSampler(),
autoInstrumentation: true,
autoInstrumentationConfig: {
'@opentelemetry/instrumentation-fs': { enabled: false },
'@opentelemetry/instrumentation-dns': { enabled: false },
'@opentelemetry/instrumentation-net': { enabled: false },
},
metricExportIntervalMillis: 5_000,
},
});
forceDevExport
Bu seçenek, dev
ortamında (ör. yerel olarak) çalışırken Genkit'i telemetri ve günlük verilerini dışa aktarmaya zorlar.
örnekleyici
OpenTelemetry, tüm izleri dışa aktarmanın pratik olmadığı durumlarda izleme örneklemesine izin verir.
Önceden yapılandırılmış dört örnekleyici vardır:
- NeverOnSampler: Tüm izleri örnekler
- Never OffSampler - iz içermeyen örnekler
- Ebeveyn Tabanlı: Üst kapsama göre örnekler
- TraceIdRatiobase: Yapılandırılabilir bir iz yüzdesi örneği.
otomatik Enstrümantasyon ve otomatik
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.
metriklerDışaAktarmaInterval
Bu alan, metriklerin dışa aktarma aralığını milisaniye cinsinden belirtir.
Entegrasyonunuzu test etme
Eklentiyi yapılandırırken yerel çalıştırmalar için telemetri dışa aktarımını etkinleştirmek üzere forceDevExport: true
kullanın. Bu, Google Cloud'da izleme için ilk etkinliklerinizi göndermenin hızlı bir yoludur.
Google Cloud'un işlem paketi ile üretim izleme
Akış dağıtıldıktan sonra Google Cloud işlem paketine gidin ve projenizi seçin.
Günlükler ve izler
Yan menüden "Logging"i (Günlük Kaydı) 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öreceksiniz. [genkit]
önekine sahip tüm günlükler, hata ayıklama amacıyla ilgi çekebilecek bilgileri içeren bir Genkit-internal günlüktür. Örneğin, Config[...]
biçimindeki Genkit günlükleri, belirli LLM çıkarımları için sıcaklık ve topK 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ı denetim sağlayan güçlü EKL'lere sahiptir.
Belirli günlük satırlarında, genişletilmiş menü simgesini tıklayıp "İz ayrıntılarında göster"i seçerek ilgili izlerine gidebilirsiniz.
Bu, iz ayrıntılarına hızlı bir bakış sunan iz önizleme bölmesini açar. Tüm ayrıntılara ulaşmak için "View in Trace" (İzlemede Görüntüle) öğesini tıklayın. bağlantısını tıklayın.
Cloud Trace'teki en belirgin gezinme öğesi, iz dağılım grafiğidir. Belirli bir zaman aralığında toplanan tüm izleri içerir.
Dağılım grafiğinin altında her bir veri noktası tıklandığında ilgili veri noktasının 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ükleri arayamaz. "Genişletilmiş göster"i seçin "Günlükler ve etkinlikler" açılır.
Sonuç olarak elde edilen görünüm, istemler ve LLM yanıtları dahil olmak üzere günlüklerin iz bağlamında ayrıntılı olarak incelenmesini sağlar.
Metrikler
"Günlük kaydı"nı seçerek Genkit'in dışa aktarabildiği tüm metrikleri görüntüleme. "Metrik yönetimi"ni tıklayın.
Metrik yönetimi konsolunda, Cloud Run ve çevresindeki ortamla ilgili olanlar da dahil olmak üzere toplanan tüm metriklerin tablo halindeki bir görünümü yer alır. 'İş Yükü'nü tıklayın. seçeneğini tıkladığınızda Genkit tarafından toplanan metrikleri içeren bir liste gösterilir. genkit
ön ekine sahip herhangi bir metrik, dahili Genkit metriği teşkil eder.
Genkit; akış düzeyi, işlem düzeyi ve oluşturma düzeyinde metrikler gibi çeşitli metrik kategorilerini toplar. Her metriğin, etkili bir filtreleme ve gruplandırmayı kolaylaştıran birkaç kullanışlı boyutu vardır.
Sık kullanılan boyutlar şunlardır:
flow_name
- akışın üst düzey adı.flow_path
- kök aralığına kadar aralık ve ü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 topK değeri.topP
- çıkarım topP değeri.
Akış düzeyindeki metrikler
Ad | Boyutlar |
---|---|
genkit/akış/istekleri | akış_adı, error_code, error_message |
genkit/akış/gecikme | akış_adı |
İşlem düzeyindeki metrikler
Ad | Boyutlar |
---|---|
genkit/işlem/istekler | akış_adı, error_code, error_message |
oluşturma/işlem/gecikme | akış_adı |
Oluşturma düzeyinde metrikler
Ad | Boyutlar |
---|---|
genkit/yai/üretme | akış_yolu, model, sıcaklık, topK, üstP, hata_kodu, hata_mesajı |
genkit/ai/üretme/girdi_jetonları | akış_yolu, model, sıcaklık, topK, topP |
genkit/ai/üretme/çıkış_jetonları | akış_yolu, model, sıcaklık, topK, topP |
genkit/ai/generate/input_characters | akış_yolu, model, sıcaklık, topK, topP |
genkit/yai/üretken/çıkış_karakterleri | akış_yolu, model, sıcaklık, topK, topP |
genkit/ai/üret/girdi_resimleri | akış_yolu, model, sıcaklık, topK, topP |
genkit/ai/üretme/çıktı_resimleri | akış_yolu, model, sıcaklık, topK, topP |
genkit/ai/üretme/gecikme | akış_yolu, model, sıcaklık, topK, üstP, hata_kodu, hata_mesajı |
Metrikleri görselleştirmek için Metrik Gezgini kullanılabilir. Yan menüyü kullanarak "Günlük Kaydı"nı seçin ve "Metrik gezgini"ni tıklayın
"Metrik seçin"i tıklayarak bir metrik seçin açılır listesinden "Genel Düğüm", "Genkit"i ve bir metrik seçebilirsiniz.
Metriğin görselleştirmesi türüne (sayaç, histogram vb.) bağlı olur. Metrik Gezgini, metriklerin çeşitli boyutlarına göre grafiğe dökülmesine yardımcı olmak için güçlü toplama ve sorgulama olanakları sağlar.
Telemetri Gecikmesi
Cloud'un işlem paketinde bir akışın belirli bir şekilde yürütülmesiyle ilgili telemetrinin 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, ücretsiz olarak sunulan katmanlara sahiptir. Özel fiyatlandırmaya aşağıdaki bağlantılardan ulaşabilirsiniz: