-module(beam_stats_consumer_statsd).
-include("include/beam_stats.hrl").
+-include("beam_stats_logging.hrl").
-behaviour(beam_stats_consumer).
[ option/0
]).
+%% Consumer interface
-export(
[ init/1
, consume/2
]).
-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()}
%% ============================================================================
-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),
-spec try_to_send(state(), binary()) ->
state().
try_to_send(#state{sock=none}=State, _) ->
- io:format("error: socket closed~n"),
+ ?log_error("Sending failed. No socket in state."),
% TODO: Maybe schedule retry?
State;
try_to_send(
of ok ->
State
; {error, _}=Error ->
- io:format("error: gen_udp:send/4 failed: ~p~n", [Error]),
+ ?log_error(
+ "gen_udp:send(~p, ~p, ~p, ~p) -> ~p",
+ [Sock, DstHost, DstPort, Error]
+ ),
% TODO: Do something with unsent messages?
ok = gen_udp:close(Sock),
State#state{sock=none}
of {ok, Sock} ->
State#state{sock = {some, Sock}}
; {error, _}=Error ->
- io:format("error: gen_udp:open/1 failed: ~p~n", [Error]),
+ ?log_error("gen_udp:open(~p) -> ~p", [SrcPort, Error]),
State#state{sock = none}
end.
Msgs2 = [statsd_msg_add_name_prefix(M, NodeIDBin) || M <- Msgs1],
[statsd_msg_to_bin(M) || M <- Msgs2].
--spec memory_to_msgs(erlang:memory()) ->
+-spec memory_to_msgs([{atom(), non_neg_integer()}]) ->
[statsd_msg()].
memory_to_msgs(Memory) ->
[memory_component_to_statsd_msg(MC) || MC <- Memory].
--spec memory_component_to_statsd_msg({erlang:memory_type(), non_neg_integer()}) ->
+-spec memory_component_to_statsd_msg({atom(), non_neg_integer()}) ->
statsd_msg().
memory_component_to_statsd_msg({MemType, MemSize}) when MemSize >= 0 ->
#statsd_msg