Stores low-overhead, node-wide runtime pressure measurements.
Values are fixed-shape scalars collected from public ERTS APIs. The struct excludes scheduler-wall-time data, allocator details, port and socket identities, paths, and other runtime terms that would add cost or expose host details.
Summary
Functions
Partitions configured, dirty CPU, and dirty I/O run-queue lengths.
Types
@type measurement() :: non_neg_integer() | nil
@type run_queues() :: %{ total: non_neg_integer(), cpu: non_neg_integer(), io: non_neg_integer() }
@type t() :: %BeamConsole.Runtime.Pressure{ dirty_cpu_scheduler_online: measurement(), dirty_cpu_scheduler_total: measurement(), dirty_io_scheduler_total: measurement(), io_input_bytes: measurement(), io_output_bytes: measurement(), port_count: measurement(), port_limit: measurement(), process_limit: measurement(), run_queue_cpu: measurement(), run_queue_io: measurement(), run_queue_total: measurement(), scheduler_online: measurement(), scheduler_total: measurement(), uptime_ms: measurement() }
Functions
@spec partition_run_queues([non_neg_integer()], pos_integer()) :: {:ok, run_queues()} | :error
Partitions configured, dirty CPU, and dirty I/O run-queue lengths.
ERTS returns one normal queue per configured scheduler followed by one shared dirty CPU queue and one shared dirty I/O queue.
Examples
iex> BeamConsole.Runtime.Pressure.partition_run_queues([1, 2, 3, 4], 2)
{:ok, %{total: 10, cpu: 6, io: 4}}