Add reductions delta. 0.4.0
authorSiraaj Khandkar <siraaj@khandkar.net>
Tue, 25 Aug 2015 00:33:22 +0000 (20:33 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Tue, 25 Aug 2015 00:33:43 +0000 (20:33 -0400)
include/beam_stats.hrl
src/beam_stats.app.src
src/beam_stats_consumer_statsd.erl
src/beam_stats_state.erl
test/beam_stats_consumer_statsd_SUITE.erl

index ae0b48a..8089595 100644 (file)
@@ -5,6 +5,7 @@
     , io_bytes_in  :: non_neg_integer()
     , io_bytes_out :: non_neg_integer()
     , context_switches :: non_neg_integer()
+    , reductions       :: non_neg_integer()
     %, statistics   :: [{atom()       , term()}]
     %, system       :: [{atom()       , term()}]
     %, process      :: [{atom()       , term()}]
index 00697fc..6fc53a2 100644 (file)
@@ -1,7 +1,7 @@
 {application, beam_stats,
  [
   {description, "Periodic VM stats production and consumption."},
-  {vsn, "0.3.0"},
+  {vsn, "0.4.0"},
   {registered, []},
   {applications,
     [ kernel
index 5b2f818..c434429 100644 (file)
@@ -145,6 +145,7 @@ beam_stats_to_bins(#beam_stats
     , io_bytes_in  = IOBytesIn
     , io_bytes_out = IOBytesOut
     , context_switches = ContextSwitches
+    , reductions       = Reductions
     }
 ) ->
     NodeIDBin = node_id_to_bin(NodeID),
@@ -152,11 +153,21 @@ beam_stats_to_bins(#beam_stats
         [ io_bytes_in_to_msg(IOBytesIn)
         , io_bytes_out_to_msg(IOBytesOut)
         , context_switches_to_msg(ContextSwitches)
+        , reductions_to_msg(Reductions)
         | memory_to_msgs(Memory)
         ],
     Msgs2 = [statsd_msg_add_name_prefix(M, NodeIDBin) || M <- Msgs1],
     [statsd_msg_to_bin(M) || M <- Msgs2].
 
+-spec reductions_to_msg(non_neg_integer()) ->
+    statsd_msg().
+reductions_to_msg(Reductions) ->
+    #statsd_msg
+    { name  = <<"reductions">>
+    , value = Reductions
+    , type  = gauge
+    }.
+
 -spec context_switches_to_msg(non_neg_integer()) ->
     statsd_msg().
 context_switches_to_msg(ContextSwitches) ->
index 17f9c90..4dcadd6 100644 (file)
@@ -24,6 +24,8 @@
 
     , previous_context_switches :: non_neg_integer()
     ,  current_context_switches :: non_neg_integer()
+
+    , reductions                :: non_neg_integer()
     }).
 
 -define(T, #?MODULE).
@@ -38,6 +40,7 @@ new() ->
     , {output , CurrentIOBytesOut}
     } = erlang:statistics(io),
     {CurrentContextSwitches, 0} = erlang:statistics(context_switches),
+    {_ReductionsTotal, ReductionsDelta} = erlang:statistics(reductions),
     ?T
     { timestamp             = os:timestamp()
     , node_id               = erlang:node()
@@ -48,6 +51,7 @@ new() ->
     , current_io_bytes_out  = CurrentIOBytesOut
     , previous_context_switches = 0
     ,  current_context_switches = CurrentContextSwitches
+    , reductions                = ReductionsDelta
     }.
 
 -spec update(t()) ->
@@ -62,6 +66,7 @@ update(?T
     , {output , CurrentIOBytesOut}
     } = erlang:statistics(io),
     {CurrentContextSwitches, 0} = erlang:statistics(context_switches),
+    {_ReductionsTotal, ReductionsDelta} = erlang:statistics(reductions),
     ?T
     { timestamp             = os:timestamp()
     , node_id               = erlang:node()
@@ -72,6 +77,7 @@ update(?T
     , current_io_bytes_out  = CurrentIOBytesOut
     , previous_context_switches = PreviousContextSwitches
     ,  current_context_switches = CurrentContextSwitches
+    , reductions                = ReductionsDelta
     }.
 
 -spec export(t()) ->
@@ -87,6 +93,7 @@ export(
     , current_io_bytes_out  = CurrentIOBytesOut
     , previous_context_switches = PreviousContextSwitches
     ,  current_context_switches = CurrentContextSwitches
+    , reductions                = Reductions
     }
 ) ->
     #beam_stats
@@ -96,4 +103,5 @@ export(
     , io_bytes_in  = CurrentIOBytesIn  - PreviousIOBytesIn
     , io_bytes_out = CurrentIOBytesOut - PreviousIOBytesOut
     , context_switches = CurrentContextSwitches - PreviousContextSwitches
+    , reductions       = Reductions
     }.
index 87f5dd3..32864f0 100644 (file)
@@ -40,6 +40,7 @@ t_send(_Cfg) ->
     , io_bytes_in  = 3
     , io_bytes_out = 7
     , context_switches = 5
+    , reductions       = 9
     },
     ServerPort = 8125,
     {ok, ServerSocket} = gen_udp:open(ServerPort, [binary, {active, false}]),
@@ -54,5 +55,6 @@ t_send(_Cfg) ->
     << "beam_stats.node_foo_host_bar.io.bytes_in:3|g\n"
      , "beam_stats.node_foo_host_bar.io.bytes_out:7|g\n"
      , "beam_stats.node_foo_host_bar.context_switches:5|g\n"
+     , "beam_stats.node_foo_host_bar.reductions:9|g\n"
      , "beam_stats.node_foo_host_bar.memory.mem_type_foo:1|g\n"
     >> = Data.
This page took 0.03573 seconds and 4 git commands to generate.