Metrics
Pulse Endpoint collects system metrics at configurable intervals. Each category can be toggled via the collect* preferences.
| Category | Key Fields |
|---|---|
| CPU | load_1m, load_5m, load_15m, cpu_user, cpu_sys, cpu_idle, thermal_state |
| Memory | mem_total_mb, mem_free_mb, mem_active_mb, memory_pressure, swap_used_mb |
| Disk | disk_total_gb, disk_free_gb, disk_kb_read_sec, disk_kb_write_sec |
| Network | net_bytes_in, net_bytes_out, interface, internet_connected |
| GPU | gpu_model, gpu_utilization_percent, top_gpu_processes |
| Power | battery_percent, battery_state, on_ac, on_battery |
| Processes | process_count, top_cpu_processes, top_mem_processes |
| System | uptime_seconds, macos_version, hardware_model, chip_description |
Track any app across your fleet
Pin a process name to continuously track its CPU and memory usage in a dedicated pinned_processes field. Ideal for POC evaluations — deploy Pulse Endpoint, pin the app you're evaluating, and get real resource consumption data across every Mac in your fleet.
Understanding CPU Utilization
Pulse Endpoint displays CPU metrics in different ways depending on the context. Understanding the difference helps you interpret the data correctly.
System CPU vs Process CPU
System CPU (0-100%)
Shown in the CPU Usage graph. Represents total CPU utilization across all cores, normalized to 100%. Similar to Activity Monitor's CPU meter. Calculated from kernel statistics (user + system time).
Process CPU (0-100% per core)
Shown in process tables. Each process reports CPU as a percentage where 100% equals one full CPU core. A process using 2 cores fully would show 200%. On a 10-core Mac, a single process could theoretically reach 1000%.
Menu Bar vs Dashboard
Pulse Endpoint calculates process CPU differently in the menu bar popup versus the Dashboard. Each serves a different purpose.
Menu Bar Popup
"How much CPU is this app using right now?"
- Shows live, point-in-time data
- When "Combine Related Processes" is enabled, groups helper processes under their parent app using the process tree (PPID)
- Sums CPU across all instances to show total app footprint
- Example: 5 Chrome renderers at 3% each → shows "Google Chrome: 15%"
Dashboard & Splunk
"What's the typical behavior of each process over time?"
- Shows historical data across the selected time range
- Groups processes by name (e.g., all "Google Chrome Helper (Renderer)" entries together)
- Averages CPU across all samples to show typical per-instance usage
- Example: 5 Chrome renderers at 3% each → shows "Google Chrome Helper (Renderer): 3% avg"
Why the Difference?
The menu bar answers: "Which app should I quit to free up CPU?" — total footprint matters.
The Dashboard answers: "Is any process behaving abnormally?" — per-instance average reveals outliers.
Consider this scenario: Chrome shows 15% total CPU in the menu bar.
| Situation | Menu Bar | Dashboard |
|---|---|---|
| 5 healthy renderers at 3% each | Chrome: 15% | Chrome Helper (Renderer): 3% avg |
| 1 runaway renderer at 15%, 4 idle | Chrome: 15% | Chrome Helper (Renderer): 3% avg, Peak: 15% |
The Dashboard's average + peak values help distinguish normal behavior from a single misbehaving process.