Observability and local orchestration
Local development
Section titled “Local development”The Aspire AppHost orchestrates PostgreSQL, the API, React/Vite, OpenTelemetry Collector, Prometheus, Loki, Tempo, and Grafana:
dotnet run --project src/Horizon.AppHostAppHost is a development and test orchestrator. Production runs separate API and web containers behind a same-origin reverse proxy.
Telemetry flow
Section titled “Telemetry flow”- Serilog is the structured
ILoggerprovider and emits JSON console logs. - The OpenTelemetry SDK instruments HTTP, runtime, Npgsql, and outbox activity.
- The Collector batches, retries, and routes signals.
- Loki stores logs, Tempo stores traces, and Prometheus scrapes metrics.
- Grafana provisions data sources and starter dashboards from source control.
Trykatch does not run Jaeger beside Tempo. Jaeger is documented only as an alternative trace backend.
Health endpoints
Section titled “Health endpoints”/health/liveproves the process is alive./health/readyproves required runtime dependencies are ready.
Production ingress must protect operational endpoints according to the deployment environment.