Overview
Lasso’s LiveView dashboard provides real-time visibility into RPC routing, provider health, and cluster-wide metrics through an interactive web interface. The dashboard aggregates data from all cluster nodes and presents a unified view of the entire system.Accessing the Dashboard
The dashboard is available at:Dashboard Architecture
EventStream Aggregation
The dashboard uses a per-profile EventStream GenServer that consolidates all real-time events into batched updates, eliminating subscription explosion in multi-chain deployments. EventStream responsibilities:- Subscribes to PubSub topics for all chains in a profile
- Batches events every 175ms for efficient LiveView updates
- Deduplicates routing events by request ID
- Computes per-provider metrics in real-time
- Tracks circuit breaker states across the cluster
| Topic Pattern | Description |
|---|---|
routing_decision:{profile} | RPC routing decisions |
circuit:events:{profile}:{chain} | Circuit breaker state transitions |
block_sync:{profile}:{chain} | Block height updates |
provider:events:{profile}:{chain} | Provider health changes |
cluster:topology | Cluster membership changes |
sync:updates:{profile} | Sync status updates |
Message Flow
Initial Snapshot
On subscription, EventStream sends a complete snapshot of current state:Dashboard Tabs
Overview Tab
Interactive network topology showing:- Chain nodes with provider counts and status indicators
- Provider nodes with circuit breaker states and health
- Live request animations flowing from chains to providers
- Details panel with real-time metrics for selected chain/provider
| Color | Status | Meaning |
|---|---|---|
| Green | Healthy | Circuit closed, passing health checks |
| Yellow | Degraded | Recent failures, half-open circuit |
| Red | Down | Circuit open, failing health checks |
| Gray | Unknown | No recent data |
Metrics Tab
Cluster-wide performance metrics powered by MetricsStore:- Provider leaderboard (sorted by score)
- Per-method performance with percentiles
- Success rates and average latency
- Multi-region comparison
System Tab
VM-level metrics (whenLASSO_VM_METRICS_ENABLED=true):
- Memory usage
- Process counts
- Scheduler utilization
- Message queue lengths
Cluster-Wide Metrics
MetricsStore
Caches aggregated metrics from all cluster nodes using:rpc.multicall/5.
Configuration:
Aggregation Logic
Metrics are weighted by call volume across nodes:Cache Invalidation
MetricsStore invalidates all cached entries on topology changes:Real-Time Provider Metrics
EventStream computes per-provider metrics from routing events:@window_duration_ms).
Cluster Status Indicator
Fixed bottom-right indicator showing cluster health:- Updates marked stale after 30 seconds without new data
- Stale indicator shown when
last_update > 30s - Heartbeat messages every 2 seconds prevent false staleness
Network Topology Visualization
Canvas Layout
Providers positioned using force-directed graph algorithm:- Chain nodes (left side): Octagon shapes
- Provider nodes (right side): Circles with status colors
Request Animations
Live requests visualized as particles flowing from chain to provider:Performance Optimizations
Event Batching
EventStream batches up to 100 events or waits 175ms before flushing:- Reduces LiveView messages from thousands/sec to ~6/sec
- Coalesces state updates (latest-wins for health, circuits, blocks)
- O(1) deduplication using
seen_request_idsmap
Lazy Ticking
EventStream only schedules tick timers when subscribers exist:Deduplication
Request IDs cached for 2 minutes to prevent duplicate routing events:Configuration
Dashboard Settings
EventStream Tuning
MetricsStore Tuning
Troubleshooting
Dashboard Not Updating
Symptom: Cluster status shows “stale” or metrics frozen. Check EventStream status:Metrics Not Aggregating
Symptom: Cluster metrics show 1/3 nodes or coverage errors. Check cluster topology:High Memory Usage
Symptom: EventStream memory growing unbounded. Check event counts:seen_request_idscleaned every 5 secondscircuit_statesandblock_heightscleaned every 30 seconds
Summary
Lasso’s dashboard provides:- Real-time aggregation via EventStream (175ms batching)
- Cluster-wide metrics via MetricsStore (15s cache, stale-while-revalidate)
- Multi-region visibility with per-node latency breakdown
- Interactive topology with live request animations
- Efficient updates through batching, coalescing, and deduplication
- Automatic scaling with lazy ticking and idle termination