diagnostics-prometheus. Он принимает доверенные диагностические события, а также
внутренне помеченные диагностические события, которыми управляет диспетчер (сигналы очереди, памяти и
восстановления сеанса), и предоставляет текстовую конечную точку Prometheus по адресу:
text/plain; version=0.0.4; charset=utf-8, стандартный
формат представления Prometheus.
Сведения о трассировках, журналах, отправке OTLP и семантических атрибутах OpenTelemetry GenAI см. в разделе Экспорт OpenTelemetry.
Быстрый старт
1
Установите плагин
2
Включите плагин
- Конфигурация
- CLI
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 каждый раз увеличивается на единицу.Отслеживайте этот счетчик как однозначный признак того, что вышестоящий атрибут пропускает значения с высокой кардинальностью. Экспортер никогда не снимает ограничение автоматически; если счетчик растет, исправьте источник, а не отключайте ограничение.Что никогда не появляется в выводе Prometheus
Что никогда не появляется в выводе Prometheus
- текст запросов, текст ответов, входные данные инструментов, выходные данные инструментов, системные запросы
- расшифровки разговоров, аудиоданные, идентификаторы вызовов, идентификаторы комнат, токены передачи, идентификаторы ходов и необработанные идентификаторы сеансов
- необработанные идентификаторы запросов к провайдеру (только ограниченные хеши, где применимо, в интервалах — никогда в метриках)
- ключи и идентификаторы сеансов
- имена хостов, пути к файлам, значения секретов
Рецепты PromQL
Выбор между экспортом Prometheus и OpenTelemetry
OpenClaw независимо поддерживает оба интерфейса. Можно использовать любой из них, оба или ни одного.- diagnostics-prometheus
- diagnostics-otel
- Модель извлечения: Prometheus опрашивает
/api/diagnostics/prometheus. - Внешний сборщик не требуется.
- Аутентификация выполняется через обычную аутентификацию Gateway.
- Интерфейс включает только метрики (без трассировок и журналов).
- Лучше всего подходит для стеков, уже стандартизированных на Prometheus + Grafana.
Устранение неполадок
Пустое тело ответа
Пустое тело ответа
- Убедитесь, что в конфигурации параметр
diagnostics.enabledне имеет значенияfalse(по умолчанию используетсяtrue). - Подтвердите с помощью
openclaw plugins list --enabled, что плагин включен и загружен. - Создайте некоторый трафик: счетчики и гистограммы начинают выводить строки только после хотя бы одного события.
401 / нет авторизации
401 / нет авторизации
Конечная точка требует область полномочий оператора Gateway (
auth: "gateway" с gatewayRuntimeScopeSurface: "trusted-operator"). Используйте тот же токен или пароль, который Prometheus использует для любого другого маршрута оператора Gateway. Общедоступного режима без аутентификации нет.`openclaw_prometheus_series_dropped_total` растет
`openclaw_prometheus_series_dropped_total` растет
Новый атрибут превышает ограничение в 2048 рядов. Проверьте последние метрики на наличие метки с неожиданно высокой кардинальностью и исправьте ее в источнике. Экспортер намеренно отбрасывает новые ряды вместо неявного перезаписывания меток.
После перезапуска Prometheus показывает устаревшие ряды
После перезапуска Prometheus показывает устаревшие ряды
Плагин хранит состояние только в памяти. После перезапуска Gateway счетчики сбрасываются до нуля, а индикаторы возобновляют работу со следующего переданного значения. Используйте в PromQL
rate() и increase(), чтобы корректно обрабатывать сбросы.Связанные материалы
- Экспорт диагностики — локальный ZIP-архив диагностики для пакетов поддержки
- Работоспособность и готовность — пробы
/healthzи/readyz - Ведение журналов — ведение журналов в файлах
- Экспорт OpenTelemetry — отправка по OTLP трассировок, метрик и журналов