Плагин Google Cloud

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

Монтаж

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, добавьте плагин googleCloud в свою конфигурацию Genkit:

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

export default configureGenkit({
  plugins: [googleCloud()],
  enableTracingAndMetrics: true,
  telemetry: {
    instrumentation: 'googleCloud',
    logger: 'googleCloud',
  },
});

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

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

gcloud auth application-default login

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

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

Плагин googleCloud() принимает дополнительный объект конфигурации:

{
    projectId?: string,
    telemetryConfig?: TelemetryConfig
}

идентификатор проекта

Эта опция позволяет явно указать идентификатор проекта Google Cloud. В большинстве случаев в этом нет необходимости.

телеметрияConfig

Этот параметр настраивает экземпляр OpenTelemetry NodeSDK .

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

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

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

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

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

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

autoInstrumentation и autoInstrumentationConfig

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

метрикиЭкспортИнтервал

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

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

При настройке плагина используйте forceDevExport: true , чтобы включить экспорт телеметрии для локальных запусков. Это быстрый способ отправить ваши первые события для мониторинга в Google Cloud.

Мониторинг производства с помощью операционного пакета Google Cloud

После развертывания потока перейдите к операционному пакету Google Cloud и выберите свой проект.

Журналы и трассировки

В боковом меню найдите «Журнал» и нажмите «Проводник журналов».

Вы увидите все журналы, связанные с развернутым потоком, включая console.log() . Любой журнал с префиксом [genkit] является внутренним журналом Genkit и содержит информацию, которая может быть интересна для целей отладки. Например, журналы Genkit в формате Config[...] содержат метаданные, такие как значения температуры и topK для конкретных выводов LLM. Журналы в формате Output[...] содержат ответы LLM, а журналы Input[...] содержат подсказки. Cloud Logging имеет надежные списки управления доступом, которые обеспечивают детальный контроль над конфиденциальными журналами.

Для определенных строк журнала можно перейти к соответствующим трассировкам, щелкнув расширенное меню. и выберите «Просмотреть в деталях трассировки».

Откроется панель предварительного просмотра трассировки, на которой можно быстро просмотреть детали трассировки. Чтобы просмотреть полную информацию, нажмите ссылку «Просмотреть в трассировке» в правом верхнем углу панели.

Наиболее заметным элементом навигации в Cloud Trace является диаграмма рассеяния трассировки. Он содержит все со��ранные трассировки за определенный промежуток времени.

Нажатие на каждую точку данных покажет ее подробную информацию под диаграммой рассеяния.

Подробное представление содержит форму потока, включая все этапы, а также важную информацию о времени. Cloud Trace имеет возможность чередовать все журналы, связанные с данной трассировкой, в этом представлении. В раскрывающемся списке «Журналы и события» выберите параметр «Показать развернуто».

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

Метрики

Просмотреть все метрики, которые экспортирует Genkit, можно, выбрав «Ведение журнала» в боковом меню и нажав «Управление метриками».

Консоль управления метриками содержит табличное представление всех собранных метрик, включая те, которые относятся к Cloud Run и окружающей среде. При нажатии на опцию «Рабочая нагрузка» откроется список, включающий метрики, собранные Genkit. Любая метрика с префиксом genkit представляет собой внутреннюю метрику Genkit.

Genkit собирает несколько категорий метрик, включая метрики уровня потока, уровня действия и уровня генерации. Каждая метрика имеет несколько полезных измерений, облегчающих надежную фильтрацию и группировку.

Общие размеры включают в себя:

  • flow_name — имя потока верхнего уровня.
  • flow_path — диапазон и его родительский диапазон до корневого диапазона.
  • error_code — в случае ошибки соответствующий код ошибки.
  • error_message — в случае ошибки соответствующее сообщение об ошибке.
  • model - название модели.
  • temperature - значение температуры вывода.
  • topKзначение вывода topK.
  • topPзначение вывода topP.

Метрики уровня потока

Имя Размеры
генкит/поток/запросы имя_потока, код_ошибки, сообщение_ошибки
генкит/поток/задержка имя_потока

Метрики уровня действий

Имя Размеры
генкит/действие/запросы имя_потока, код_ошибки, сообщение_ошибки
генкит/действие/задержка имя_потока

Метрики уровня генерации

Имя Размеры
генкит/ай/генер��ровать путь_потка, модель, температура, topK, topP, код_ошибки, сообщение_ошибки
genkit/ai/generate/input_tokens flow_path, модель, температура, topK, topP
genkit/ai/generate/output_tokens flow_path, модель, температура, topK, topP
genkit/ai/generate/input_characters flow_path, модель, температура, topK, topP
genkit/ai/generate/output_characters flow_path, модель, температура, topK, topP
genkit/ai/generate/input_images flow_path, модель, температура, topK, topP
genkit/ai/generate/output_images flow_path, модель, температура, topK, topP
genkit/ai/генерировать/задержку путь_потка, модель, температура, topK, topP, код_ошибки, сообщение_ошибки

Визуализацию метрик можно выполнить с помощью обозревателя метрик. В боковом меню выберите «Ведение журнала» и нажмите «Проводник метрик».

Выберите метрику, щелкнув раскрывающийся список «Выбрать метрику», выбрав «Общий узел», «Genkit» и метрику.

Визуализация метрики будет зависеть от ее типа (счетчик, гистограмма и т. д.). Обозреватель метрик предоставляет надежные средства агрегирования и запроса, помогающие отображать метрики в виде графиков по различным измерениям.

Задержка телеметрии

Перед отображением телеметрии для конкретного выполнения потока в операционном пакете Cloud может пройти небольшая задержка. В большинстве случаев эта задержка составляет менее 1 минуты.

Квоты и лимиты

Есть несколько квот, которые важно учитывать:

Расходы

Cloud Logging, Cloud Trace и Cloud Monitoring имеют щедрые уровни бесплатного пользования. С конкретными ценами можно ознакомиться по следующим ссылкам: