Diagnostics
The detailed sidebar groups Diagnostics under five linked destinations: System Health (System Status, Outage Autobiography, Tesla API Usage, API Logs), Database & Data Health (Database Health, Schema Drift, Slow Queries, Data Quality, Disk Forecast), Telemetry Troubleshooting (Live Signals, Live Signal Inspector, Ingest X-Ray, MQTT Inspector, DLQ Inspector, Redis Signals, Telemetry Coverage, State Debugger), Signal Analysis (Correlation, Entropy, Trend, Change Points, Deadband, Nonlinear Coupling), and Vehicle Diagnostics (Anomaly Detection, Remaining Useful Life, Root-Cause Intelligence). Dashcam & Sentry, Feature Flags, Vehicle Cost, Secret Rotation, Audit Log, GDPR Exports, and API Playground remain standalone sidebar destinations.
All 33 screens retain their original URLs and functionality. Related screens have in-page navigation; every screen remains accessible from the feature catalog, search, and direct bookmarks. The compact sidebar still curates destinations without removing them from the catalog.
| Screen | Path | What it does | When empty |
|---|---|---|---|
| System Status | /system-status | At-a-glance current status, component health, actionable issues, and recorded incidents; operator diagnostics expand on demand. No historical uptime is inferred from missing heartbeat history. | Shows status as unknown when live health is unavailable; never paints missing history as healthy. |
| Outage Autobiography | /outage | What queued, replayed with original event time, or stayed unknown. | Renders an empty state when no data is available — the page is not hidden. |
| Database Health | /db-health | Database size, query latency, and replication lag. | Renders an empty state when no data is available — the page is not hidden. |
| Anomaly Detection | /anomaly-detection | Auto-detected outliers in charging, range, and drives. | Renders an empty state when no data is available — the page is not hidden. |
| Remaining Useful Life | /diagnostics/rul | Estimate remaining useful life for monitored components. | Renders an empty state when no data is available — the page is not hidden. |
| Root-Cause Intelligence | /diagnostics/root-cause | Rank evidence-backed explanations for vehicle anomalies. | Renders an empty state when no data is available — the page is not hidden. |
| Dashcam & Sentry | /dashcam | Search, redact, and reconstruct Dashcam and Sentry incidents locally. | Renders an empty state when no data is available — the page is not hidden. |
| Live Signals | /signals | Live values for every telemetry signal the car publishes. | Renders an empty state when no data is available — the page is not hidden. |
| Live Signal Inspector | /admin/live-signals | Inspect a single signal in real time with history. | Operator surface — needs a healthy API, MQTT, and DB. |
| Ingest X-Ray | /admin/ingest-xray | See every payload as it lands from Fleet Telemetry. | Operator surface — needs a healthy API, MQTT, and DB. |
| DLQ Inspector | /admin/dlq | Dead-letter queue — messages that failed to ingest. | Operator surface — needs a healthy API, MQTT, and DB. |
| Feature Flags | /admin/flags | Runtime feature flags — toggle without redeploy. | Operator surface — needs a healthy API, MQTT, and DB. |
| Schema Drift | /admin/schema-drift | Detect divergence between code models and the live DB schema. | Operator surface — needs a healthy API, MQTT, and DB. |
| Slow Queries | /admin/slow-queries | Top slow SQL queries with explain plans. | Operator surface — needs a healthy API, MQTT, and DB. |
| Vehicle Cost | /admin/vehicle-cost | Per-vehicle infrastructure cost attribution. | Operator surface — needs a healthy API, MQTT, and DB. |
| Data Quality | /admin/data-quality | Signal freshness, gaps, duplicates, and normalization provenance. | Operator surface — needs a healthy API, MQTT, and DB. |
| Disk Forecast | /admin/disk-forecast | When will the database run out of disk? | Operator surface — needs a healthy API, MQTT, and DB. |
| Secret Rotation | /admin/secret-rotation | Track and rotate secrets, tokens, and credentials. | Operator surface — needs a healthy API, MQTT, and DB. |
| Audit Log | /admin/audit-log | Every privileged action with actor, target, and timestamp. | Operator surface — needs a healthy API, MQTT, and DB. |
| GDPR Exports | /admin/gdpr-exports | Generate and download a complete user-data export. | Operator surface — needs a healthy API, MQTT, and DB. |
| State Debugger | /state-debugger | Inspect the per-vehicle finite-state machine in real time. | Operator surface — needs a healthy API, MQTT, and DB. |
| MQTT Inspector | /mqtt-inspector | Subscribe to any MQTT topic and watch messages flow. | Operator surface — needs a healthy API, MQTT, and DB. |
| Signal Correlation | /signal-correlation | Find signals that move together across a selected time window. | Renders an empty state when no data is available — the page is not hidden. |
| Signal Entropy | /signal-entropy | Measure signal variability and information density. | Renders an empty state when no data is available — the page is not hidden. |
| Signal Trend | /signal-trend | Detect robust long-term telemetry trends and direction changes. | Renders an empty state when no data is available — the page is not hidden. |
| Signal Change Points | /signal-change-points | Locate statistically meaningful shifts in signal behavior. | Renders an empty state when no data is available — the page is not hidden. |
| Signal Deadband Advisor | /signal-deadband | Recommend noise thresholds that preserve meaningful telemetry. | Renders an empty state when no data is available — the page is not hidden. |
| Nonlinear Signal Coupling | /signal-mutual-information | Discover nonlinear dependencies between telemetry signals. | Renders an empty state when no data is available — the page is not hidden. |
| Redis Signals | /redis-signals | Dump the Redis live-signal cache for a vehicle. | Operator surface — needs a healthy API, MQTT, and DB. |
| Telemetry Coverage | /admin/telemetry/coverage | Which Fleet Telemetry fields are wired vs missing. | Operator surface — needs a healthy API, MQTT, and DB. |
| API Logs | /api-logs | Compact outbound-request evidence table with status, duration, and response details; separate backend runtime-error (process uptime) and browser-error (last hour) summaries. API-call totals and service counts use the same View settings date range as the requests, independently of individual column predicates. | Request headers and reset controls remain available for empty or failed results; each error summary retains its own state. |
| API Playground | /api-playground | Try any API endpoint with parameter forms. | Renders an empty state when no data is available — the page is not hidden. |
Expand an API Logs row for method, URL, status, duration, vehicle ID, rate-limit flag, error, request/response headers and bodies. Header values are redacted except for a small allowlist of safe diagnostic fields. Body capture is disabled by default (API_LOG_CAPTURE_BODIES=false); when enabled, captured payloads are limited to 10 KB. Older records cannot retroactively gain headers or bodies.
The runtime diagnostics use two independent, responsive cards rather than a nested browser tile. Backend totals and uptime describe the current API process; category rows preserve counts, the latest message, and last-seen timestamps, with a link to System Status. Browser totals describe reports received within the server's reporting window and show the summary timestamp and reported sources. Neither card uses the API-call filters. Zero browser reports does not establish an error-free frontend or complete reporting coverage, including when reporting or RUM is disabled. Loading, unavailable summaries, and failed requests remain distinct from explicitly reported zero; a failed refresh retains existing evidence with a stale-data notice.
Method, status, endpoint, service, app installation, and app-key filters live in their column headers. Reveal the optional App key column through Columns. These are server predicates, not checklists inferred from the current 25-row page. Changing a filter resets the page and persists in the URL; a filter with no matches can still be cleared from its header.