1 -module(beam_stats_state).
3 -include("include/beam_stats.hrl").
16 { timestamp :: erlang:timestamp()
18 , memory :: [{atom(), non_neg_integer()}]
19 , previous_io_bytes_in :: non_neg_integer()
20 , previous_io_bytes_out :: non_neg_integer()
21 , current_io_bytes_in :: non_neg_integer()
22 , current_io_bytes_out :: non_neg_integer()
33 { {input , CurrentIOBytesIn}
34 , {output , CurrentIOBytesOut}
35 } = erlang:statistics(io),
37 { timestamp = os:timestamp()
38 , node_id = erlang:node()
39 , memory = erlang:memory()
40 , previous_io_bytes_in = 0
41 , previous_io_bytes_out = 0
42 , current_io_bytes_in = CurrentIOBytesIn
43 , current_io_bytes_out = CurrentIOBytesOut
49 { previous_io_bytes_in = PreviousIOBytesIn
50 , previous_io_bytes_out = PreviousIOBytesOut
53 { {input , CurrentIOBytesIn}
54 , {output , CurrentIOBytesOut}
55 } = erlang:statistics(io),
57 { timestamp = os:timestamp()
58 , node_id = erlang:node()
59 , memory = erlang:memory()
60 , previous_io_bytes_in = PreviousIOBytesIn
61 , previous_io_bytes_out = PreviousIOBytesOut
62 , current_io_bytes_in = CurrentIOBytesIn
63 , current_io_bytes_out = CurrentIOBytesOut
70 { timestamp = Timestamp
73 , previous_io_bytes_in = PreviousIOBytesIn
74 , previous_io_bytes_out = PreviousIOBytesOut
75 , current_io_bytes_in = CurrentIOBytesIn
76 , current_io_bytes_out = CurrentIOBytesOut
80 { timestamp = Timestamp
83 , io_bytes_in = CurrentIOBytesIn - PreviousIOBytesIn
84 , io_bytes_out = CurrentIOBytesOut - PreviousIOBytesOut