home
/
code
/
beam_stats.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #5 from ibnfirnas/allow-custom-nodename-in-statsd-consumer
[beam_stats.git]
/
src
/
beam_stats_consumer_csv.erl
diff --git
a/src/beam_stats_consumer_csv.erl
b/src/beam_stats_consumer_csv.erl
index
b50183e
..
6b27106
100644
(file)
--- a/
src/beam_stats_consumer_csv.erl
+++ b/
src/beam_stats_consumer_csv.erl
@@
-1,6
+1,7
@@
-module(beam_stats_consumer_csv).
-include("include/beam_stats.hrl").
-module(beam_stats_consumer_csv).
-include("include/beam_stats.hrl").
+-include("beam_stats_logging.hrl").
-behaviour(beam_stats_consumer).
-behaviour(beam_stats_consumer).
@@
-15,8
+16,8
@@
]).
-type option() ::
]).
-type option() ::
- {
path , file:filename
()}
- | {
consumption_interval , non_neg_integer
()}
+ {
consumption_interval , non_neg_integer
()}
+ | {
path , file:filename
()}
.
-record(state,
.
-record(state,
@@
-56,14
+57,14
@@
terminate(#state{file=FileOpt}) ->
-spec try_to_write(state(), binary()) ->
state().
try_to_write(#state{file=none, path=Path}=State, _) ->
-spec try_to_write(state(), binary()) ->
state().
try_to_write(#state{file=none, path=Path}=State, _) ->
-
io:format("error: file closed: ~s~n
", [Path]),
+
?log_error("Writing to file (~p) failed: no file in state.
", [Path]),
State;
try_to_write(#state{file={some, File}}=State, Payload) ->
case file:write(File, Payload)
of ok ->
State
; {error, _}=Error ->
State;
try_to_write(#state{file={some, File}}=State, Payload) ->
case file:write(File, Payload)
of ok ->
State
; {error, _}=Error ->
-
io:format("error: file:write/2 failed: ~p~n", [
Error]),
+
?log_error("file:write(~p, ~p) -> ~p", [File, Payload,
Error]),
% TODO: Maybe schedule retry?
ok = file:close(File),
State#state{file=none}
% TODO: Maybe schedule retry?
ok = file:close(File),
State#state{file=none}
@@
-74,11
+75,12
@@
try_to_write(#state{file={some, File}}=State, Payload) ->
try_to_open_if_no_file(#state{file={some, _}}=State) ->
State;
try_to_open_if_no_file(#state{file=none, path=Path}=State) ->
try_to_open_if_no_file(#state{file={some, _}}=State) ->
State;
try_to_open_if_no_file(#state{file=none, path=Path}=State) ->
- case file:open(Path, [append])
+ Options = [append],
+ case file:open(Path, Options)
of {ok, File} ->
State#state{file = {some, File}}
; {error, _}=Error ->
of {ok, File} ->
State#state{file = {some, File}}
; {error, _}=Error ->
-
io:format("error: file:open/2 failed: ~p~n", [
Error]),
+
?log_error("file:open(~p, ~p) -> ~p", [Path, Options,
Error]),
State#state{file = none}
end.
State#state{file = none}
end.
@@
-99,9
+101,9
@@
beam_stats_to_bin(#beam_stats
) ->
<<TimestampBin/binary>> = timestamp_to_bin(Timestamp),
<<NodeIDBin/binary>> = node_id_to_bin(NodeID),
) ->
<<TimestampBin/binary>> = timestamp_to_bin(Timestamp),
<<NodeIDBin/binary>> = node_id_to_bin(NodeID),
-
PairToBin = make_pair_to_bin(NodeIDBin, TimestampBin
),
+
MemoryPairToBin = make_pair_to_bin(NodeIDBin, TimestampBin, <<"memory">>
),
MemoryBinPairs = lists:map(fun atom_int_to_bin_bin/1, Memory),
MemoryBinPairs = lists:map(fun atom_int_to_bin_bin/1, Memory),
- MemoryBins = lists:map(PairToBin, MemoryBinPairs),
+ MemoryBins = lists:map(
Memory
PairToBin, MemoryBinPairs),
AllBins =
[ MemoryBins
],
AllBins =
[ MemoryBins
],
@@
-129,14
+131,16
@@
timestamp_to_float({ComponentMega, ComponentWhole, ComponentMicro}) ->
TotalMicroSeconds = (TotalWholeSeconds * OneMillion) + ComponentMicro,
TotalMicroSeconds / OneMillion.
TotalMicroSeconds = (TotalWholeSeconds * OneMillion) + ComponentMicro,
TotalMicroSeconds / OneMillion.
--spec make_pair_to_bin(binary(), binary()) ->
+-spec make_pair_to_bin(binary(), binary()
, binary()
) ->
fun(({binary(), binary()}) -> binary()).
fun(({binary(), binary()}) -> binary()).
-make_pair_to_bin(<<NodeID/binary>>, <<TimestampBin/binary>>) ->
+make_pair_to_bin(<<NodeID/binary>>, <<TimestampBin/binary>>
, <<Type/binary>>
) ->
fun ({<<K/binary>>, <<V/binary>>}) ->
<< TimestampBin/binary
, "|"
, NodeID/binary
, "|"
fun ({<<K/binary>>, <<V/binary>>}) ->
<< TimestampBin/binary
, "|"
, NodeID/binary
, "|"
+ , Type/binary
+ , "|"
, K/binary
, "|"
, V/binary
, K/binary
, "|"
, V/binary
This page took
0.027484 seconds
and
4
git commands to generate.