# Observability ## Metrics ### PromEx (`Aprsme.PromEx`) Prometheus-compatible metrics exposed at `/metrics` (PromEx plugin). Custom plugin: `Aprsme.PromEx.Plugins.Aprsme` ### Telemetry `telemetry_metrics` + `telemetry_poller` for application-level metrics: - `Aprsme.Telemetry.DatabaseMetrics` — DB query performance - `Aprsme.ApiMetrics` — API usage tracking ## Error Tracking ### ErrorTracker Self-hosted error tracking dashboard at `/errors` (authenticated). Configuration: `error_tracker` hex package. ### Error Handling - `Aprsme.ErrorHandler` — Application error handling - `Aprsme.ErrorNotifier` — Telemetry-based error notification ## Logging ### Log Sanitization `Aprsme.LogSanitizer` — Strips PII from log output. ### Log Filtering `AprsmeWeb.Plugs.LogFilter` — Filters noisy paths (`/health`, `/ready`, `/`) from access logs. ## Monitoring ### Connection Monitor `Aprsme.ConnectionMonitor` — Monitors APRS-IS connection health. ### Status Page `/status` (StatusLive.Index) — Real-time system status dashboard: - APRS-IS connection state - Uptime - Health score - Cluster status (when clustered) ### Analytics `Aprsme.PlausibleAnalytics` — Plausible analytics integration for page views. ## Signal Handling - `Aprsme.SignalHandler` — OS signal handling (SIGTERM, SIGINT) - `Aprsme.ShutdownHandler` — Graceful shutdown coordination ## Deployment Notifications `Aprsme.DeploymentNotifier` — Notifies external systems of deploy events.