Skip to main content
OpenClaw может предоставлять диагностические метрики через официальный плагин diagnostics-prometheus. Он принимает доверенные диагностические события, а также внутренне помеченные диагностические события, которыми управляет диспетчер (сигналы очереди, памяти и восстановления сеанса), и предоставляет текстовую конечную точку Prometheus по адресу:
Тип содержимого — text/plain; version=0.0.4; charset=utf-8, стандартный формат представления Prometheus.
Маршрут использует аутентификацию Gateway (область оператора, интерфейс доверенного оператора). Не публикуйте его как общедоступную конечную точку /metrics без аутентификации. Собирайте с него метрики через тот же путь аутентификации, который используется для других операторских API.
Сведения о трассировках, журналах, отправке OTLP и семантических атрибутах OpenTelemetry GenAI см. в разделе Экспорт OpenTelemetry.

Быстрый старт

1

Установите плагин

2

Включите плагин

3

Перезапустите Gateway

HTTP-маршрут регистрируется при запуске плагина, поэтому после включения выполните перезапуск.
4

Соберите метрики с защищённого маршрута

Передайте те же данные аутентификации Gateway, которые используют ваши операторские клиенты:
5

Подключите Prometheus

По умолчанию diagnostics.enabled имеет значение true; устанавливайте значение false только в строго контролируемых средах. Если установлено значение false, плагин по-прежнему регистрирует HTTP-маршрут, но диагностические события не поступают в экспортёр, поэтому ответ будет пустым.

Экспортируемые метрики

Политика меток

Метки Prometheus остаются ограниченными и низкокардинальными. Экспортер не выводит необработанные диагностические идентификаторы, такие как runId, sessionKey, sessionId, callId, toolCallId, идентификаторы сообщений, чатов или запросов к провайдеру.Значения меток редактируются и должны соответствовать политике OpenClaw для низкокардинальных символов. Значения, не соответствующие политике, заменяются на unknown, other или none в зависимости от метрики. Метки, похожие на ключи сеансов агентов с областью действия, также заменяются на unknown.
Экспортер ограничивает количество временных рядов, хранящихся в памяти, до 2048 суммарно для счетчиков, индикаторов и гистограмм. Новые ряды сверх этого ограничения отбрасываются, а openclaw_prometheus_series_dropped_total каждый раз увеличивается на единицу.Отслеживайте этот счетчик как однозначный признак того, что вышестоящий атрибут пропускает значения с высокой кардинальностью. Экспортер никогда не снимает ограничение автоматически; если счетчик растет, исправьте источник, а не отключайте ограничение.
  • текст запросов, текст ответов, входные данные инструментов, выходные данные инструментов, системные запросы
  • расшифровки разговоров, аудиоданные, идентификаторы вызовов, идентификаторы комнат, токены передачи, идентификаторы ходов и необработанные идентификаторы сеансов
  • необработанные идентификаторы запросов к провайдеру (только ограниченные хеши, где применимо, в интервалах — никогда в метриках)
  • ключи и идентификаторы сеансов
  • имена хостов, пути к файлам, значения секретов

Рецепты PromQL

Для панелей мониторинга, охватывающих несколько провайдеров, предпочитайте gen_ai_client_token_usage: эта метрика следует семантическим соглашениям OpenTelemetry GenAI и согласуется с метриками сервисов GenAI, не относящихся к OpenClaw.

Выбор между экспортом Prometheus и OpenTelemetry

OpenClaw независимо поддерживает оба интерфейса. Можно использовать любой из них, оба или ни одного.
  • Модель извлечения: Prometheus опрашивает /api/diagnostics/prometheus.
  • Внешний сборщик не требуется.
  • Аутентификация выполняется через обычную аутентификацию Gateway.
  • Интерфейс включает только метрики (без трассировок и журналов).
  • Лучше всего подходит для стеков, уже стандартизированных на Prometheus + Grafana.

Устранение неполадок

  • Убедитесь, что в конфигурации параметр diagnostics.enabled не имеет значения false (по умолчанию используется true).
  • Подтвердите с помощью openclaw plugins list --enabled, что плагин включен и загружен.
  • Создайте некоторый трафик: счетчики и гистограммы начинают выводить строки только после хотя бы одного события.
Конечная точка требует область полномочий оператора Gateway (auth: "gateway" с gatewayRuntimeScopeSurface: "trusted-operator"). Используйте тот же токен или пароль, который Prometheus использует для любого другого маршрута оператора Gateway. Общедоступного режима без аутентификации нет.
Новый атрибут превышает ограничение в 2048 рядов. Проверьте последние метрики на наличие метки с неожиданно высокой кардинальностью и исправьте ее в источнике. Экспортер намеренно отбрасывает новые ряды вместо неявного перезаписывания меток.
Плагин хранит состояние только в памяти. После перезапуска Gateway счетчики сбрасываются до нуля, а индикаторы возобновляют работу со следующего переданного значения. Используйте в PromQL rate() и increase(), чтобы корректно обрабатывать сбросы.

Связанные материалы