Что внутри
- 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();