Google Cloud eklentisi, Firebase Genkit'in telemetri ve günlük verilerini Firebase Yapay Zeka İzleme kontrol panelini (özel önizleme) destekleyen Google Cloud'un operasyon 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ın da yüklü olması gerekir.
Google Cloud hesabı oluşturma
Bu eklenti için bir Google Cloud hesabı (henüz hesabınız yoksa kaydolun) ve 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 enableGoogleCloudTelemetry()
işlevini çağırmanız yeterlidir:
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
Üretimde çalışırken telemetriniz otomatik olarak dışa aktarılır.
Doğrulama
Eklenti için Google Cloud proje kimliği ve Google Cloud proje 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.
Uygulama Varsayılan Kimlik Bilgileri
Diğer ortamlarda çalıştırmak için GCLOUD_PROJECT
ortam değişkenini Google Cloud projenize ayarlamanız ve gcloud
aracını kullanarak kimlik doğrulamanız gerekir:
gcloud auth application-default login
Daha fazla bilgi için Uygulama Varsayılan Kimlik Bilgileri dokümanlarına bakın.
Hizmet Hesabı Kimlik Bilgileri
Hizmet hesabı kullanıyorsanız ve Google Cloud ortamının dışında çalışıyorsanız kimlik bilgilerinizi ortam değişkeni olarak ayarlayabilirsiniz. Google Cloud hizmet hesabı anahtarınızı oluşturmak için buradaki talimatları uygulayın.
Anahtar dosyasını indirdikten sonra kimlik bilgilerini iki şekilde belirtebilirsiniz: GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini kullanarak bir dosya konumu veya json dosyasının içeriğini doğrudan GCLOUD_SERVICE_ACCOUNT_CREDS
ortam değişkenine kopyalayarak.
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ı
enableGoogleCloudTelemetry()
işlevi, OpenTelemetry NodeSDK örneğini yapılandıran isteğe bağlı bir yapılandırma nesnesi alır.
import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
enableGoogleCloudTelemetry({
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,
});
Yapılandırma nesneleri, aşağıda açıklanan telemetri dışa aktarma işleminin çeşitli yönleri üzerinde ayrıntılı kontrol sağlar.
credentials
google-auth kitaplığındaki JWTInput kullanılarak kimlik bilgilerinin doğrudan belirtilmesine olanak tanır.
örnekleyici
Tüm izlemelerin dışa aktarılmasının uygun olmadığı durumlarda OpenTelemetry, izleme örnekleme işlemine olanak tanır.
Dört önceden yapılandırılmış örnekleyici vardır:
- AlwaysOnSampler: Tüm izlerden örnek alır.
- AlwaysOffSampler: İz bırakmadan örnek alır.
- ParentBased: Üst öğe aralığına dayalı örnekler
- TraceIdRatioBased: İzlerin yapılandırılabilir bir yüzdesini örnekler
autoInstrumentation ve autoInstrumentationConfig
Otomatik enstrümantasyonu etkinleştirmek, OpenTelemetry'nin kodda değişiklik yapmadan üçüncü taraf kitaplıklarından telemetri verileri yakalamasına olanak tanır.
metricExportIntervalMillis
Bu alan, milisaniye cinsinden metrik dışa aktarma aralığını belirtir.
metricExportTimeoutMillis
Bu alan, metrik dışa aktarma işleminin zaman aşım süresini milisaniye cinsinden belirtir.
disableMetrics
İzler ve günlükler dışa aktarılırken metrikleri dışa aktarmayı devre dışı bırakan bir geçersiz kılma sağlar.
disableTraces
Metrikleri ve günlükleri dışa aktarırken izlerin dışa aktarılmasını devre dışı bırakan bir geçersiz kılma sağlar.
disableLoggingIO
Giriş ve çıkış günlüklerinin toplanmasını devre dışı bırakan bir geçersiz kılma sağlar.
forceDevExport
Bu seçenek, Genkit'i dev
ortamında (ör. yerel olarak) çalışırken telemetri ve günlük verilerini dışa aktarmaya zorlar.
Entegrasyonunuzu test etme
Eklentiyi yapılandırırken yerel çalıştırmalar için telemetri dışa aktarma özelliğini etkinleştirmek üzere forceDevExport: true
simgesini kullanın. Telemetriyi görüntülemek için Google Cloud Günlükleri, Metrikler veya Trace Gezgini'ne gidin. Alternatif olarak, telemetrinin yapay zeka dilinde bir görünümü için Firebase AI Monitoring kontrol paneline (gizli önizleme) gidin.