Google Cloud eklentisi

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:

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.