Плагин 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.