Skip to main content

Notification Logging and Observability

Summary

Observability comes from the shared kernel: structured JSON logging, OpenTelemetry tracing with a service-specific dispatch span, correlation-id propagation and a durable audit trail. A health endpoint and a statistics endpoint provide operational read surfaces.

Signal map

Logging

AddHrSuitObservability clears default providers and adds a JSON console logger with scopes and UTC timestamps. The dispatcher and channel senders emit structured ILogger events (duplicate skip, stale skip, delivery failure warnings, placeholder sends).

Tracing

NotificationTelemetry defines the HrSuit.NotificationService ActivitySource, registered with the tracer in Program.cs. DispatchAsync starts a consumer-kind span per event tagged with event type, event id and correlation id, and captures the trace id onto audit rows. Shared-kernel tracing adds ASP.NET Core and HTTP client instrumentation, with an optional OTLP exporter and console exporter enabled by configuration.

Correlation

UseHrSuitCorrelationId propagates an X-Correlation-Id header and item. Correlation ids are stored on messages, processed-event rows and audit rows, and the audit endpoint can be queried by correlation id.

Audit trail

NotificationAuditLog is an append-only, DB-backed record of every processing stage with tenant, event, message, correlation and trace identifiers — queryable via GET /notifications/audit. This is the primary durable diagnostic surface.

Health and statistics

/health is mapped via ASP.NET Core health checks; the root endpoint returns service info. /notifications/stats returns aggregate counts for operational visibility.

  • No metrics/meter provider or metrics exporter is registered (tracing only).
  • No health-data push to the platform service.
  • No log/trace sink is configured by default (exporters depend on environment configuration).

Requires Confirmation

Production log sink, trace exporter endpoint, metrics strategy and health-monitoring integration require confirmation.

Source References

  • microservices/src/notification-service/Program.cs
  • microservices/src/notification-service/Application/NotificationTelemetry.cs
  • microservices/src/notification-service/Application/NotificationDispatcher.cs
  • microservices/src/shared-kernel/Extensions/ObservabilityExtensions.cs

See Also

Keywords

Logging, tracing, correlation, audit, health, OpenTelemetry.

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-21
  • Next review: 2026-10-21