1 -module(beam_stats_sup_consumers).
3 -behaviour(supervisor).
11 %% Supervisor callbacks
14 %% Helper macro for declaring children of supervisor
15 -define(CHILD(Type, Module, Args),
16 {make_ref(), {Module, start_link, Args}, permanent, 5000, Type, [Module]}).
18 %% ===================================================================
20 %% ===================================================================
23 supervisor:start_link({local, ?MODULE}, ?MODULE, []).
25 start_child(Module, Options) ->
26 Child = ?CHILD(worker, beam_stats_consumer, [Module, Options]),
27 supervisor:start_child(?MODULE, Child).
29 %% ===================================================================
30 %% Supervisor callbacks
31 %% ===================================================================
34 Consumers = beam_stats_config:consumers(),
36 fun ({Module, Options}) ->
37 ?CHILD(worker, beam_stats_consumer, [Module, Options])
39 Children = lists:map(ConsumerSpecToChild, Consumers),
40 SupFlags = {one_for_one, 5, 10},
41 {ok, {SupFlags, Children}}.