Logging & Telemetry
AutoMate gebruikt een gelaagde logging aanpak: Serilog voor structured logging, OpenTelemetry voor distributed tracing, en Azure Monitor (Application Insights) voor productie monitoring.
Serilog
Serilog is de primaire logging provider en is geconfigureerd in API/Src/AutoMate.API/Program.cs:
Configuratie
Parameter | Beschrijving | Standaard |
|---|---|---|
| Minimum log level |
|
| Application naam als log property |
|
| Seq URL via Aspire service discovery | — |
| Seq URL via appsettings | — |
Sinks
Console sink — altijd actief, geschikt voor container/Azure logging infrastructure.
Seq sink — optioneel, wordt geactiveerd als de seq connection string of Serilog:SeqUrl geconfigureerd is. Seq biedt een gestructureerde log viewer met filtering en querying.
Enrichment
Elk log event krijgt automatisch de volgende properties via de LogContext:
Property | Gevuld door | Inhoud |
|---|---|---|
| Serilog config | Applicatienaam ( |
|
| Correlation ID uit header of TraceIdentifier |
|
| ASP.NET Core TraceIdentifier |
|
| Gevalideerde tenant GUID |
|
| Entra Object ID van de gebruiker |
|
| UPN of preferred_username |
HTTP Request logging
app.UseSerilogRequestLogging() logt elk HTTP request/response paar inclusief statuscode, duur, HTTP methode en pad. Dit is geregistreerd na de FastEndpoints middleware.
OpenTelemetry & Azure Monitor
Azure Monitor OpenTelemetry wordt gebruikt voor distributed tracing en Application Insights integratie:
Activatiologica
Omgeving | Connection string geconfigureerd | Azure Monitor actief? |
|---|---|---|
Development | Nee | Nee |
Development | Ja | Ja |
Staging / Production | Nee of Ja | Ja |
In productie zet Azure de APPLICATIONINSIGHTS_CONNECTION_STRING omgevingsvariabele automatisch als Application Insights gekoppeld is aan de app service.
Service naam
De service wordt geregistreerd als "AutoMate.API" in OpenTelemetry via ResourceBuilder.CreateDefault().AddService("AutoMate.API").
Aspire ServiceDefaults
builder.AddServiceDefaults() configureert aanvullende OpenTelemetry defaults vanuit het Aspire ServiceDefaults project, inclusief health checks, metrics endpoints en standaard instrumentatie.
Correlation Tracking
CorrelationIdMiddleware (API/Src/AutoMate.API/Middleware/CorrelationIdMiddleware.cs) zorgt voor request tracing door de gehele pipeline:
De middleware leest
X-Correlation-Iduit de request headerAls de header ontbreekt, wordt de
TraceIdentifiergebruiktDe correlation ID wordt teruggezonden in de response
X-Correlation-IdheaderBeide
CorrelationIdenTraceIdworden gepusht naar de SerilogLogContextDe middleware draait als eerste in de pipeline, vóór authenticatie en FastEndpoints
Lokale ontwikkeling
Bij gebruik van het Aspire AppHost (Aspire/AutoMate.AppHost) wordt Seq automatisch gestart als onderdeel van de lokale orchestratie. De seq connection string wordt via Aspire service discovery doorgegeven aan de API.
URL | Doel |
|---|---|
| Seq log viewer |
| Seq HTTP API |
Alle API logs zijn direct zichtbaar in het Seq dashboard met filtering op Application, TenantId, UserId, CorrelationId en overige gestructureerde properties.
Productie — Seq @ TransIP
In productie en development draait Seq als externe service, gehost op TransIP (buiten Azure). Web API én Portal schrijven via Serilog rechtstreeks naar deze Seq-instantie. Configuratie:
App-setting | Bron | Doel |
|---|---|---|
|
| URL van de Seq-instantie |
| Key Vault reference naar secret | API key voor schrijven naar Seq |
De Seq-console is via Cloudflare One Zero Trust alleen voor geautoriseerde medewerkers toegankelijk. Klantverkeer raakt Seq nooit.
Daarnaast loopt Azure-native telemetrie via Application Insights → Log Analytics Workspace (zie Hosting — SaaS Applicatie, sectie Logging & Telemetrie). De twee paden zijn complementair: Seq voor application-level structured logs en query, App Insights voor APM, distributed tracing en Azure-platform-telemetrie.