X-Git-Url: https://git.xandkar.net/?p=beam_stats.git;a=blobdiff_plain;f=src%2Fbeam_stats.erl;h=af5167cec5f6dd0e6a8733c47d02db9153d76bb7;hp=15225682f71e60d2b8ba30d751a69717d82b98da;hb=b2c364fd163d74df4914b6d4d5da42dec28368af;hpb=6c4d94fd5465a1952a9fa28a21fd264226487945 diff --git a/src/beam_stats.erl b/src/beam_stats.erl index 1522568..af5167c 100644 --- a/src/beam_stats.erl +++ b/src/beam_stats.erl @@ -6,5 +6,31 @@ [ t/0 ]). +-export( + [ collect/1 + ]). + +-define(T, #?MODULE). + -type t() :: - #?MODULE{}. + ?T{}. + +-spec collect(beam_stats_delta:t()) -> + t(). +collect(DeltasServer) -> + {_, DeltaOfReductions} = beam_stats_source:erlang_statistics(reductions), + { {io_bytes_in , DeltaOfIOBytesIn} + , {io_bytes_out , DeltaOfIOBytesOut} + } = beam_stats_delta:of_io(DeltasServer), + ?T + { timestamp = beam_stats_source:os_timestamp() + , node_id = beam_stats_source:erlang_node() + , memory = beam_stats_source:erlang_memory() + , io_bytes_in = DeltaOfIOBytesIn + , io_bytes_out = DeltaOfIOBytesOut + , context_switches = beam_stats_delta:of_context_switches(DeltasServer) + , reductions = DeltaOfReductions + , run_queue = beam_stats_source:erlang_statistics(run_queue) + , ets = beam_stats_ets:collect() + , processes = beam_stats_processes:collect() + }.