Observability
Зачем нужно
Документ задаёт единые правила логов, аудита, метрик и трассировки для всех 7 доменов. Один формат — одна корреляция между сервисами.
Стек
| Сигнал | Технология |
|---|---|
| Логи | pino (JSON) → Loki |
| Метрики | OpenTelemetry → Prometheus |
| Трассировки | OpenTelemetry → Tempo |
| Errors | Sentry |
| Alerting | Grafana Alerting + Sentry alerts |
| UI | Grafana |
Корреляция
X-Request-Id— генерируется на gateway или клиенте, прокидывается через все сервисы и события.traceparent(W3C Trace Context) — для трассировки.X-User-Id(внутренний заголовок между сервисами) — никогда не полагаться на него для авторизации, только для логов.
Один request от клиента до фоновой задачи имеет один requestId.
Логи
Формат
JSON-строки, поля:
time, level, service, env, requestId, traceId, spanId, userId,
actorContext, message, code, durationMs, ctx
level: trace|debug|info|warn|error|fatal.
Что логируется
- входящий HTTP-запрос (метод, путь, status, durationMs);
- исходящий HTTP-запрос/ответ (без тел);
- доменные события (входящие, исходящие);
- бизнес-операции с changeset;
- ошибки и стек.