defmodule Chaperon.Supervisor do
@moduledoc """
Root supervisor for all Chaperon processes & supervisors.
"""
use Supervisor
def start_link do
Supervisor.start_link(__MODULE__, [], name: __MODULE__)
end
def init([]) do
Supervisor.init(children(), strategy: :one_for_one)
end
def children do
common_children = [
Chaperon.Master.Supervisor,
{Task.Supervisor, name: Chaperon.Worker.Supervisor, strategy: :one_for_one},
{Chaperon.Scenario.Metrics, []},
:hackney_pool.child_spec(
:chaperon,
timeout: 20_000,
max_connections: 200_000
)
]
_common_children =
if Chaperon.API.HTTP.enabled?() do
common_children ++ [{Chaperon.API.HTTP, []}]
else
common_children
end
# case Application.get_env(:chaperon, Chaperon.Export.InfluxDB, nil) do
# nil ->
# common_children
# _ ->
# [Chaperon.Export.InfluxDB.child_spec() | common_children]
# end
end
end