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

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();