Files
huncode c331bb5939
Build and deploy / deploy (push) Successful in 17s
revise August 2026 observability plan articles
2026-07-31 19:48:30 +03:00

66 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P102 — August 2026: «End-to-end наблюдаемость»
## Статус и фактическая граница
Это изолированный draft-пакет. На дату подготовки — **31 июля 2026** — август ещё не наступил. Поэтому все три текста прямо оформлены как план/сценарий на август 2026, а не как field report, внедрение, измерение, публикация или результат production-наблюдаемости. Это обязательное применение риска Р-Ф из очереди.
Разрешённый положительный результат кода — только `synthetic-observability-plan-hand-off`. Он не выполняет release, deployment, approval, доступ к production, чтение сети, файлов, секретов, браузера, очереди или telemetry backend. Во всех accepted result присутствует `productionEffect: not-attempted`.
## Исследование источников до cutoff
1. [OpenTelemetry Specification, immutable commit `c6520a73287040ca16499cba62cea1b3508dc4da`](https://github.com/open-telemetry/opentelemetry-specification/tree/c6520a73287040ca16499cba62cea1b3508dc4da), Release 1.29.0, 11 January 2024. Локально проверены pinned `specification/trace/api.md`: API содержит `SpanContext`, `TraceId` и определение parent context; pinned `specification/metrics/data-model.md` описывает удаление attributes и re-aggregation с меньшим набором attributes. Граница вывода: спецификация даёт терминологию и варианты обработки данных, но не подтверждает наличие SDK, collector, pipeline, telemetry или safety конкретного продукта.
2. [W3C Trace Context, dated Recommendation 23 November 2021](https://www.w3.org/TR/2021/REC-trace-context-1-20211123/). Локально проверены дата документа, `traceparent`, `trace-id`, `parent-id`, требование переносить `traceparent`/`tracestate`, а также разделы privacy/security considerations. Граница вывода: документ задаёт переносимый HTTP context; он не доказывает прохождение context через конкретные UI, API, queue или worker и не даёт право передавать персональные данные.
Ни один source claim не зависит от факта после 2026-07-31. Исторические факты отделены от моей модели fixed literals.
## Review pass 1 — проблема, плотность, голос, независимость
- **Practice** начинает с утраты correlation на API → worker и цены в виде невозможности различить очередь, API и worker. Угол статьи — карта проектирования: один путь, разные trace/log/metric роли, ownership schema и запретные поля.
- **Mechanism** начинает с ложной причинной истории из совпадающих имён сигналов. Угол — пределы вывода: propagation, error classes, time boundary, cardinality и sampling как независимые решения.
- **Field** начинается с небезопасного hand-off без data boundary. Угол — будущий, безопасный сценарий передачи evidence/retention-вопроса; это не production report.
- Общие формулировки убраны из открывающих абзацев. Тон M9: короткие утверждения, named boundaries, stop вместо уверенной риторики, без benchmark, incident или claim о внедрении.
- Основной текст: 10 029 / 9 775 / 9 553 знака. Каждая статья в диапазоне 5 000–15 000 и в целевом M9 диапазоне 9 000–13 000.
## Review pass 2 — факты, Р-Ф и literal execution
- В `web/scripts/upgrade-2026-08.mjs` все данные — named fixed synthetic literals; factory применяет JSON clone и deep freeze.
- Literal snippets выполнены через public exports. Получены именно заявленные статусы: `synthetic-observability-plan-hand-off`, `stop-broken-correlation-context`, `stop-forbidden-signal-field`.
- Fixture: 6/6. Он проверяет hand-off без production effect, три signal entries, fail-closed отсутствие worker context, запрет `email` и disallowed positive result.
- Code не использует часы, сеть, файлы, env, браузер, SDK, queue, collector или secrets. В источниках и тексте нет утверждений о факте августа.
- Три статьи содержат отдельную доступную HTML-таблицу, SVG с русским alt/caption, literal executable example, ordered actions, limitations и следующий шаг.
## Review pass 3 — публикационное качество, mobile SVG, уникальность
- XML валиден для трёх SVG; safety surface scan не нашёл `script`, `foreignObject`, `javascript:`, `data:image` или event handlers.
- Каждый SVG отрендерен Sharp в 375 px и визуально проверен. После первой мобильной проверки в графике cardinality сокращён обрезавшийся заголовок, а в investigation loop сокращена нижняя подпись. Итог: текст читается, стрелки и подписи не обрезаны.
- Figures не декоративны: signal map фиксирует ownership по границе; tradeoff разъединяет sampling и cardinality; loop показывает допустимый hand-off и stop.
- Строгая pairwise проверка исключает source lists и включает code: во всех трёх парах `exactParagraphs160: 0`, `common12WordFragments: 0`.
## Команды локальной проверки
Запуск из `web/`:
```sh
node --check scripts/upgrade-2026-08.mjs
node scripts/upgrade-2026-08.mjs --verify-fixture
npm run audit:draft -- scripts/upgrade-2026-08.mjs
node --input-type=module -e "import { createFixedObservabilityPlan, reviewFixedObservabilityHandOff, reviewFixedSignalBoundary } from './scripts/upgrade-2026-08.mjs'; const a=reviewFixedObservabilityHandOff(createFixedObservabilityPlan('ui-api-worker-plan-v1')); const b=reviewFixedSignalBoundary(createFixedObservabilityPlan('missing-worker-context-v1')); const c=reviewFixedObservabilityHandOff(createFixedObservabilityPlan('personal-field-v1')); console.log(a.status, b.status, c.status);"
xmllint --noout public/assets/editorial/2026/end-to-end-observability-2026-signal-boundary-map.svg public/assets/editorial/2026/end-to-end-observability-2026-cardinality-sampling-tradeoff.svg public/assets/editorial/2026/end-to-end-observability-2026-investigation-evidence-loop.svg
```
Результат: syntax pass; fixture `6/6`; audit pass для всех трёх статей; literal statuses совпадают с комментариями; SVG XML pass.
## Disposition
Draft готов к отдельной независимой приёмке. Registry, README, application files, articles JSON, production queue, staging, commit, push и любые Git-команды намеренно не выполнялись.
## Независимая приёмка основного редактора — 31.07.2026
Принято как **плановая августовская партия**, не как описание совершившейся работы. Во всех трёх текстах сохранены явные `2026-08` и cutoff `2026-07-31`; единственный положительный результат — `synthetic-observability-plan-hand-off` c `productionEffect: not-attempted`. Поэтому публикация не создаёт легенду о production-наблюдаемости в ещё не наступившем месяце.
Повторно проверены первоисточники в их зафиксированных версиях: W3C Recommendation от 23.11.2021 задаёт `traceparent`, `trace-id`, `parent-id` и разделы privacy/security; pinned OpenTelemetry source задаёт `SpanContext`/`TraceId` и допускает re-aggregation метрик при меньшем наборе attributes. Из них сделаны только словарные и модельные выводы — не вывод о наличии pipeline, SDK, collector, telemetry backend или доступа к данным конкретного продукта.
Три SVG прошли XML и safety-scan; их PNG-рендеры осмотрены на ширине 375 px: подписи, стрелки и границы читаемы, обрезания нет. Повторные локальные проверки: syntax, fixture `6/6`, draft audit и audit статей; literal checks возвращают `synthetic-observability-plan-hand-off`, `stop-broken-correlation-context`, `stop-forbidden-signal-field` и `stop-disallowed-positive-result` на соответствующих fixed inputs. Строгий cross-article scan, включая code и исключая source lists, дал ноль совпадающих абзацев от 160 символов и ноль общих 12-словных фрагментов во всех трёх парах.
В registry добавлены только три ревизии августа; пользовательские application-файлы, `articles.json`, production queue и остальная незакоммиченная работа в приёмку не включены.