summaryrefslogtreecommitdiff
path: root/deps/rabbitmq_management_agent
diff options
context:
space:
mode:
authorGerhard Lazu <gerhard@users.noreply.github.com>2019-04-17 12:44:02 +0100
committerGitHub <noreply@github.com>2019-04-17 12:44:02 +0100
commit470d80d0a4ce9c09703383e3a78ad2a8b3c4ba27 (patch)
tree16b15777666c6b9a882926cb97c6d157966412fd /deps/rabbitmq_management_agent
parent3ce9849f272fd71bddcf9a69ab805574032afed1 (diff)
parent1dbf14171291f25eeafef59de29b607795a8ec7a (diff)
downloadrabbitmq-server-git-470d80d0a4ce9c09703383e3a78ad2a8b3c4ba27.tar.gz
Merge pull request #78 from rabbitmq/disable-metrics-collection
Option to disable metrics collector on startup
Diffstat (limited to 'deps/rabbitmq_management_agent')
-rw-r--r--deps/rabbitmq_management_agent/priv/schema/rabbitmq_management_agent.schema4
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl44
2 files changed, 31 insertions, 17 deletions
diff --git a/deps/rabbitmq_management_agent/priv/schema/rabbitmq_management_agent.schema b/deps/rabbitmq_management_agent/priv/schema/rabbitmq_management_agent.schema
new file mode 100644
index 0000000000..fa8a76725a
--- /dev/null
+++ b/deps/rabbitmq_management_agent/priv/schema/rabbitmq_management_agent.schema
@@ -0,0 +1,4 @@
+%% Agent collectors won't start if metrics collection is disabled, only external stats are enabled.
+%% Also the management application will refuse to start if metrics collection is disabled
+{mapping, "management_agent.disable_metrics_collector", "rabbitmq_management_agent.disable_metrics_collector",
+ [{datatype, {enum, [true, false]}}]}.
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl
index 54812f3435..63da545e19 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl
@@ -26,26 +26,36 @@
-export([start_link/0]).
init([]) ->
- pg2:create(management_db),
- ok = pg2:join(management_db, self()),
- ST = {rabbit_mgmt_storage, {rabbit_mgmt_storage, start_link, []},
- permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_storage]},
- MD = {delegate_management_sup, {delegate_sup, start_link, [5, ?DELEGATE_PREFIX]},
- permanent, ?SUPERVISOR_WAIT, supervisor, [delegate_sup]},
- MC = [{rabbit_mgmt_metrics_collector:name(Table),
- {rabbit_mgmt_metrics_collector, start_link, [Table]},
- permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_metrics_collector]}
- || {Table, _} <- ?CORE_TABLES],
- MGC = [{rabbit_mgmt_metrics_gc:name(Event),
- {rabbit_mgmt_metrics_gc, start_link, [Event]},
- permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_metrics_gc]}
- || Event <- ?GC_EVENTS],
+ MCs = maybe_enable_metrics_collector(),
ExternalStats = {rabbit_mgmt_external_stats,
{rabbit_mgmt_external_stats, start_link, []},
permanent, 5000, worker, [rabbit_mgmt_external_stats]},
- GC = {rabbit_mgmt_gc, {rabbit_mgmt_gc, start_link, []},
- permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_gc]},
- {ok, {{one_for_one, 100, 10}, [ST, MD, ExternalStats, GC | MC ++ MGC]}}.
+ {ok, {{one_for_one, 100, 10}, [ExternalStats] ++ MCs}}.
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
+
+
+maybe_enable_metrics_collector() ->
+ case application:get_env(rabbitmq_management_agent, disable_metrics_collector, false) of
+ false ->
+ pg2:create(management_db),
+ ok = pg2:join(management_db, self()),
+ ST = {rabbit_mgmt_storage, {rabbit_mgmt_storage, start_link, []},
+ permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_storage]},
+ MD = {delegate_management_sup, {delegate_sup, start_link, [5, ?DELEGATE_PREFIX]},
+ permanent, ?SUPERVISOR_WAIT, supervisor, [delegate_sup]},
+ MC = [{rabbit_mgmt_metrics_collector:name(Table),
+ {rabbit_mgmt_metrics_collector, start_link, [Table]},
+ permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_metrics_collector]}
+ || {Table, _} <- ?CORE_TABLES],
+ MGC = [{rabbit_mgmt_metrics_gc:name(Event),
+ {rabbit_mgmt_metrics_gc, start_link, [Event]},
+ permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_metrics_gc]}
+ || Event <- ?GC_EVENTS],
+ GC = {rabbit_mgmt_gc, {rabbit_mgmt_gc, start_link, []},
+ permanent, ?WORKER_WAIT, worker, [rabbit_mgmt_gc]},
+ [ST, MD, GC | MC ++ MGC];
+ true ->
+ []
+ end.