X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=src%2Fbeam_stats_consumer_statsd.erl;h=6baf459397af889171a41cea7545be6e7135fed4;hb=881e328f9d9227e84e8833556ddf1b715efbda7c;hp=fe8299c5b9e36c1c823049b62e22fecebaabf3fd;hpb=e7b39f0719b5d561181b2ecb49da5b8e6a897076;p=beam_stats.git diff --git a/src/beam_stats_consumer_statsd.erl b/src/beam_stats_consumer_statsd.erl index fe8299c..6baf459 100644 --- a/src/beam_stats_consumer_statsd.erl +++ b/src/beam_stats_consumer_statsd.erl @@ -8,14 +8,24 @@ [ option/0 ]). +%% Consumer interface -export( [ init/1 , consume/2 , terminate/1 ]). +%% Tests (to be run by CT): +-export( + [ ct_test__beam_stats_to_bins/1 + , ct_test__memory_component_to_statsd_msg/1 + , ct_test__statsd_msg_add_name_prefix/1 + , ct_test__statsd_msg_to_bin/1 + , ct_test__node_id_to_bin/1 + ]). + -type option() :: - {consumption_interval , erlang:time()} + {consumption_interval , non_neg_integer()} | {dst_host , inet:ip_address() | inet:hostname()} | {dst_port , inet:port_number()} | {src_port , inet:port_number()} @@ -55,7 +65,7 @@ %% ============================================================================ -spec init([option()]) -> - {erlang:time(), state()}. + {non_neg_integer(), state()}. init(Options) -> ConsumptionInterval = hope_kv_list:get(Options, consumption_interval, 60000), DstHost = hope_kv_list:get(Options, dst_host, ?DEFAULT_DST_HOST), @@ -194,3 +204,28 @@ metric_type_to_bin(gauge) -> node_id_to_bin(NodeID) -> NodeIDBin = atom_to_binary(NodeID, utf8), re:replace(NodeIDBin, "[\@\.]", "_", [global, {return, binary}]). + +%% ============================================================================ +%% Tests +%% ============================================================================ + +ct_test__beam_stats_to_bins(_Cfg) -> + BEAMStats = #beam_stats{node_id = 'node@host.local', memory = [{foo,1}]}, + [<>] = + beam_stats_to_bins(BEAMStats). + +ct_test__memory_component_to_statsd_msg(_Cfg) -> + #statsd_msg{name = <<"foo">>, value = 1, type = gauge} = + memory_component_to_statsd_msg({foo, 1}). + +ct_test__statsd_msg_add_name_prefix(_Cfg) -> + Msg1 = #statsd_msg{name = <<"foo">>, value = 1, type = gauge}, + Msg2 = statsd_msg_add_name_prefix(Msg1, <<"bar">>), + <> = Msg2#statsd_msg.name. + +ct_test__statsd_msg_to_bin(_Cfg) -> + Msg = #statsd_msg{name = <<"foo">>, value = 1, type = gauge}, + <<"foo:1|g\n">> = statsd_msg_to_bin(Msg). + +ct_test__node_id_to_bin(_Cfg) -> + <<"foo_bar_local">> = node_id_to_bin('foo@bar.local').