Observability And Incident Response — Наблюдаемость и реагирование на инциденты
Версия: 1.0
Дата: 24.04.2026
Статус: Готов к обсуждению
Назначение документа
Этот документ фиксирует execution-level подход к observability, incident response, diagnostics, triage, recovery и operator workflows в платформе vitrip.store.
Его задача — определить:
- что именно платформа должна уметь наблюдать как industrial system;
- как telemetry должна отражать реальную доменную жизнь, а не только состояние инфраструктуры;
- какие классы инцидентов обязательны для платформы;
- как должны работать detection, triage, escalation, containment, recovery и post-incident analysis;
- как observability должна быть связана с supplier, ingestion, quote, booking, settlement, governance и surface delivery контурами.
Этот документ не сводится к выбору monitoring stack. Он фиксирует операционную модель наблюдаемости и реагирования, поверх которой уже потом выбираются инструменты.
Технологический baseline для самих инструментов описан отдельно в Observability Tooling Baseline — Технологический baseline наблюдаемости, трассировки и операционной диагностики.
Опорные документы
- Архитектурная основа платформы vitrip.store
- Главные выводы и проблемные зоны платформы
- Deployment And Operating Model — Развёртывание и эксплуатационная модель
- Settlement And Reconciliation Operations — Расчёты, сверка и финансовая эксплуатация
- Business Services — Сервисная декомпозиция платформы
- Offer Pricing Booking Semantics — Семантика предложения, цены и бронирования
- Commercial Model — Коммерческая модель, цена, settlement и канальные условия
- Ingestion Layer — Приём, нормализация, маппинг и governance
- Suppliers Layer — Поставщики, source boundaries и управление внешней реальностью
- Storage Layer — Модель хранения и жизненный цикл данных
- Database Schema — Каноническая модель хранения платформы
- API Contracts — Surface Contracts и правила внешнего взаимодействия
- Clients Layer — Клиентские поверхности и рабочие модели
- Tenancy And Identity — Субъекты платформы, изоляция и модель доступа
- Observability Tooling Baseline — Технологический baseline наблюдаемости, трассировки и операционной диагностики
- Eventing And Queue Baseline — Событийная шина, очереди и асинхронная дисциплина платформы
Почему Этот Документ Нужен Отдельно
После фиксации deployment и settlement-and-reconciliation уже нельзя считать observability тонким приложением к infra-stack.
Платформа должна уметь наблюдать не только:
- CPU;
- память;
- latency;
- error rate;
но и:
- supplier degradation;
- ingestion lag and replay pressure;
- quote validity erosion;
- repricing surge;
- booking unknown external state;
- publication holds;
- reconciliation queue growth;
- operator overload and unresolved discrepancy aging.
Без отдельного execution-документа всё это рискует раствориться между:
- DevOps monitoring;
- support ручными проверками;
- случайными логами в сервисах;
- поздними finance/review сигналами.
Главный Принцип Observability
Платформа должна быть наблюдаема по доменной цепочке, а не только по инфраструктурным симптомам.
Ключевой принцип:
оператор должен иметь возможность пройти путь от внешнего сигнала или жалобы до точного состояния platform reality без ручной археологии по несвязанным системам.
Из этого следуют обязательные выводы:
- telemetry должна быть коррелируема across contours;
- incident triage должен опираться на domain signals, а не только на HTTP 500;
- logs, metrics, traces and queues должны быть связаны общей operational model;
- observability должна быть surface-aware, tenant-aware и supplier-aware там, где это допустимо и безопасно.
What Observability Must Answer
Система наблюдаемости должна отвечать как минимум на следующие вопросы:
- Пришёл ли supplier signal и был ли он обработан корректно?
- Где в цепочке застрял ingestion case?
- Был ли affected offer/quote/bookings path пересчитан или заблокирован?
- Произошёл ли repricing и кто его увидел?
- Находится ли booking в confirmed, pending, unknown or degraded state?
- Возникли ли settlement or reconciliation consequences?
- Видит ли агент, партнёр или B2C surface честную реальность, а не stale projection?
- Какой operator action сейчас нужен и кто owner?
Observability Layers
Платформа должна иметь несколько взаимосвязанных уровней наблюдаемости.
1. Infrastructure Observability
Наблюдает:
- runtime health;
- resource saturation;
- storage pressure;
- queue backing services;
- network and dependency failures.
Это необходимо, но недостаточно.
2. Service Execution Observability
Наблюдает:
- throughput;
- latency;
- retries;
- idempotency results;
- internal error classes;
- async job progress;
- state-transition success/failure.
3. Domain Observability
Наблюдает:
- supplier freshness drift;
- offer/quote lifecycle;
- repricing reasons;
- booking state transitions;
- unknown external state;
- publication holds;
- governance queue pressure;
- reconciliation and discrepancy state.
4. Surface Observability
Наблюдает:
- partner API degradation;
- agency workflow friction;
- B2C stale/pending exposures;
- proposal publication issues;
- actor-visible mismatch between expected and actual platform state.
5. Operational Queue Observability
Наблюдает:
- review queues;
- exception queues;
- booking recovery queues;
- reconciliation queues;
- aging, ownership and backlog risk.
Correlation Model
Без корреляции observability превращается в набор красивых, но бесполезных dashboard-ов.
Платформа Должна Уметь Коррелировать
- supplier identity;
- ingest run / payload / trace id;
- canonical entity ids;
- offer id;
- quote id;
- booking id;
- settlement event id;
- actor / tenant / workspace context where allowed;
- surface identity;
- incident / case / queue item id.
Минимальная Практическая Цепочка
supplier signal
→ ingestion trace
→ canonical update
→ offer / quote impact
→ booking consequence
→ settlement consequence
→ operator action
Если хотя бы одна из этих связей невидима, incident response резко деградирует.
Telemetry Classes
Metrics
Нужны для:
- volume;
- latency;
- rates;
- backlog;
- saturation;
- threshold-based detection.
Structured Logs
Нужны для:
- exact execution narrative;
- error context;
- retry and idempotency explanation;
- state-transition detail.
Distributed Traces
Нужны для:
- cross-service flow visibility;
- latency breakdown;
- async/sync boundary analysis;
- booking and quote path investigation.
Operational Events
Нужны для:
- domain-significant transitions;
- audit-grade state changes;
- operator-relevant lifecycle milestones.
Queue State
Нужна как first-class telemetry, а не как hidden implementation detail.
Потому что для этой платформы queue growth often is the incident.
Core Domain Signals
Supplier And Ingestion Signals
- supplier sync lag;
- intake success/failure rate;
- normalization error rate;
- replay volume;
- quarantine rate;
- mapping ambiguity rate;
- publication gating count;
- supplier degradation classification.
Offer / Quote / Commercial Signals
- offer freshness erosion;
- quote creation volume;
- quote expiry rate;
- revalidation-required rate;
- repricing rate;
- repricing reason distribution;
- blocked publication due to commercial inconsistency;
- surface-specific price-view divergence where expected.
Booking Signals
- booking submission rate;
- confirmation latency;
- pending_supplier_confirmation volume;
- unknown_external_state count;
- cancellation failure rate;
- amendment in-progress aging;
- duplicate submission handling outcomes.
Settlement And Reconciliation Signals
- unreconciled booking count;
- quote-to-booking mismatch rate;
- supplier payable mismatch rate;
- refund queue aging;
- amendment delta discrepancy rate;
- settlement event generation lag;
- reconciliation closure time.
Governance And Review Signals
- review queue growth;
- anomaly severity distribution;
- manual lock count;
- unresolved conflict age;
- governance-induced publication holds.
Incident Classes
Платформа должна различать incident classes по domain impact, а не только по severity badge.
1. Supplier Degradation Incident
Примеры:
- supplier timeouts;
- stale pricing feed;
- broken webhook stream;
- malformed payload wave.
2. Ingestion Integrity Incident
Примеры:
- replay storm;
- matching regression;
- canonical update block;
- abnormal publication gating surge.
3. Offer / Quote Incident
Примеры:
- quote creation failure;
- repricing spike;
- quote invalidation wave;
- stale but published offer slice.
4. Booking Lifecycle Incident
Примеры:
- pending confirmations surge;
- unknown external state accumulation;
- cancellation path breakage;
- amendment deadlock.
5. Surface Contract Incident
Примеры:
- partner API semantic break;
- agency-visible stale quote state;
- B2C false finality;
- proposal publication inconsistency.
6. Settlement / Reconciliation Incident
Примеры:
- settlement event lag;
- mismatch burst;
- refund reversal failure;
- reconciliation backlog beyond threshold.
7. Cross-Contour Incident
Самые опасные инциденты, когда проблема проходит сразу через несколько слоёв:
- supplier drift → repricing wave → agency disruption;
- booking confirmation delay → settlement lag → support overload;
- governance hold → publication gap → partner-facing inconsistency.
Incident Severity Model
Severity должна учитывать не только technical availability, но и business impact.
Severity Drivers
- affected truth class;
- affected surface;
- affected actor type;
- affected financial risk;
- recoverability complexity;
- blast radius;
- presence of false finality or wrong promise to external actor.
Example Severity Interpretation
Sev 1
- booking confirmations corrupted;
- external false confirmations;
- severe settlement corruption;
- large-scale partner-visible wrong price promise.
Sev 2
- major quote/repricing disruption;
- supplier degradation affecting booking viability;
- reconciliation queue explosion with business impact.
Sev 3
- degraded internal tooling;
- localized ingestion issues;
- bounded surface-specific inconsistency.
Sev 4
- non-critical observability defect;
- low-impact dashboard gap;
- contained noise without active business harm.
Detection Model
Automatic Detection
Подходит для:
- infra saturation;
- latency spikes;
- queue thresholds;
- error-rate anomalies;
- supplier lag thresholds;
- settlement lag thresholds.
Rule-Based Domain Detection
Подходит для:
- quote expiry spikes;
- repricing waves;
- unknown booking state growth;
- refund backlog aging;
- publication hold surges.
Human Detection
Подходит для:
- support-reported semantic mismatch;
- partner complaint;
- agency-visible commercial inconsistency;
- finance-reported reconciliation anomaly.
Практический Вывод
Платформа должна уметь превращать human-detected incidents в fully traceable operational cases, а не только в чат-сообщения и ручные расспросы.
Triage Model
При любом инциденте должны быть быстро определены:
- affected contour;
- affected truth class;
- affected surface;
- current blast radius;
- whether publication hold is needed;
- whether reconciliation hold is needed;
- primary owner;
- next safe action.
First Triage Questions
- Это supplier, ingestion, quote, booking, settlement или surface issue?
- Есть ли ложное внешнее обещание?
- Можно ли безопасно продолжать create / confirm / publish actions?
- Нужно ли остановить publication or booking flow?
- Есть ли recovery by replay, or manual action required?
Containment Strategies
Платформа должна иметь ограничительные действия, которые уменьшают blast radius.
Возможные Containment Actions
- hold supplier source;
- hold publication for affected offers/quotes;
- force revalidation requirement;
- disable risky surface action;
- pause partner-facing mutation path;
- route bookings into manual review;
- hold settlement finalization for affected cohort.
Recovery Strategies
Replay
Подходит для:
- ingestion errors;
- missed supplier events;
- derived projection rebuild.
Revalidation / Repricing
Подходит для:
- stale quote path;
- supplier drift;
- invalid visible price state.
Manual Operational Resolution
Подходит для:
- unknown external state;
- supplier dispute;
- financial discrepancy;
- policy override decision.
Correction Event
Подходит для:
- settlement adjustments;
- reversal posting;
- late reconciliation correction.
Incident Playbook Structure
Для каждого серьёзного incident class должен существовать playbook с одинаковой структурой:
- signal sources
- likely contours involved
- blast radius assessment
- safe immediate actions
- telemetry and traces to inspect
- containment options
- recovery paths
- communication obligations
- closure criteria
- post-incident follow-up
Operator Surfaces
Observability не должна жить только в dashboards.
Платформе нужны operator-facing surfaces для:
- booking investigation;
- quote and repricing investigation;
- supplier degradation view;
- ingestion replay and quarantine view;
- settlement discrepancy triage;
- publication hold management;
- case ownership and aging.
Communication Model
Incident response должен учитывать разные аудиенции.
Internal Engineering Communication
Нужна для:
- root cause investigation;
- rollback or fix coordination;
- telemetry interpretation.
Operations Communication
Нужна для:
- queue ownership;
- manual action coordination;
- supplier escalation.
Surface Communication
Нужна, когда incident affects:
- agency users;
- partners;
- end customers.
Finance / Reconciliation Communication
Нужна, когда incident affects:
- payable/receivable assumptions;
- refund timing;
- discrepancy closure.
Post-Incident Analysis
Каждый серьёзный инцидент должен заканчиваться не только closed status, но и architecture feedback.
Post-Incident Review Должен Ответить
- где detection была слишком поздней;
- где correlation chain была недостаточной;
- какой truth class оказался незащищён;
- какие surface promises были unsafe;
- какие new metrics, alerts or playbooks нужны;
- требует ли проблема updates в reference or operations docs.
Relationship To Other Operations Documents
Этот документ дополняет:
- Deployment And Operating Model — Развёртывание и эксплуатационная модель
- Settlement And Reconciliation Operations — Расчёты, сверка и финансовая эксплуатация
Вместе они образуют execution-baseline:
deploymentотвечает за runtime and rollout discipline;settlement-and-reconciliationотвечает за finance-grade operational truth;observability-and-incident-responseотвечает за detection, triage, recovery and operator control.
What This Document Requires Next
После фиксации этого документа следующий логичный operations layer:
operations/release-engineering-and-migrations.md
если проекту понадобится отдельная жёсткая фиксация rollout and migration execution discipline.
Текущий Практический Вывод
Платформа vitrip.store должна быть наблюдаема не как “набор сервисов в кластере”, а как сквозная operational system, где можно:
- увидеть supplier change;
- понять его canonical and operational consequence;
- проследить impact на quote, booking and settlement;
- быстро определить owner, containment and recovery path;
- не допустить ложной внешней финальности.
Именно это отделяет industrial platform operations от просто “есть логи, графики и алерты”.
Уточнение под Фазы 5–6 (28.04.2026) — углубление через runbooks, SLA, DR/capacity
Документ опубликован 24.04.2026 в Фазе 3 как baseline observability и incident response. После Фаз 5–6 (25–27.04.2026) опубликованы специализированные документы, которые углубляют этот baseline до production-capable уровня. Эта секция фиксирует обязательные связи.
Углубление через каноничные runbooks (Фаза 6)
operations/runbooks-incident-playbooks.md — каноничные 8 incident classes с детальными процедурами:
- Supplier degradation;
- Stale offer state;
- Quote repricing surge;
- Booking timeout /
unknown_external_state; - Cache invalidation failure;
- Governance queue overload;
- Delayed settlement event generation;
- Broken publication pipeline.
Этот документ описывает общие принципы incident management; runbooks-incident-playbooks — конкретные процедуры per incident class. При работе с инцидентом — использовать каноничные runbooks как авторитетный источник; этот документ остаётся как philosophical baseline.
Углубление через SLA-модель и on-call structure (Фаза 6)
operations/sla-and-on-call-model.md — каноничная модель:
- 5-уровневая on-call структура (Primary → Secondary → Engineering Manager → Director/VP → CTO/CISO);
- 10 каноничных SLI metrics (availability, latency p95, webhook delivery, search freshness, booking confirmation,
unknown_external_stateratio, payment success, restoration success, MTTR, support response time); - 4 SLA tier (Free best-effort / Starter 95% / Professional 99% / Enterprise 99.9%);
- Service credits при breach (5%/10%/25%/50% от месячной подписки);
- Burnout protection — не более 1 недели on-call per engineer per 4-8 weeks.
Severity levels этого документа (Critical / High / Medium / Low) — согласуются с tier-зависимыми SLA в sla-and-on-call-model. Каноничный source-of-truth для SLA — sla-and-on-call-model.
Углубление через DR и capacity (Фаза 6)
operations/disaster-recovery-and-capacity.md — каноничные:
- 4 recovery tiers (Tier 1: RTO 60м/RPO 5м для платежей и бронирований; Tier 2: RTO 4ч/RPO 30м; Tier 3: RTO 24ч/RPO 1ч; Tier 4: RTO 7д для archived);
- 5-шаговая процедура восстановления (declared → point selected → restored to staging → smoke tests → promoted to production);
- 5 типов DR-учений (backup_verify / partial_restore / full_restore / region_failover / chaos_drill);
- Capacity planning процесс с peak load forecasting и auto-scaling integration.
DR runbooks — отдельный класс runbook'ов, координируется через runbooks-incident-playbooks.
Связь с booking state machine
reference/booking-state-machine.md (Фаза 5) — каноничные 14 состояний. Особо важно для observability:
unknown_external_state— отдельная metric, target SLI менее 1% (см. sla-and-on-call-model.md SLI 6);- state transition latency — measured per state (например,
pending_supplier_confirmation → supplier_confirmedp95 latency); - state distribution dashboard — для on-call visibility;
- alert rules per state (например, alert при увеличении
unknown_external_state> 1%).
Связь с tenant isolation и security audit
reference/multi-tenant-isolation-strength.md (Фаза 5) — IsolationBoundaryCheck continuous events требуют:
- отдельный alert channel при breach detection;
- escalation в CISO / Compliance officer (фаза 4+);
- security incident runbook (см. security-architecture.md).
reference/security-architecture.md — caнoничный audit log как отдельный observability stream:
- correlation observability traces с audit events;
- separate retention (7 лет для security audit vs operational metrics);
- access controls для audit log queries.
Каноничный итог уточнения
Этот документ остаётся философским baseline observability и incident management. Конкретные реализации:
- Runbooks per incident class → runbooks-incident-playbooks.md;
- SLA, on-call structure, service credits → sla-and-on-call-model.md;
- DR procedures, capacity planning → disaster-recovery-and-capacity.md;
- Booking state observability → booking-state-machine.md;
- Tenant isolation alerts → multi-tenant-isolation-strength.md;
- Security audit observability → security-architecture.md.
Уточнение выполнено через no-destruction.