Add run_queue 0.5.0
authorSiraaj Khandkar <siraaj@khandkar.net>
Tue, 25 Aug 2015 00:50:44 +0000 (20:50 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Tue, 25 Aug 2015 00:50:44 +0000 (20:50 -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 8089595..8698310 100644 (file)
@@ -6,6 +6,7 @@
     , io_bytes_out :: non_neg_integer()
     , context_switches :: non_neg_integer()
     , reductions       :: non_neg_integer()
+    , run_queue        :: non_neg_integer()
     %, statistics   :: [{atom()       , term()}]
     %, system       :: [{atom()       , term()}]
     %, process      :: [{atom()       , term()}]
index 6fc53a2..e97bd2c 100644 (file)
@@ -1,7 +1,7 @@
 {application, beam_stats,
  [
   {description, "Periodic VM stats production and consumption."},
-  {vsn, "0.4.0"},
+  {vsn, "0.5.0"},
   {registered, []},
   {applications,
     [ kernel
index c434429..7a06d68 100644 (file)
@@ -146,6 +146,7 @@ beam_stats_to_bins(#beam_stats
     , io_bytes_out = IOBytesOut
     , context_switches = ContextSwitches
     , reductions       = Reductions
+    , run_queue        = RunQueue
     }
 ) ->
     NodeIDBin = node_id_to_bin(NodeID),
@@ -154,11 +155,21 @@ beam_stats_to_bins(#beam_stats
         , io_bytes_out_to_msg(IOBytesOut)
         , context_switches_to_msg(ContextSwitches)
         , reductions_to_msg(Reductions)
+        , run_queue_to_msg(RunQueue)
         | memory_to_msgs(Memory)
         ],
     Msgs2 = [statsd_msg_add_name_prefix(M, NodeIDBin) || M <- Msgs1],
     [statsd_msg_to_bin(M) || M <- Msgs2].
 
+-spec run_queue_to_msg(non_neg_integer()) ->
+    statsd_msg().
+run_queue_to_msg(RunQueue) ->
+    #statsd_msg
+    { name  = <<"run_queue">>
+    , value = RunQueue
+    , type  = gauge
+    }.
+
 -spec reductions_to_msg(non_neg_integer()) ->
     statsd_msg().
 reductions_to_msg(Reductions) ->
index 4dcadd6..1fff6b0 100644 (file)
@@ -26,6 +26,7 @@
     ,  current_context_switches :: non_neg_integer()
 
     , reductions                :: non_neg_integer()
+    , run_queue                 :: non_neg_integer()
     }).
 
 -define(T, #?MODULE).
@@ -41,6 +42,7 @@ new() ->
     } = erlang:statistics(io),
     {CurrentContextSwitches, 0} = erlang:statistics(context_switches),
     {_ReductionsTotal, ReductionsDelta} = erlang:statistics(reductions),
+    RunQueue = erlang:statistics(run_queue),
     ?T
     { timestamp             = os:timestamp()
     , node_id               = erlang:node()
@@ -52,6 +54,7 @@ new() ->
     , previous_context_switches = 0
     ,  current_context_switches = CurrentContextSwitches
     , reductions                = ReductionsDelta
+    , run_queue                 = RunQueue
     }.
 
 -spec update(t()) ->
@@ -67,6 +70,7 @@ update(?T
     } = erlang:statistics(io),
     {CurrentContextSwitches, 0} = erlang:statistics(context_switches),
     {_ReductionsTotal, ReductionsDelta} = erlang:statistics(reductions),
+    RunQueue = erlang:statistics(run_queue),
     ?T
     { timestamp             = os:timestamp()
     , node_id               = erlang:node()
@@ -78,6 +82,7 @@ update(?T
     , previous_context_switches = PreviousContextSwitches
     ,  current_context_switches = CurrentContextSwitches
     , reductions                = ReductionsDelta
+    , run_queue                 = RunQueue
     }.
 
 -spec export(t()) ->
@@ -94,6 +99,7 @@ export(
     , previous_context_switches = PreviousContextSwitches
     ,  current_context_switches = CurrentContextSwitches
     , reductions                = Reductions
+    , run_queue                 = RunQueue
     }
 ) ->
     #beam_stats
@@ -104,4 +110,5 @@ export(
     , io_bytes_out = CurrentIOBytesOut - PreviousIOBytesOut
     , context_switches = CurrentContextSwitches - PreviousContextSwitches
     , reductions       = Reductions
+    , run_queue        = RunQueue
     }.
index 32864f0..f0cffb0 100644 (file)
@@ -41,6 +41,7 @@ t_send(_Cfg) ->
     , io_bytes_out = 7
     , context_switches = 5
     , reductions       = 9
+    , run_queue        = 17
     },
     ServerPort = 8125,
     {ok, ServerSocket} = gen_udp:open(ServerPort, [binary, {active, false}]),
@@ -52,9 +53,11 @@ t_send(_Cfg) ->
     ResultOfReceive = gen_udp:recv(ServerSocket, 0),
     ok = gen_udp:close(ServerSocket),
     {ok, {_, _, Data}} = ResultOfReceive,
+    ct:log("Packet: ~n~s~n", [Data]),
     << "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.run_queue:17|g\n"
      , "beam_stats.node_foo_host_bar.memory.mem_type_foo:1|g\n"
     >> = Data.
This page took 0.042547 seconds and 4 git commands to generate.