Современный vendor-neutral: OpenTelemetry (SDK во всех сервисах → Collector) + Loki (логи) + Tempo (трейсы) + Prometheus (метрики) + cAdvisor/node-exporter (ресурсы) + Grafana (единый UI). OpenSearch не берём (тяжёлый и дублировал бы Loki) — бэкенд логов при желании меняется без правок кода сервисов.
Что сделано
Трейсы:DealTracingHosting в Deal.Grpc.Hosting и Deal.Api/Observability — OTel AspNetCore/Http/GrpcNetClient → OTLP; включается env OTEL_EXPORTER_OTLP_ENDPOINT, имя — OTEL_SERVICE_NAME; подключено во всех 5 процессах.
Логи:TraceContextEnricher — Serilog обогащает TraceId/SpanId; datasource Loki derivedFields ведёт к трейсу, Tempo tracesToLogsV2 — обратно.
Стек:otel-collector (contrib 0.160.0) → tempo 2.8.1; cadvisor 0.52.1 + node-exporter 1.9.1 → Prometheus; профиль observability в prod и dev.
Дашборды:Deal-Traces (TraceQL + переход к логам), Deal-Resources (CPU/RAM контейнеров и хоста, диски).
Алерты: группа deal-resources (CPU/память/диск хоста, близость контейнера к лимитам) + существующие.
Общая настройка DealTracingHosting (Deal.Grpc.Hosting + Deal.Api):
AspNetCore/Http/GrpcNetClient инструментация, OTLP-экспорт во внешний
коллектор, имя сервиса из env. Логи обогащаются TraceId/SpanId.
Профиль observability: otel-collector (приём OTLP) -> tempo (трейсы),
cadvisor/node-exporter (ресурсы) в Prometheus, дашборды Deal-Traces и
Deal-Resources, datasource Tempo и связь логов с трейсами, алерты по
ресурсам; OTel-env у всех процессов.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
#17
Стек
Современный vendor-neutral: OpenTelemetry (SDK во всех сервисах → Collector) + Loki (логи) + Tempo (трейсы) + Prometheus (метрики) + cAdvisor/node-exporter (ресурсы) + Grafana (единый UI). OpenSearch не берём (тяжёлый и дублировал бы Loki) — бэкенд логов при желании меняется без правок кода сервисов.
Что сделано
DealTracingHostingвDeal.Grpc.HostingиDeal.Api/Observability— OTel AspNetCore/Http/GrpcNetClient → OTLP; включается envOTEL_EXPORTER_OTLP_ENDPOINT, имя —OTEL_SERVICE_NAME; подключено во всех 5 процессах.TraceContextEnricher— Serilog обогащаетTraceId/SpanId; datasource LokiderivedFieldsведёт к трейсу, TempotracesToLogsV2— обратно.otel-collector(contrib 0.160.0) →tempo2.8.1;cadvisor0.52.1 +node-exporter1.9.1 → Prometheus; профильobservabilityв prod и dev.Deal-Traces(TraceQL + переход к логам),Deal-Resources(CPU/RAM контейнеров и хоста, диски).deal-resources(CPU/память/диск хоста, близость контейнера к лимитам) + существующие.deploy/observability/README.md.Проверки
docker compose config(prod + dev, профиль observability) — OK.Не проверено
Живой end-to-end (нет запущенного Docker-демона): таргеты Prometheus, трейсы в Tempo, дашборды. Конфиг коллектора проверен парсером YAML, команда
validateобраза не запускалась.Фронт не трогался.