diagnostics-otel
за допомогою OTLP/HTTP (protobuf). Журнали також можна записувати у форматі JSONL до stdout для
конвеєрів журналювання контейнерів і пісочниць. Будь-який збирач або серверна система, що приймає
OTLP/HTTP, працює без змін у коді. Про локальні файлові журнали див.
Журналювання.
- Діагностичні події — це структуровані внутрішньопроцесні записи, які створюють Gateway і вбудовані плагіни для запусків моделей, потоків повідомлень, сеансів, черг і exec.
diagnostics-otelпідписується на ці події та експортує їх як метрики, трасування й журнали OpenTelemetry через OTLP/HTTP, а також може дублювати записи журналу у форматі JSONL до stdout.- Виклики постачальників отримують заголовок W3C
traceparentіз довіреного контексту сегмента виклику моделі OpenClaw, якщо транспорт постачальника підтримує власні заголовки. Контекст трасування, створений Plugin, не поширюється. - Експортери підключаються лише тоді, коли ввімкнено і діагностичну поверхню, і Plugin, тому за замовчуванням внутрішньопроцесні витрати залишаються майже нульовими.
Швидкий початок
openclaw plugins enable diagnostics-otel.
protocol підтримує лише http/protobuf. Оскільки traces і metrics за замовчуванням увімкнені, будь-яке інше значення (зокрема grpc) перериває всю підписку diagnostics-otel із попередженням unsupported protocol — це також припиняє експорт журналів до stdout. Явно встановіть traces: false і metrics: false, якщо вам потрібен лише logsExporter: "stdout" зі значенням протоколу, відмінним від OTLP.Експортовані сигнали
Вмикайте й вимикайте
traces, metrics і logs незалежно. Трасування та метрики
за замовчуванням увімкнені, коли diagnostics.otel.enabled має значення true; журнали за замовчуванням вимкнені
й експортуються лише тоді, коли diagnostics.otel.logs явно має значення true. За замовчуванням журнали
експортуються через OTLP; установіть diagnostics.otel.logsExporter у stdout для JSONL у
stdout або в both для обох варіантів.
Довідник із конфігурації
Змінні середовища
Конфіденційність і захоплення вмісту
Необроблений вміст моделей та інструментів за замовчуванням не експортується. Сегменти містять обмежені ідентифікатори (канал, постачальник, модель, категорія помилки, лише хешовані ідентифікатори запитів, джерело інструмента, власник інструмента, назва/джерело навички) і ніколи не містять тексту запиту, тексту відповіді, вхідних даних інструментів, результатів інструментів, шляхів до файлів навичок або ключів сеансів. Значення, схожі на ключі сеансів агентів з областю дії (наприклад, ті, що починаються зagent:), замінюються на unknown в атрибутах із низькою кардинальністю. Записи журналу OTLP
за замовчуванням зберігають серйозність, засіб журналювання, розташування в коді, довірений контекст трасування та
очищені атрибути; необроблене тіло повідомлення журналу експортується лише
тоді, коли diagnostics.otel.captureContent має логічне значення true. Деталізовані
підключі captureContent.* ніколи не вмикають тіла журналів. Метрики Talk експортують лише
обмежені метадані подій (режим, транспорт, постачальник, тип події) — без
транскриптів, аудіоданих, ідентифікаторів сеансів, ходів, викликів і кімнат або
токенів передавання.
Вихідні запити до моделей можуть містити заголовок W3C traceparent, створений лише
з діагностичного контексту трасування, що належить OpenClaw, для активного виклику моделі.
Наявні заголовки traceparent, надані викликачем, замінюються, тому плагіни або
власні параметри постачальника не можуть підробити міжсервісну ієрархію трасування.
Установлюйте diagnostics.otel.captureContent.* у true, лише якщо ваш збирач
і політика зберігання схвалені для тексту запитів, відповідей, інструментів або
системних запитів. Кожен підключ незалежний:
inputMessages— вміст запиту користувача.outputMessages— вміст відповіді моделі.toolInputs— дані аргументів інструмента.toolOutputs— дані результатів інструмента.systemPrompt— складений системний запит або запит розробника.toolDefinitions— назви, описи та схеми інструментів моделі.
openclaw.content.* лише для цього класу.
Логічне значення
captureContent: true одночасно вмикає inputMessages, outputMessages, toolInputs, toolOutputs, toolDefinitions і тіла журналів OTLP, але не systemPrompt — явно встановіть captureContent.systemPrompt: true, якщо вам також потрібен складений системний запит.toolInputs/toolOutputs захоплюється для виконання інструментів
вбудованого середовища виконання агента (openclaw.content.tool_input і
gen_ai.tool.call.arguments у завершених сегментах або сегментах із помилкою;
openclaw.content.tool_output і gen_ai.tool.call.result у завершених
сегментах). Назви openclaw.content.* залишаються стабільними назвами атрибутів
OpenClaw; копії gen_ai.tool.call.* дублюють їх для засобів перегляду, що підтримують semconv.
Виклики інструментів із зовнішніх середовищ виконання (Codex, Claude CLI) створюють
сегменти tool.execution.* без вмісту. Захоплений вміст передається через
довірений канал, доступний лише слухачам, і ніколи не потрапляє до загальнодоступної шини
діагностичних подій.
Вибірка та скидання
- Трасування:
diagnostics.otel.sampleRateустановлюєTraceIdRatioBasedSamplerлише для кореневого спану (0.0відкидає все,1.0зберігає все). Якщо значення не задано, використовується стандартне налаштування OpenTelemetry SDK (завжди ввімкнено). - Метрики:
diagnostics.otel.flushIntervalMs(обмежується мінімальним значенням1000); якщо значення не задано, використовується стандартний інтервал періодичного експорту SDK. - Журнали: журнали OTLP враховують
logging.level(рівень файлового журналу) та використовують шлях редагування діагностичних записів журналу, а не форматування консолі. Для інсталяцій із великим обсягом даних варто віддавати перевагу вибірці та фільтруванню колектора OTLP замість локальної вибірки. Установітьdiagnostics.otel.logsExporter: "stdout", якщо ваша платформа вже передає stdout/stderr обробнику журналів і у вас немає колектора журналів OTLP. Записи stdout — це по одному об’єкту JSON у кожному рядку зts,signal,service.name, рівнем серйозності, тілом, відредагованими атрибутами та довіреними полями трасування, якщо вони доступні. - Кореляція файлових журналів: файлові журнали JSONL містять на верхньому
рівні
traceId,spanId,parentSpanIdіtraceFlags, коли виклик журналювання має дійсний контекст діагностичного трасування, що дає змогу обробникам журналів пов’язувати локальні рядки журналу з експортованими спанами. - Кореляція запитів: HTTP-запити Gateway і кадри WebSocket створюють
внутрішню область трасування запиту. Журнали та діагностичні події в цій
області за замовчуванням успадковують трасування запиту, а спани запуску
агента й виклику моделі створюються як дочірні, тому заголовки
traceparentпостачальника залишаються в тому самому трасуванні. - Кореляція викликів моделі: спани
openclaw.model.callза замовчуванням містять безпечні розміри компонентів запиту та атрибути токенів для кожного виклику, якщо результат постачальника надає дані про використання.openclaw.model.usageзалишається спаном обліку на рівні запуску для агрегованої вартості, контексту й панелей каналів і залишається в тому самому діагностичному трасуванні, коли середовище виконання, що його створює, має довірений контекст трасування.
Експортовані метрики
Використання моделі
openclaw.tokens(лічильник, атрибути:openclaw.token,openclaw.channel,openclaw.provider,openclaw.model,openclaw.agent)openclaw.cost.usd(лічильник, атрибути:openclaw.channel,openclaw.provider,openclaw.model)openclaw.run.duration_ms(гістограма, атрибути:openclaw.channel,openclaw.provider,openclaw.model)openclaw.context.tokens(гістограма, атрибути:openclaw.context,openclaw.channel,openclaw.provider,openclaw.model)gen_ai.client.token.usage(гістограма, метрика семантичних конвенцій GenAI, атрибути:gen_ai.token.type=input/output,gen_ai.provider.name,gen_ai.operation.name,gen_ai.request.model)gen_ai.client.operation.duration(гістограма, секунди, метрика семантичних конвенцій GenAI, атрибути:gen_ai.provider.name,gen_ai.operation.name,gen_ai.request.model, необов’язковийerror.type)openclaw.model_call.duration_ms(гістограма, атрибути:openclaw.provider,openclaw.model,openclaw.api,openclaw.transport, а такожopenclaw.errorCategoryіopenclaw.failureKindдля класифікованих помилок)openclaw.model_call.request_bytes(гістограма, розмір у байтах UTF-8 остаточного корисного навантаження запиту до моделі; без необробленого вмісту корисного навантаження)openclaw.model_call.response_bytes(гістограма, розмір у байтах UTF-8 корисного навантаження потокових фрагментів відповіді; для високочастотних дельт тексту, міркувань і викликів інструментів враховуються лише додаткові байтиdelta; без необробленого вмісту відповіді)openclaw.model_call.time_to_first_byte_ms(гістограма, час до першої події потокової відповіді)openclaw.model.failover(лічильник, атрибути:openclaw.provider,openclaw.model,openclaw.failover.to_provider,openclaw.failover.to_model,openclaw.failover.reason,openclaw.failover.suspended,openclaw.lane)openclaw.skill.used(лічильник, атрибути:openclaw.skill.name,openclaw.skill.source,openclaw.skill.activation, необов’язковийopenclaw.agent, необов’язковийopenclaw.toolName)
Потік повідомлень
openclaw.webhook.received(лічильник, атрибути:openclaw.channel,openclaw.webhook)openclaw.webhook.error(лічильник, атрибути:openclaw.channel,openclaw.webhook)openclaw.webhook.duration_ms(гістограма, атрибути:openclaw.channel,openclaw.webhook)openclaw.message.queued(лічильник, атрибути:openclaw.channel,openclaw.source)openclaw.message.received(лічильник, атрибути:openclaw.channel,openclaw.source)openclaw.message.dispatch.started(лічильник, атрибути:openclaw.channel,openclaw.source)openclaw.message.dispatch.completed(лічильник, атрибути:openclaw.channel,openclaw.outcome,openclaw.reason,openclaw.source)openclaw.message.dispatch.duration_ms(гістограма, атрибути:openclaw.channel,openclaw.outcome,openclaw.reason,openclaw.source)openclaw.message.processed(лічильник, атрибути:openclaw.channel,openclaw.outcome)openclaw.message.duration_ms(гістограма, атрибути:openclaw.channel,openclaw.outcome)openclaw.message.delivery.started(лічильник, атрибути:openclaw.channel,openclaw.delivery.kind)openclaw.message.delivery.duration_ms(гістограма, атрибути:openclaw.channel,openclaw.delivery.kind,openclaw.outcome,openclaw.errorCategory)
Розмова
openclaw.talk.event(лічильник, атрибути:openclaw.talk.event_type,openclaw.talk.mode,openclaw.talk.transport,openclaw.talk.brain,openclaw.talk.provider)openclaw.talk.event.duration_ms(гістограма, атрибути: такі самі, як уopenclaw.talk.event; створюється, коли подія розмови повідомляє тривалість)openclaw.talk.audio.bytes(гістограма, атрибути: такі самі, як уopenclaw.talk.event; створюється для подій аудіокадрів розмови, що повідомляють довжину в байтах)
Черги та сеанси
openclaw.queue.lane.enqueue(лічильник, атрибути:openclaw.lane)openclaw.queue.lane.dequeue(лічильник, атрибути:openclaw.lane)openclaw.queue.depth(гістограма, атрибути:openclaw.laneабоopenclaw.channel=heartbeat)openclaw.queue.wait_ms(гістограма, атрибути:openclaw.lane)openclaw.session.state(лічильник, атрибути:openclaw.state,openclaw.reason)openclaw.session.stuck(лічильник, атрибути:openclaw.state; створюється для застарілого облікового стану сеансу, який можна відновити)openclaw.session.stuck_age_ms(гістограма, атрибути:openclaw.state; створюється для застарілого облікового стану сеансу, який можна відновити)openclaw.session.turn.created(лічильник, атрибути:openclaw.agent,openclaw.channel,openclaw.trigger)openclaw.session.recovery.requested(лічильник, атрибути:openclaw.state,openclaw.action,openclaw.active_work_kind,openclaw.reason)openclaw.session.recovery.completed(лічильник, атрибути:openclaw.state,openclaw.action,openclaw.status,openclaw.active_work_kind,openclaw.reason)openclaw.session.recovery.age_ms(гістограма, атрибути: такі самі, як у відповідного лічильника відновлення)openclaw.run.attempt(лічильник, атрибути:openclaw.attempt)
Телеметрія активності сеансів
diagnostics.stuckSessionWarnMs — це пороговий вік відсутності прогресу для
діагностики активності сеансу. Вік сеансу processing не наближається до цього
порога, поки OpenClaw спостерігає прогрес відповіді, інструмента, стану,
блоку або середовища виконання ACP. Сигнали підтримання індикації набору тексту
не вважаються прогресом, тому модель або тестове середовище, що не відповідають,
усе одно можна виявити.
OpenClaw класифікує сеанси за роботою, яку ще може спостерігати:
session.long_running: активна вбудована робота, виклики моделі або виклики інструментів усе ще виконуються. Належні власнику виклики моделі, які не надають сигналів довше заdiagnostics.stuckSessionWarnMs, також позначаються як довготривалі доdiagnostics.stuckSessionAbortMs, щоб повільні або непотокові постачальники моделей не виглядали як завислі сеанси Gateway, доки можливе спостереження за перериванням.session.stalled: активна робота існує, але активний запуск останнім часом не повідомляв про прогрес. Належні власнику виклики моделі переходять ізsession.long_runningдоsession.stalledпісля досягненняdiagnostics.stuckSessionAbortMs; застаріла активність моделі чи інструмента без власника не вважається нешкідливою довготривалою роботою. Спочатку завислі вбудовані запуски лише спостерігаються, а потім післяdiagnostics.stuckSessionAbortMsбез прогресу перериваються з очікуванням завершення, щоб наступні ходи в черзі смуги могли відновитися. Якщо значення не задано, поріг переривання за замовчуванням дорівнює безпечнішому розширеному вікну: щонайменше 5 хвилин і трикратне значенняdiagnostics.stuckSessionWarnMs.session.stuck: застарілий обліковий стан сеансу без активної роботи або неактивний сеанс у черзі із застарілою активністю моделі чи інструмента без власника. Це негайно звільняє відповідну смугу сеансу після проходження перевірок відновлення.
session.recovery.requested і
session.recovery.completed. Діагностичний стан сеансу позначається як
неактивний лише після результату відновлення, що змінює стан (aborted або
released), і лише якщо те саме покоління обробки все ще є поточним.
Лише session.stuck створює лічильник openclaw.session.stuck, гістограму
openclaw.session.stuck_age_ms і спан openclaw.session.stuck. Частота
повторних діагностичних подій session.stuck поступово зменшується, доки сеанс
залишається незмінним, тому панелі мають сповіщати про тривале зростання, а не
про кожен такт Heartbeat. Параметр конфігурації та стандартні значення див. у
довіднику з конфігурації.
Попередження про активність також створюють:
openclaw.liveness.warning(лічильник, атрибути:openclaw.liveness.reason)openclaw.liveness.event_loop_delay_p99_ms(гістограма, атрибути:openclaw.liveness.reason)openclaw.liveness.event_loop_delay_max_ms(гістограма, атрибути:openclaw.liveness.reason)openclaw.liveness.event_loop_utilization(гістограма, атрибути:openclaw.liveness.reason)openclaw.liveness.cpu_core_ratio(гістограма, атрибути:openclaw.liveness.reason)
Життєвий цикл тестового середовища
openclaw.harness.duration_ms(гістограма, атрибути:openclaw.harness.id,openclaw.harness.plugin,openclaw.outcome,openclaw.harness.phaseу разі помилок)
Виконання інструментів і виявлення циклів
openclaw.tool.execution.duration_ms(гістограма, атрибути:gen_ai.tool.name,openclaw.toolName,openclaw.tool.source,openclaw.tool.owner,openclaw.tool.params.kind, а такожopenclaw.errorCategoryу разі помилок)openclaw.tool.execution.blocked(лічильник, атрибути:gen_ai.tool.name,openclaw.toolName,openclaw.tool.source,openclaw.tool.owner,openclaw.tool.params.kind,openclaw.deniedReason)openclaw.tool.loop(лічильник, атрибути:openclaw.toolName,openclaw.loop.level,openclaw.loop.action,openclaw.loop.detector,openclaw.loop.count, необов’язковийopenclaw.loop.paired_tool; створюється, коли виявлено повторюваний цикл викликів інструмента)
Виконання команд
openclaw.exec.duration_ms(гістограма, атрибути:openclaw.exec.target,openclaw.exec.mode,openclaw.outcome,openclaw.failureKind)
Внутрішня діагностика (пам’ять, корисні навантаження, стан експортерів)
openclaw.payload.large(лічильник, атрибути:openclaw.payload.surface,openclaw.payload.action,openclaw.channel,openclaw.plugin,openclaw.reason)openclaw.payload.large_bytes(гістограма, атрибути: такі самі, як уopenclaw.payload.large)openclaw.memory.rss_bytes/openclaw.memory.heap_used_bytes/openclaw.memory.heap_total_bytes/openclaw.memory.external_bytes/openclaw.memory.array_buffers_bytes(гістограми, без атрибутів; зразки пам’яті процесу)openclaw.memory.pressure(лічильник, атрибути:openclaw.memory.level,openclaw.memory.reason)openclaw.diagnostic.async_queue.dropped(лічильник, атрибути:openclaw.diagnostic.async_queue.drop_class; відкидання через зворотний тиск внутрішньої діагностичної черги)openclaw.telemetry.exporter.events(лічильник, атрибути:openclaw.exporter,openclaw.signal,openclaw.status, необов’язковийopenclaw.reason, необов’язковийopenclaw.errorCategory; власна телеметрія життєвого циклу та збоїв експортера)
Експортовані спани
openclaw.model.usageopenclaw.channel,openclaw.provider,openclaw.modelopenclaw.tokens.*(input/output/cache_read/cache_write/total)gen_ai.systemза замовчуванням абоgen_ai.provider.name, якщо ввімкнено найновіші семантичні угоди GenAIgen_ai.request.model,gen_ai.operation.name,gen_ai.usage.*
openclaw.runopenclaw.outcome,openclaw.channel,openclaw.provider,openclaw.model,openclaw.errorCategory
openclaw.model.callgen_ai.systemза замовчуванням абоgen_ai.provider.name, якщо ввімкнено найновіші семантичні угоди GenAIgen_ai.request.model,gen_ai.operation.name,openclaw.provider,openclaw.model,openclaw.api,openclaw.transportopenclaw.errorCategory,error.typeі необов’язковийopenclaw.failureKindу разі помилокopenclaw.model_call.request_bytes,openclaw.model_call.response_bytes,openclaw.model_call.time_to_first_byte_msopenclaw.model_call.prompt.input_messages_count,openclaw.model_call.prompt.input_messages_chars,openclaw.model_call.prompt.system_prompt_chars,openclaw.model_call.prompt.tool_definitions_count,openclaw.model_call.prompt.tool_definitions_chars,openclaw.model_call.prompt.total_chars(лише безпечні розміри компонентів, без тексту запиту)openclaw.model_call.usage.*іgen_ai.usage.*, коли результат виклику моделі містить дані про використання від постачальника для цього окремого виклику- Подія проміжку
openclaw.provider.requestз атрибутомopenclaw.upstreamRequestIdHash(обмеженим, на основі хешу), коли результат від зовнішнього постачальника містить ідентифікатор запиту; необроблені ідентифікатори ніколи не експортуються - З
OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimentalпроміжки викликів моделі використовують найновішу назву проміжку логічного висновку GenAI{gen_ai.operation.name} {gen_ai.request.model}і тип проміжкуCLIENTзамістьopenclaw.model.call.
openclaw.harness.runopenclaw.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 - У разі помилки:
openclaw.harness.phase,openclaw.errorCategory, необов’язковийopenclaw.harness.cleanup_failed
openclaw.tool.executiongen_ai.tool.name,gen_ai.operation.name(execute_tool),openclaw.toolName,openclaw.tool.source, необов’язковіgen_ai.tool.call.id,openclaw.tool.owner,openclaw.tool.params.*- Необов’язкові
openclaw.errorCategory/openclaw.errorCodeу разі помилок,openclaw.deniedReasonіopenclaw.outcome=blocked, коли виконання заборонено політикою або пісочницею
openclaw.execopenclaw.exec.target,openclaw.exec.mode,openclaw.outcome,openclaw.failureKind,openclaw.exec.command_length,openclaw.exec.exit_code,openclaw.exec.exit_signal,openclaw.exec.timed_out
openclaw.webhook.processedopenclaw.channel,openclaw.webhook
openclaw.webhook.erroropenclaw.channel,openclaw.webhook,openclaw.error
openclaw.message.processedopenclaw.channel,openclaw.outcome,openclaw.reason
openclaw.message.deliveryopenclaw.channel,openclaw.delivery.kind,openclaw.outcome,openclaw.errorCategory,openclaw.delivery.result_count
openclaw.session.stuckopenclaw.state,openclaw.ageMs,openclaw.queueDepth
openclaw.context.assembledopenclaw.prompt.size,openclaw.history.size,openclaw.context.tokens,openclaw.errorCategory(без вмісту запиту, історії, відповіді або ключа сеансу)
openclaw.tool.loopopenclaw.toolName,openclaw.loop.level,openclaw.loop.action,openclaw.loop.detector,openclaw.loop.count, необов’язковийopenclaw.loop.paired_tool(без повідомлень циклу, параметрів або результатів інструмента)
openclaw.memory.pressureopenclaw.memory.level,openclaw.memory.reason,openclaw.memory.rss_bytes,openclaw.memory.heap_used_bytes,openclaw.memory.heap_total_bytes,openclaw.memory.external_bytes,openclaw.memory.array_buffers_bytes, необов’язковіopenclaw.memory.threshold_bytes/openclaw.memory.rss_growth_bytes/openclaw.memory.window_ms
openclaw.content.* для конкретних
класів вмісту, які ви ввімкнули.
Каталог діагностичних подій
Наведені нижче події забезпечують роботу описаних вище метрик і проміжків. Plugins також можуть підписуватися на них безпосередньо без експорту OTLP. Використання моделіmodel.usage— токени, вартість, тривалість, контекст, постачальник/модель/канал, ідентифікатори сеансів.usage— облік постачальника/ходу для вартості й телеметрії;context.used— поточний знімок запиту/контексту, який може бути меншим заusage.totalпостачальника, якщо використовуються кешовані вхідні дані або виклики циклу інструментів.
webhook.received/webhook.processed/webhook.errormessage.queued/message.processedmessage.delivery.started/message.delivery.completed/message.delivery.error
queue.lane.enqueue/queue.lane.dequeuesession.state/session.long_running/session.stalled/session.stuckrun.attempt/run.progressdiagnostic.heartbeat(агреговані лічильники: вебхуки/черга/сеанс)
harness.run.started/harness.run.completed/harness.run.error— життєвий цикл кожного запуску середовища виконання агента. МіститьharnessId, необов’язковийpluginId, постачальника/модель/канал та ідентифікатор запуску. Після завершення додаютьсяdurationMs,outcome, необов’язковіresultClassification,yieldDetectedі лічильникиitemLifecycle. У разі помилки додаютьсяphase(prepare/start/send/resolve/cleanup),errorCategoryі необов’язковийcleanupFailed.
exec.process.completed— кінцевий результат, тривалість, ціль, режим, код виходу та тип помилки. Текст команди й робочі каталоги не включаються.exec.approval.followup_suppressed— застаріле подальше повідомлення про схвалення відкинуто після переприв’язування сеансу. МіститьapprovalId,reason(session_rebound),phase(direct_deliveryабоgateway_preflight) і часову позначку диспетчера. Ключі сеансів, маршрути й текст команди не включаються.
Без експортера
Залишайте діагностичні події доступними для Plugins або власних приймачів без запускуdiagnostics-otel:
logging.level використовуйте діагностичні
прапорці. Прапорці не залежать від регістру й підтримують символи підстановки (telegram.* або
*):
logging.file) і все одно
редагується відповідно до logging.redactSensitive. Повний посібник:
Діагностичні прапорці.
Вимкнення
diagnostics-otel до plugins.allow, чи виконайте
openclaw plugins disable diagnostics-otel.
Пов’язані матеріали
- Журналювання — файлові журнали, консольний вивід, перегляд журналів через CLI та вкладка журналів в інтерфейсі керування
- Внутрішня реалізація журналювання Gateway — стилі журналів WS, префікси підсистем і захоплення консолі
- Діагностичні прапорці — прапорці цільового налагоджувального журналювання
- Експорт діагностики — інструмент пакета підтримки для оператора (окремо від експорту OTEL)
- Довідник із конфігурації — повний довідник полів
diagnostics.*