Плагин Google Cloud

Плагин Google Cloud экспортирует данные телеметрии и журналирования Firebase Genkit в операционный пакет Google Cloud, который поддерживает панель мониторинга Firebase AI Monitoring (частная предварительная версия) .

Установка

npm i --save @genkit-ai/google-cloud

Если вы хотите локально запускать потоки, использующие этот плагин, вам также необходимо установить инструмент Google Cloud CLI .

Настройте учетную запись Google Cloud

Для этого плагина требуется учетная запись Google Cloud ( зарегистрируйтесь , если у вас ее еще нет) и проект Google Cloud.

Прежде чем добавлять плагин, убедитесь, что для вашего проекта включены следующие API:

Эти API должны быть перечислены на панели управления API вашего проекта.

Нажмите здесь, чтобы узнать больше о включении и отключении API.

Конфигурация генкита

Чтобы включить экспорт в Google Cloud Tracing, Logging и Monitoring, просто вызовите enableGoogleCloudTelemetry() :

import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';

enableGoogleCloudTelemetry();

При запуске в рабочей среде ваши телеметрические данные автоматически экспортируются.

Аутентификация

Плагину требуется идентификатор проекта Google Cloud и учетные данные вашего проекта Google Cloud. Если вы запускаете свой поток из среды Google Cloud (Cloud Functions, Cloud Run и т. д.), идентификатор проекта и учетные данные устанавливаются автоматически.

Учетные данные приложения по умолчанию

Для работы в других средах необходимо установить переменную среды GCLOUD_PROJECT для вашего проекта Google Cloud и пройти аутентификацию с помощью инструмента gcloud :

gcloud auth application-default login

Дополнительные сведения см. в документации по учетным данным приложения по умолчанию .

Учетные данные сервисной учетной записи

Если вы используете учетную запись службы и работаете за пределами среды Google Cloud, вы можете установить свои учетные данные в качестве переменной среды. Следуйте инструкциям здесь, чтобы настроить ключ учетной записи Google Cloud Service .

После загрузки файла ключа вы можете указать учетные данные двумя способами; расположение файла с помощью переменной среды GOOGLE_APPLICATION_CREDENTIALS или напрямую скопируйте содержимое файла json в переменную среды GCLOUD_SERVICE_ACCOUNT_CREDS .

Путь к файлу:

GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"

Прямая копия:

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"
}'

Конфигурация плагина

Функция enableGoogleCloudTelemetry() принимает дополнительный объект конфигурации, который настраивает экземпляр OpenTelemetry NodeSDK .

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,
});

Объекты конфигурации обеспечивают детальный контроль над различными аспектами экспорта телеметрии, описанными ниже.

реквизиты для входа

Позволяет указывать учетные данные напрямую с помощью JWTInput из библиотеки Google-auth.

пробоотборник

В случаях, когда экспорт всех трассировок нецелесообразен, OpenTelemetry позволяет выполнять выборку трассировок.

Существует четыре предварительно настроенных семплера:

  • AlwaysOnSampler — выборка всех трассировок
  • AlwaysOffSampler — сэмплирует без следов
  • ParentBased — образцы на основе родительского диапазона.
  • TraceIdRatioBased — выборка настраиваемого процента трассировок.

autoInstrumentation и autoInstrumentationConfig

Включение автоматического инструментирования позволяет OpenTelemetry собирать данные телеметрии из сторонних библиотек без необходимости изменения кода.

metricExportIntervalMillis

В этом поле указывается интервал экспорта метрик в миллисекундах.

metricExportTimeoutMillis

В этом поле указывается время ожидания экспорта метрик в миллисекундах.

отключить метрику

Предоставляет переопределение, которое отключает экспорт метрик, сохраняя при этом экспорт трассировок и журналов.

отключитьследы

Предоставляет переопределение, которое отключает экспорт трассировок, сохраняя при этом метрики и журналы.

отключить журналирование ввода-вывода

Предоставляет переопределение, которое отключает сбор журналов ввода и вывода.

ForceDevExport

Эта опция заставит Genkit экспортировать данные телеметрии и журналов при работе в среде dev (например, локально).

Проверьте свою интеграцию

При настройке плагина используйте forceDevExport: true , чтобы включить экспорт телеметрии для локальных запусков. Перейдите к журналам Google Cloud, метрикам или Trace Explorer, чтобы просмотреть телеметрию. Альтернативно перейдите на панель мониторинга Firebase AI Monitoring (частная предварительная версия) для идиоматического представления телеметрии с помощью AI.