Плагин 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 собирать данные телеметрии из сторонних библиотек без необходимости изменения кода.

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

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

Мониторинг производства с помощью операционного пакета 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 имеют щедрые уровни бесплатного пользования. Конкретные цены можно найти по следующим ссылкам: