Metrics

Pulse Endpoint collects system metrics at configurable intervals. Each category can be toggled via the collect* preferences.

CategoryKey Fields
CPUload_1m, load_5m, load_15m, cpu_user, cpu_sys, cpu_idle, thermal_state
Memorymem_total_mb, mem_free_mb, mem_active_mb, memory_pressure, swap_used_mb
Diskdisk_total_gb, disk_free_gb, disk_kb_read_sec, disk_kb_write_sec
Networknet_bytes_in, net_bytes_out, interface, internet_connected
GPUgpu_model, gpu_utilization_percent, top_gpu_processes
Powerbattery_percent, battery_state, on_ac, on_battery
Processesprocess_count, top_cpu_processes, top_mem_processes
Systemuptime_seconds, macos_version, hardware_model, chip_description
Process Pinning

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.

/usr/local/bin/pulse --watch "AppName"

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.

SituationMenu BarDashboard
5 healthy renderers at 3% eachChrome: 15%Chrome Helper (Renderer): 3% avg
1 runaway renderer at 15%, 4 idleChrome: 15%Chrome Helper (Renderer): 3% avg, Peak: 15%

The Dashboard's average + peak values help distinguish normal behavior from a single misbehaving process.