X-Git-Url: https://git.xandkar.net/?p=beam_stats.git;a=blobdiff_plain;f=src%2Fbeam_stats_consumer_statsd.erl;h=09a8e957e9ec04f30fc3d6831b6c3925318a3f7b;hp=fe8299c5b9e36c1c823049b62e22fecebaabf3fd;hb=b0ab6ee2c0bea2f50a60d2260fc2e71dfb01320b;hpb=e7b39f0719b5d561181b2ecb49da5b8e6a897076 diff --git a/src/beam_stats_consumer_statsd.erl b/src/beam_stats_consumer_statsd.erl index fe8299c..09a8e95 100644 --- a/src/beam_stats_consumer_statsd.erl +++ b/src/beam_stats_consumer_statsd.erl @@ -8,12 +8,22 @@ [ 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()} | {dst_host , inet:ip_address() | inet:hostname()} @@ -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').