Dashboard
Built-in SwiftUI dashboard for local metric visualization. Works standalone without any external dependencies.
How to Open
- • Click chart icon in menu bar popover
- • Or: Settings → About → Open Dashboard
- • Or:
/usr/local/bin/pulse --dashboard
Features
- • Time range selector (All, Today, Yesterday, past 7 days)
- • Quick zoom buttons (1h, 4h, 24h) and custom date picker
- • Click + drag to zoom any chart
- • Hover for top processes at each point
- • Load external .jsonl files for analysis
What's Included
Summary Stats (aggregated over selected time range)
Avg CPU IdleAvg CPU UsagePeak ThermalPeak Mem PressureAvg SwapAvg BatteryAvg GPUAvg Disk Free
Time-Series Charts
CPU UsageMemoryThermal StateMemory PressureSwapDisk I/ONetworkGPUBattery
Process Tables
Top CPU ProcessesTop Memory ProcessesTop Network Processes
Shows: Process name, Avg usage, Peak usage, Presence %, and Impact badge
Process Impact Classification
The process tables aggregate data across all samples and classify each process by its resource consumption pattern:
| Badge | Criteria | Meaning |
|---|---|---|
| 🔴 Sustained | ≥50% presence AND high avg usage | Persistent resource consumer requiring attention |
| 🟡 Recurring | 15-50% presence | Periodic consumer, may warrant investigation |
| 🟢 Spike | <15% presence | Brief burst, typically not concerning |
High usage thresholds: ≥20% CPU average or ≥200 MB memory average. In the Pulse Endpoint app dashboard, these thresholds are configurable via sliders. In the Splunk dashboard, they are fixed.
Thermal States
| State | Level | Meaning |
|---|---|---|
| Nominal | 0 | Normal operating temperature |
| Fair | 1 | Elevated temperature, minor throttling possible |
| Serious | 2 | High temperature, significant throttling |
| Critical | 3 | Maximum throttling engaged to prevent damage |
Understanding CPU Percentages
CPU percentages are displayed differently depending on context:
| Location | Scale | Description |
|---|---|---|
| System CPU (charts) | 0-100% | Total CPU time spent on work (user + system). Always 0-100% regardless of core count. |
| Menu bar process list | Can exceed 100% | Raw per-process CPU from macOS. 200% means using 2 full cores. |
| Dashboard tooltips | 0-100% | Normalized: raw CPU ÷ core count. Easier to compare across machines. |
Example: A process using 400% CPU on a 10-core Mac shows as 400% in the menu bar list but 40% in dashboard tooltips.