Документация

Koto.Observability

Настройка observability одной строкой: Serilog + OpenTelemetry.

Что внутри

  • Serilog — структурированные логи с console sink (dev) + OTLP sink (prod)
  • OpenTelemetry Traces — инструментация ASP.NET Core + HttpClient → OTLP
  • OpenTelemetry Metrics — ASP.NET Core + .NET Runtime → OTLP
  • CorrelationIdEnricher — добавляет CorrelationId в каждое событие Serilog

Настройка

// Program.cs
builder.AddKotoObservability(opts =>
{
    opts.ServiceName = "orders-service";
    opts.EnableConsoleExporter = true; // только для dev
    // подключаем correlation ID из HTTP-middleware
    opts.CorrelationIdProvider = () => CorrelationContext.Current.Value;
});

Переменные окружения

ПеременнаяПо умолчаниюНазначение
OTEL_SERVICE_NAME"unknown-service"Имя сервиса в OTel-ресурсе
OTEL_EXPORTER_OTLP_ENDPOINT"http://localhost:4317"Эндпоинт OTLP-коллектора
KOTO_LOG_LEVEL"Information"Минимальный уровень логирования Serilog

Инструментация EF Core

У OpenTelemetry.Instrumentation.EntityFrameworkCore пока нет стабильного релиза на NuGet. Добавьте вручную, когда он выйдет:

// в WithTracing:
tracing.AddEntityFrameworkCoreInstrumentation();