How isaluki/tailview works
tailview is a local Tailscale observability dashboard. Its main workflow polls the local CLI, parses and retains metric samples, serves a live API and dashboard, then presents traffic, relay, peer, health, node, and raw-series views. The README documents the broader CLI data sources and dashboard capabilities; sampled code confirms the collector, parser, HTTP server, client, and chart primitives, but not every collector/API wiring detail.
Main entry points: app.js Dashboard views · collector.py Collector · server.py HTTP API and events · cli.py CLI startup
Components 20
Startup
- CLI startup
src/tailview/cli.py
Collection
- Collector
src/tailview/collector.py - Tailscale client
src/tailview/tsclient.py - Metrics parser
src/tailview/promparse.py - Rolling history
src/tailview/collector.py - Demo data source
src/tailview/demo.py
Serving
- HTTP API and events
src/tailview/server.py
Dashboard
- Dashboard page
src/tailview/web/index.html - Dashboard views
src/tailview/web/app.js - Chart primitives
src/tailview/web/charts.js - Traffic and drops
src/tailview/web/app.js - DERP latency
src/tailview/web/app.js - Peer explorer
src/tailview/web/app.js - Health panel
src/tailview/web/app.js - Node details
src/tailview/web/app.js - Metrics explorer
src/tailview/web/app.js - Dashboard styling
src/tailview/web/style.css
Other components
- Operator
- Tailscale CLI
- Browser
Connections 28
- Operator → CLI startup: starts
- CLI startup → Collector: starts polling
- CLI startup → HTTP API and events: starts server
- CLI startup → Tailscale client: selects
- CLI startup → Demo data source: selects demo
- Collector → Tailscale client: requests sources
- Tailscale client → Tailscale CLI: runs commands
- Collector → Metrics parser: parses metrics
- Collector → Rolling history: records samples
- Collector → Rolling history: derives rates
- HTTP API and events → Collector: reads state
- Browser → HTTP API and events: requests dashboard
- HTTP API and events → Browser: serves page and data
- HTTP API and events → Dashboard page: serves static files
- Dashboard page → Dashboard views: loads
- Dashboard views → HTTP API and events: fetches and subscribes
- Dashboard views → Traffic and drops: renders
- Dashboard views → DERP latency: renders
- Dashboard views → Peer explorer: renders
- Dashboard views → Health panel: renders
- Dashboard views → Node details: renders
- Dashboard views → Metrics explorer: renders
- Traffic and drops → Chart primitives: draws charts
- DERP latency → Chart primitives: draws bars
- Peer explorer → Chart primitives: draws sparklines
- Metrics explorer → Rolling history: displays series
- Dashboard page → Dashboard styling: loads stylesheet
- Collector → Demo data source: uses synthetic source