opentelemetry-erlang-contrib/examples/roll_dice_elli/src/roll_dice_sup.erl

42 lines
1.1 KiB
Erlang

%%%-------------------------------------------------------------------
%% @doc roll_dice top level supervisor.
%% @end
%%%-------------------------------------------------------------------
-module(roll_dice_sup).
-behaviour(supervisor).
-export([start_link/0]).
-export([init/1]).
-define(SERVER, ?MODULE).
start_link() ->
supervisor:start_link({local, ?SERVER}, ?MODULE, []).
init([]) ->
Port = list_to_integer(os:getenv("PORT", "3000")),
SupFlags = #{strategy => one_for_all,
intensity => 5,
period => 10},
ElliOpts = [{callback, elli_middleware},
{callback_args, [{mods, [{otel_elli_middleware, []},
{roll_dice_handler, []}]}]},
{port, Port}],
ChildSpecs = [#{id => roll_dice_http,
start => {elli, start_link, [ElliOpts]},
restart => permanent,
shutdown => 5000,
type => worker,
modules => [roll_dice_handler]}],
{ok, {SupFlags, ChildSpecs}}.
%% internal functions