chore(i18n): refresh uk translations
This commit is contained in:
parent
8fd67c526f
commit
2ddda7d091
@ -1,40 +1,40 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете надсилати дані про використання моделей OpenClaw, потік повідомлень або метрики сеансів до колектора OpenTelemetry
|
||||
- Ви підключаєте трейси, метрики або журнали до Grafana, Datadog, Honeycomb, New Relic, Tempo чи іншого бекенда OTLP
|
||||
- Вам потрібні точні назви метрик, назви спанів або структури атрибутів, щоб створювати панелі моніторингу чи сповіщення.
|
||||
- Ви хочете надсилати дані про використання моделі OpenClaw, потік повідомлень або метрики сеансів до колектора OpenTelemetry
|
||||
- Ви підключаєте трейси, метрики або журнали до Grafana, Datadog, Honeycomb, New Relic, Tempo або іншого OTLP-бекенду
|
||||
- Вам потрібні точні назви метрик, назви спанів або структури атрибутів для створення панелей моніторингу чи сповіщень
|
||||
summary: Експортуйте діагностику OpenClaw до будь-якого колектора OpenTelemetry через Plugin diagnostics-otel (OTLP/HTTP)
|
||||
title: Експорт OpenTelemetry
|
||||
x-i18n:
|
||||
generated_at: "2026-05-03T17:25:22Z"
|
||||
generated_at: "2026-05-04T02:07:41Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: c8091aa633a3e10593681f94913a858587a5dc69d9947e0c0d4132f6e897b00b
|
||||
source_hash: d0b5be99b29fe5f13132b03cfeaf3ce978ee16f29e307aa76769bc414b5ca35f
|
||||
source_path: gateway/opentelemetry.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenClaw експортує діагностику через офіційний Plugin `diagnostics-otel`
|
||||
за допомогою **OTLP/HTTP (protobuf)**. Будь-який колектор або бекенд, що приймає OTLP/HTTP,
|
||||
працює без змін коду. Про локальні файлові журнали та як їх читати див.
|
||||
працює без змін у коді. Про локальні файлові журнали та як їх читати див.
|
||||
[Журналювання](/uk/logging).
|
||||
|
||||
## Як це працює разом
|
||||
|
||||
- **Події діагностики** — це структуровані внутрішньопроцесні записи, які
|
||||
Gateway і вбудовані plugins генерують для запусків моделей, потоку повідомлень, сеансів, черг
|
||||
- **Діагностичні події** — це структуровані внутрішньопроцесні записи, які
|
||||
Gateway і вбудовані Plugins створюють для запусків моделей, потоку повідомлень, сесій, черг
|
||||
та exec.
|
||||
- **Plugin `diagnostics-otel`** підписується на ці події та експортує їх як
|
||||
OpenTelemetry **метрики**, **трейси** та **журнали** через OTLP/HTTP.
|
||||
- **Виклики провайдерів** отримують W3C-заголовок `traceparent` від довіреного
|
||||
контексту span виклику моделі OpenClaw, коли транспорт провайдера приймає власні
|
||||
заголовки. Контекст трасування, згенерований plugin, не поширюється.
|
||||
- Експортери підключаються лише тоді, коли ввімкнені і діагностична поверхня, і plugin,
|
||||
тому внутрішньопроцесна вартість за замовчуванням залишається майже нульовою.
|
||||
- **Виклики провайдера** отримують заголовок W3C `traceparent` від довіреного
|
||||
контексту span виклику моделі OpenClaw, коли транспорт провайдера приймає користувацькі
|
||||
заголовки. Контекст трасування, створений Plugin, не поширюється.
|
||||
- Експортери підключаються лише тоді, коли ввімкнено і діагностичну поверхню, і Plugin,
|
||||
тому внутрішньопроцесна вартість за замовчуванням залишається близькою до нуля.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
Для пакетних інсталяцій спочатку встановіть plugin:
|
||||
Для пакетних інсталяцій спочатку встановіть Plugin:
|
||||
|
||||
```bash
|
||||
openclaw plugins install clawhub:@openclaw/diagnostics-otel
|
||||
@ -65,7 +65,7 @@ openclaw plugins install clawhub:@openclaw/diagnostics-otel
|
||||
}
|
||||
```
|
||||
|
||||
Ви також можете ввімкнути plugin з CLI:
|
||||
Ви також можете ввімкнути Plugin з CLI:
|
||||
|
||||
```bash
|
||||
openclaw plugins enable diagnostics-otel
|
||||
@ -77,9 +77,9 @@ openclaw plugins enable diagnostics-otel
|
||||
|
||||
## Експортовані сигнали
|
||||
|
||||
| Сигнал | Що до нього входить |
|
||||
| Сигнал | Що до нього потрапляє |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **Метрики** | Лічильники та гістограми для використання токенів, вартості, тривалості запуску, потоку повідомлень, ліній черг, стану сеансів, exec і навантаження на пам’ять. |
|
||||
| **Метрики** | Лічильники та гістограми для використання токенів, вартості, тривалості запуску, потоку повідомлень, смуг черг, стану сесій, exec і тиску памʼяті. |
|
||||
| **Трейси** | Spans для використання моделі, викликів моделі, життєвого циклу harness, виконання інструментів, exec, обробки webhook/повідомлень, складання контексту та циклів інструментів. |
|
||||
| **Журнали** | Структуровані записи `logging.file`, експортовані через OTLP, коли ввімкнено `diagnostics.otel.logs`. |
|
||||
|
||||
@ -124,53 +124,53 @@ openclaw plugins enable diagnostics-otel
|
||||
| Змінна | Призначення |
|
||||
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Перевизначає `diagnostics.otel.endpoint`. Якщо значення вже містить `/v1/traces`, `/v1/metrics` або `/v1/logs`, воно використовується як є. |
|
||||
| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` / `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` / `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Перевизначення endpoint для окремих сигналів, які використовуються, коли відповідний ключ конфігурації `diagnostics.otel.*Endpoint` не задано. Конфігурація окремого сигналу має пріоритет над env окремого сигналу, а той має пріоритет над спільним endpoint. |
|
||||
| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` / `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` / `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Перевизначення endpoint для конкретного сигналу, що використовуються, коли відповідний ключ конфігурації `diagnostics.otel.*Endpoint` не задано. Конфігурація для конкретного сигналу має пріоритет над env для конкретного сигналу, а він має пріоритет над спільним endpoint. |
|
||||
| `OTEL_SERVICE_NAME` | Перевизначає `diagnostics.otel.serviceName`. |
|
||||
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Перевизначає мережевий протокол (сьогодні враховується лише `http/protobuf`). |
|
||||
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Установіть `gen_ai_latest_experimental`, щоб генерувати найновіший експериментальний атрибут GenAI span (`gen_ai.provider.name`) замість застарілого `gen_ai.system`. Метрики GenAI завжди використовують обмежені семантичні атрибути з низькою кардинальністю. |
|
||||
| `OPENCLAW_OTEL_PRELOADED` | Установіть `1`, коли інший preload або хост-процес уже зареєстрував глобальний OpenTelemetry SDK. Тоді plugin пропускає власний життєвий цикл NodeSDK, але все одно підключає діагностичні слухачі та враховує `traces`/`metrics`/`logs`. |
|
||||
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Перевизначає протокол передавання (сьогодні враховується лише `http/protobuf`). |
|
||||
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Установіть `gen_ai_latest_experimental`, щоб створювати найновіший експериментальний атрибут GenAI span (`gen_ai.provider.name`) замість застарілого `gen_ai.system`. Метрики GenAI завжди використовують обмежені семантичні атрибути з низькою кардинальністю. |
|
||||
| `OPENCLAW_OTEL_PRELOADED` | Установіть `1`, коли інший preload або хост-процес уже зареєстрував глобальний OpenTelemetry SDK. Тоді Plugin пропускає власний життєвий цикл NodeSDK, але все одно підключає діагностичних слухачів і враховує `traces`/`metrics`/`logs`. |
|
||||
|
||||
## Приватність і захоплення вмісту
|
||||
|
||||
Сирий вміст моделі/інструменту **не** експортується за замовчуванням. Spans містять обмежені
|
||||
ідентифікатори (канал, провайдер, модель, категорію помилки, ідентифікатори запитів лише як хеш)
|
||||
і ніколи не містять текст prompt, текст відповіді, вхідні дані інструментів, вихідні дані інструментів або
|
||||
ключі сеансів.
|
||||
Сирий вміст моделі/інструмента **не** експортується за замовчуванням. Spans містять обмежені
|
||||
ідентифікатори (канал, провайдер, модель, категорія помилки, ідентифікатори запитів лише у вигляді хешу)
|
||||
і ніколи не включають текст prompt, текст відповіді, вхідні дані інструмента, вихідні дані інструмента або
|
||||
ключі сесії.
|
||||
|
||||
Вихідні запити до моделі можуть містити W3C-заголовок `traceparent`. Цей заголовок
|
||||
генерується лише з діагностичного контексту трасування, що належить OpenClaw, для активного
|
||||
виклику моделі. Наявні заголовки `traceparent`, надані викликачем, замінюються, тому plugins або
|
||||
власні параметри провайдера не можуть підробити походження міжсервісного трейсу.
|
||||
Вихідні запити моделі можуть включати заголовок W3C `traceparent`. Цей заголовок
|
||||
створюється лише з діагностичного контексту трасування, що належить OpenClaw, для активного виклику моделі.
|
||||
Наявні заголовки `traceparent`, надані викликачем, замінюються, тому Plugins або
|
||||
користувацькі параметри провайдера не можуть підробити міжсервісне походження трейсу.
|
||||
|
||||
Установлюйте `diagnostics.otel.captureContent.*` у `true` лише тоді, коли ваш колектор і
|
||||
політика зберігання схвалені для тексту prompt, відповіді, інструменту або системного prompt.
|
||||
Кожен підключ є незалежним opt-in:
|
||||
політика зберігання схвалені для тексту prompt, відповіді, інструмента або системного prompt.
|
||||
Кожен підключ є окремим opt-in:
|
||||
|
||||
- `inputMessages` — вміст prompt користувача.
|
||||
- `outputMessages` — вміст відповіді моделі.
|
||||
- `toolInputs` — payload аргументів інструменту.
|
||||
- `toolOutputs` — payload результатів інструменту.
|
||||
- `toolInputs` — payload аргументів інструмента.
|
||||
- `toolOutputs` — payload результатів інструмента.
|
||||
- `systemPrompt` — зібраний системний/developer prompt.
|
||||
|
||||
Коли ввімкнено будь-який підключ, spans моделі та інструментів отримують обмежені, відредаговані
|
||||
Коли будь-який підключ увімкнено, spans моделі та інструментів отримують обмежені, відредаговані
|
||||
атрибути `openclaw.content.*` лише для цього класу.
|
||||
|
||||
## Семплювання та скидання
|
||||
## Семплування та скидання
|
||||
|
||||
- **Трейси:** `diagnostics.otel.sampleRate` (лише root-span, `0.0` відкидає всі,
|
||||
`1.0` зберігає всі).
|
||||
- **Метрики:** `diagnostics.otel.flushIntervalMs` (мінімум `1000`).
|
||||
- **Журнали:** OTLP-журнали враховують `logging.level` (рівень файлового журналу). Вони використовують
|
||||
- **Журнали:** журнали OTLP враховують `logging.level` (рівень файлового журналу). Вони використовують
|
||||
шлях редагування діагностичних log-record, а не форматування консолі. Інсталяціям із великим обсягом
|
||||
слід надавати перевагу семплюванню/фільтрації в OTLP collector над локальним семплюванням.
|
||||
- **Кореляція файлових журналів:** JSONL-файлові журнали містять верхньорівневі `traceId`,
|
||||
слід надавати перевагу семплуванню/фільтрації в колекторі OTLP замість локального семплування.
|
||||
- **Кореляція файлових журналів:** JSONL файлові журнали містять top-level `traceId`,
|
||||
`spanId`, `parentSpanId` і `traceFlags`, коли виклик журналу має дійсний
|
||||
діагностичний контекст трасування, що дає змогу обробникам журналів поєднувати локальні рядки журналів з
|
||||
діагностичний контекст трасування, що дає змогу процесорам журналів поєднувати локальні рядки журналу з
|
||||
експортованими spans.
|
||||
- **Кореляція запитів:** HTTP-запити Gateway і WebSocket-фрейми створюють
|
||||
внутрішню область трасування запиту. Журнали та діагностичні події всередині цієї області
|
||||
за замовчуванням успадковують трасування запиту, тоді як spans запуску агента та виклику моделі
|
||||
створюються як дочірні, щоб заголовки `traceparent` провайдера залишалися в тому самому трейсі.
|
||||
- **Кореляція запитів:** HTTP-запити Gateway і кадри WebSocket створюють
|
||||
внутрішню область трасування запиту. Журнали та діагностичні події в цій області
|
||||
успадковують трасування запиту за замовчуванням, а spans запуску агента та виклику моделі
|
||||
створюються як дочірні, щоб заголовки `traceparent` провайдера залишалися в тому самому трейсi.
|
||||
|
||||
## Експортовані метрики
|
||||
|
||||
@ -181,7 +181,7 @@ openclaw plugins enable diagnostics-otel
|
||||
- `openclaw.run.duration_ms` (гістограма, attrs: `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
|
||||
- `openclaw.context.tokens` (гістограма, attrs: `openclaw.context`, `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
|
||||
- `gen_ai.client.token.usage` (гістограма, метрика семантичних конвенцій GenAI, attrs: `gen_ai.token.type` = `input`/`output`, `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`)
|
||||
- `gen_ai.client.operation.duration` (гістограма, секунди, метрика семантичних конвенцій GenAI, attrs: `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`, необов’язковий `error.type`)
|
||||
- `gen_ai.client.operation.duration` (гістограма, секунди, метрика семантичних конвенцій GenAI, attrs: `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`, optional `error.type`)
|
||||
- `openclaw.model_call.duration_ms` (гістограма, attrs: `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`, плюс `openclaw.errorCategory` і `openclaw.failureKind` для класифікованих помилок)
|
||||
- `openclaw.model_call.request_bytes` (гістограма, розмір у байтах UTF-8 фінального payload запиту моделі; без сирого вмісту payload)
|
||||
- `openclaw.model_call.response_bytes` (гістограма, розмір у байтах UTF-8 подій потокової відповіді моделі; без сирого вмісту відповіді)
|
||||
@ -198,58 +198,58 @@ openclaw plugins enable diagnostics-otel
|
||||
- `openclaw.message.delivery.started` (лічильник, attrs: `openclaw.channel`, `openclaw.delivery.kind`)
|
||||
- `openclaw.message.delivery.duration_ms` (гістограма, attrs: `openclaw.channel`, `openclaw.delivery.kind`, `openclaw.outcome`, `openclaw.errorCategory`)
|
||||
|
||||
### Черги та сеанси
|
||||
### Черги та сесії
|
||||
|
||||
- `openclaw.queue.lane.enqueue` (лічильник, attrs: `openclaw.lane`)
|
||||
- `openclaw.queue.lane.dequeue` (лічильник, attrs: `openclaw.lane`)
|
||||
- `openclaw.queue.depth` (гістограма, attrs: `openclaw.lane` або `openclaw.channel=heartbeat`)
|
||||
- `openclaw.queue.wait_ms` (гістограма, attrs: `openclaw.lane`)
|
||||
- `openclaw.session.state` (лічильник, attrs: `openclaw.state`, `openclaw.reason`)
|
||||
- `openclaw.session.stuck` (лічильник, attrs: `openclaw.state`; генерується лише для обліку застарілих сеансів без активної роботи)
|
||||
- `openclaw.session.stuck_age_ms` (гістограма, attrs: `openclaw.state`; генерується лише для обліку застарілих сеансів без активної роботи)
|
||||
- `openclaw.session.stuck` (лічильник, attrs: `openclaw.state`; створюється лише для обліку застарілих сесій без активної роботи)
|
||||
- `openclaw.session.stuck_age_ms` (гістограма, attrs: `openclaw.state`; створюється лише для обліку застарілих сесій без активної роботи)
|
||||
- `openclaw.run.attempt` (лічильник, attrs: `openclaw.attempt`)
|
||||
|
||||
### Телеметрія активності сеансу
|
||||
### Телеметрія життєздатності сесії
|
||||
|
||||
`diagnostics.stuckSessionWarnMs` — це поріг віку без прогресу для діагностики
|
||||
активності сеансів. Сеанс `processing` не наближається до цього порогу,
|
||||
поки OpenClaw спостерігає прогрес відповіді, інструменту, статусу, блоку або середовища виконання ACP.
|
||||
Typing keepalives не зараховуються як прогрес, тому беззвучну модель або harness
|
||||
все ще можна виявити.
|
||||
життєздатності сесії. Сесія `processing` не наближається до цього порога,
|
||||
поки OpenClaw спостерігає прогрес відповіді, інструмента, статусу, блоку або ACP runtime.
|
||||
Typing keepalives не враховуються як прогрес, тому мовчазну модель або harness все ще можна
|
||||
виявити.
|
||||
|
||||
OpenClaw класифікує сеанси за роботою, яку він ще може спостерігати:
|
||||
OpenClaw класифікує сесії за роботою, яку він усе ще може спостерігати:
|
||||
|
||||
- `session.long_running`: активна вбудована робота, виклики моделі або виклики інструментів
|
||||
усе ще просуваються.
|
||||
досі просуваються.
|
||||
- `session.stalled`: активна робота існує, але активний запуск не повідомляв
|
||||
про нещодавній прогрес. Застряглі вбудовані запуски спершу залишаються лише для спостереження, а потім
|
||||
виконують abort-drain після щонайменше 10 хвилин і 5x `diagnostics.stuckSessionWarnMs`
|
||||
без прогресу, щоб чергові ходи за цим lane могли відновитися.
|
||||
про нещодавній прогрес. Завислі вбудовані запуски спочатку залишаються лише для спостереження, а потім
|
||||
переходять до abort-drain після щонайменше 10 хвилин і 5x `diagnostics.stuckSessionWarnMs`
|
||||
без прогресу, щоб поставлені в чергу ходи позаду lane могли відновитися.
|
||||
- `session.stuck`: застарілий облік сесії без активної роботи. Це негайно звільняє
|
||||
відповідний lane сесії.
|
||||
відповідну session lane.
|
||||
|
||||
Лише `session.stuck` емітує лічильник `openclaw.session.stuck`,
|
||||
Лише `session.stuck` генерує лічильник `openclaw.session.stuck`,
|
||||
гістограму `openclaw.session.stuck_age_ms` і span `openclaw.session.stuck`.
|
||||
Повторні діагностичні події `session.stuck` застосовують backoff, доки сесія залишається
|
||||
незмінною, тому dashboards мають сповіщати про стійке зростання, а не про кожен
|
||||
тік Heartbeat. Про параметр конфігурації та значення за замовчуванням див.
|
||||
[Довідник конфігурації](/uk/gateway/configuration-reference#diagnostics).
|
||||
Повторні діагностичні події `session.stuck` сповільнюються, доки сесія
|
||||
залишається незмінною, тому панелі моніторингу мають сповіщати про сталі
|
||||
зростання, а не про кожен Heartbeat tick. Налаштування конфігурації та значення за замовчуванням див.
|
||||
у [довіднику конфігурації](/uk/gateway/configuration-reference#diagnostics).
|
||||
|
||||
### Життєвий цикл harness
|
||||
|
||||
- `openclaw.harness.duration_ms` (гістограма, attrs: `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.harness.phase` для помилок)
|
||||
- `openclaw.harness.duration_ms` (гістограма, атрибути: `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.harness.phase` для помилок)
|
||||
|
||||
### Exec
|
||||
|
||||
- `openclaw.exec.duration_ms` (гістограма, attrs: `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`)
|
||||
- `openclaw.exec.duration_ms` (гістограма, атрибути: `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`)
|
||||
|
||||
### Внутрішня діагностика (пам’ять і цикл інструментів)
|
||||
|
||||
- `openclaw.memory.heap_used_bytes` (гістограма, attrs: `openclaw.memory.kind`)
|
||||
- `openclaw.memory.heap_used_bytes` (гістограма, атрибути: `openclaw.memory.kind`)
|
||||
- `openclaw.memory.rss_bytes` (гістограма)
|
||||
- `openclaw.memory.pressure` (лічильник, attrs: `openclaw.memory.level`)
|
||||
- `openclaw.tool.loop.iterations` (лічильник, attrs: `openclaw.toolName`, `openclaw.outcome`)
|
||||
- `openclaw.tool.loop.duration_ms` (гістограма, attrs: `openclaw.toolName`, `openclaw.outcome`)
|
||||
- `openclaw.memory.pressure` (лічильник, атрибути: `openclaw.memory.level`)
|
||||
- `openclaw.tool.loop.iterations` (лічильник, атрибути: `openclaw.toolName`, `openclaw.outcome`)
|
||||
- `openclaw.tool.loop.duration_ms` (гістограма, атрибути: `openclaw.toolName`, `openclaw.outcome`)
|
||||
|
||||
## Експортовані spans
|
||||
|
||||
@ -265,7 +265,7 @@ OpenClaw класифікує сеанси за роботою, яку він щ
|
||||
- `gen_ai.request.model`, `gen_ai.operation.name`, `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`
|
||||
- `openclaw.errorCategory` і необов’язковий `openclaw.failureKind` для помилок
|
||||
- `openclaw.model_call.request_bytes`, `openclaw.model_call.response_bytes`, `openclaw.model_call.time_to_first_byte_ms`
|
||||
- `openclaw.provider.request_id_hash` (обмежений SHA-хеш id запиту до upstream-провайдера; raw ids не експортуються)
|
||||
- `openclaw.provider.request_id_hash` (обмежений SHA-хеш ідентифікатора запиту upstream-провайдера; необроблені ідентифікатори не експортуються)
|
||||
- `openclaw.harness.run`
|
||||
- `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.provider`, `openclaw.model`, `openclaw.channel`
|
||||
- Після завершення: `openclaw.harness.result_classification`, `openclaw.harness.yield_detected`, `openclaw.harness.items.started`, `openclaw.harness.items.completed`, `openclaw.harness.items.active`
|
||||
@ -275,37 +275,37 @@ OpenClaw класифікує сеанси за роботою, яку він щ
|
||||
- `openclaw.exec`
|
||||
- `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`, `openclaw.exec.command_length`, `openclaw.exec.exit_code`, `openclaw.exec.timed_out`
|
||||
- `openclaw.webhook.processed`
|
||||
- `openclaw.channel`, `openclaw.webhook`, `openclaw.chatId`
|
||||
- `openclaw.channel`, `openclaw.webhook`
|
||||
- `openclaw.webhook.error`
|
||||
- `openclaw.channel`, `openclaw.webhook`, `openclaw.chatId`, `openclaw.error`
|
||||
- `openclaw.channel`, `openclaw.webhook`, `openclaw.error`
|
||||
- `openclaw.message.processed`
|
||||
- `openclaw.channel`, `openclaw.outcome`, `openclaw.chatId`, `openclaw.messageId`, `openclaw.reason`
|
||||
- `openclaw.channel`, `openclaw.outcome`, `openclaw.reason`
|
||||
- `openclaw.message.delivery`
|
||||
- `openclaw.channel`, `openclaw.delivery.kind`, `openclaw.outcome`, `openclaw.errorCategory`, `openclaw.delivery.result_count`
|
||||
- `openclaw.session.stuck`
|
||||
- `openclaw.state`, `openclaw.ageMs`, `openclaw.queueDepth`
|
||||
- `openclaw.context.assembled`
|
||||
- `openclaw.prompt.size`, `openclaw.history.size`, `openclaw.context.tokens`, `openclaw.errorCategory` (без prompt, history, response або вмісту session-key)
|
||||
- `openclaw.prompt.size`, `openclaw.history.size`, `openclaw.context.tokens`, `openclaw.errorCategory` (без вмісту prompt, history, response або session-key)
|
||||
- `openclaw.tool.loop`
|
||||
- `openclaw.toolName`, `openclaw.outcome`, `openclaw.iterations`, `openclaw.errorCategory` (без повідомлень циклу, params або виводу інструмента)
|
||||
- `openclaw.toolName`, `openclaw.outcome`, `openclaw.iterations`, `openclaw.errorCategory` (без повідомлень циклу, параметрів або виводу інструменту)
|
||||
- `openclaw.memory.pressure`
|
||||
- `openclaw.memory.level`, `openclaw.memory.heap_used_bytes`, `openclaw.memory.rss_bytes`
|
||||
|
||||
Коли захоплення вмісту явно ввімкнено, spans моделі та інструментів також можуть
|
||||
містити обмежені, відредаговані атрибути `openclaw.content.*` для конкретних
|
||||
класів вмісту, які ви ввімкнули.
|
||||
Коли capture вмісту явно ввімкнено, spans моделі та інструментів також можуть
|
||||
містити обмежені й відредаговані атрибути `openclaw.content.*` для конкретних
|
||||
класів вмісту, які ви вибрали.
|
||||
|
||||
## Каталог діагностичних подій
|
||||
|
||||
Події нижче підтримують наведені вище метрики та spans. Plugins також можуть підписуватися
|
||||
на них напряму без експорту OTLP.
|
||||
Наведені нижче події підтримують метрики та spans вище. Plugins також можуть
|
||||
підписуватися на них напряму без експорту OTLP.
|
||||
|
||||
**Використання моделі**
|
||||
|
||||
- `model.usage` — tokens, cost, duration, context, provider/model/channel,
|
||||
ids сесій. `usage` — це облік провайдера/ходу для вартості й телеметрії;
|
||||
`context.used` — поточний знімок prompt/context і може бути нижчим за
|
||||
provider `usage.total`, коли задіяно cached input або виклики tool-loop.
|
||||
- `model.usage` — токени, вартість, тривалість, контекст, provider/model/channel,
|
||||
ідентифікатори сесії. `usage` — це облік провайдера/ходу для вартості й телеметрії;
|
||||
`context.used` — це поточний знімок prompt/context і може бути нижчим за
|
||||
provider `usage.total`, коли задіяні кешований ввід або виклики tool-loop.
|
||||
|
||||
**Потік повідомлень**
|
||||
|
||||
@ -325,20 +325,20 @@ OpenClaw класифікує сеанси за роботою, яку він щ
|
||||
- `harness.run.started` / `harness.run.completed` / `harness.run.error` —
|
||||
життєвий цикл кожного запуску для agent harness. Містить `harnessId`, необов’язковий
|
||||
`pluginId`, provider/model/channel і run id. Завершення додає
|
||||
`durationMs`, `outcome`, необов’язкові `resultClassification`, `yieldDetected`,
|
||||
`durationMs`, `outcome`, необов’язкові `resultClassification`, `yieldDetected`
|
||||
і лічильники `itemLifecycle`. Помилки додають `phase`
|
||||
(`prepare`/`start`/`send`/`resolve`/`cleanup`), `errorCategory` і
|
||||
необов’язковий `cleanupFailed`.
|
||||
|
||||
**Exec**
|
||||
|
||||
- `exec.process.completed` — кінцевий результат, тривалість, target, mode, exit
|
||||
- `exec.process.completed` — підсумковий результат термінала, тривалість, target, mode, exit
|
||||
code і failure kind. Текст команди та робочі каталоги не
|
||||
включаються.
|
||||
|
||||
## Без експортера
|
||||
|
||||
Ви можете залишити діагностичні події доступними для Plugins або власних sinks без
|
||||
Ви можете залишити діагностичні події доступними для Plugins або користувацьких sinks без
|
||||
запуску `diagnostics-otel`:
|
||||
|
||||
```json5
|
||||
@ -348,7 +348,7 @@ OpenClaw класифікує сеанси за роботою, яку він щ
|
||||
```
|
||||
|
||||
Для цільового debug-виводу без підвищення `logging.level` використовуйте діагностичні
|
||||
flags. Flags не чутливі до регістру та підтримують wildcards (наприклад, `telegram.*` або
|
||||
прапорці. Прапорці не чутливі до регістру та підтримують wildcards (наприклад, `telegram.*` або
|
||||
`*`):
|
||||
|
||||
```json5
|
||||
@ -357,15 +357,15 @@ flags. Flags не чутливі до регістру та підтримуют
|
||||
}
|
||||
```
|
||||
|
||||
Або як одноразове перевизначення env:
|
||||
Або як одноразове перевизначення через env:
|
||||
|
||||
```bash
|
||||
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload openclaw gateway
|
||||
```
|
||||
|
||||
Вивід flags потрапляє у стандартний файл журналу (`logging.file`) і все одно
|
||||
Вивід прапорців надходить до стандартного log-файлу (`logging.file`) і все одно
|
||||
редагується через `logging.redactSensitive`. Повний посібник:
|
||||
[Діагностичні flags](/uk/diagnostics/flags).
|
||||
[діагностичні прапорці](/uk/diagnostics/flags).
|
||||
|
||||
## Вимкнення
|
||||
|
||||
@ -380,8 +380,8 @@ OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload openclaw gateway
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Журналювання](/uk/logging) — файлові журнали, консольний вивід, CLI tailing і вкладка Logs у Control UI
|
||||
- [Внутрішня логіка журналювання Gateway](/uk/gateway/logging) — стилі WS-логів, префікси підсистем і захоплення консолі
|
||||
- [Діагностичні flags](/uk/diagnostics/flags) — цільові flags debug-log
|
||||
- [Журналювання](/uk/logging) — файлові журнали, консольний вивід, CLI tailing і вкладка журналів Control UI
|
||||
- [Внутрішнє журналювання Gateway](/uk/gateway/logging) — стилі журналів WS, префікси підсистем і capture консолі
|
||||
- [Діагностичні прапорці](/uk/diagnostics/flags) — цільові прапорці debug-log
|
||||
- [Експорт діагностики](/uk/gateway/diagnostics) — інструмент support-bundle для операторів (окремо від експорту OTEL)
|
||||
- [Довідник конфігурації](/uk/gateway/configuration-reference#diagnostics) — повний довідник полів `diagnostics.*`
|
||||
- [Довідник конфігурації](/uk/gateway/configuration-reference#diagnostics) — повна довідка полів `diagnostics.*`
|
||||
|
||||
Loading…
Reference in New Issue
Block a user