Implement deltas server, replacing beam_stats_state.
[beam_stats.git] / src / beam_stats.erl
index e388396..af5167c 100644 (file)
@@ -7,7 +7,7 @@
     ]).
 
 -export(
-    [ collect/0
+    [ collect/1
     ]).
 
 -define(T, #?MODULE).
 -type t() ::
     ?T{}.
 
--spec collect() ->
+-spec collect(beam_stats_delta:t()) ->
     t().
-collect() ->
+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 = os:timestamp()
-    , node_id   = erlang:node()
-    , memory    = erlang:memory()
+    { 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()
     }.
This page took 0.025955 seconds and 4 git commands to generate.