summaryrefslogtreecommitdiff
path: root/deps/rabbitmq_management_agent
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2019-04-10 20:18:04 +0100
committerDiana Corbacho <diana@rabbitmq.com>2019-04-10 20:19:41 +0100
commit4c6e9b39bbbf934b5df662e5069518f524a4423d (patch)
tree56a34cf9497ecb1901599504c2d32517970961c5 /deps/rabbitmq_management_agent
parent57133f66397d1558e545499351ba954253316d7c (diff)
downloadrabbitmq-server-git-4c6e9b39bbbf934b5df662e5069518f524a4423d.tar.gz
Option to disable metrics collector on startup
Allows external stats to be gathered for the prometheus plugin, while removing all metrics collection/aggregation and unnecesary management services. To disable set app env `disable_metrics_collector` to `true`. Defaults `false` [#164376052]
Diffstat (limited to 'deps/rabbitmq_management_agent')
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl44
1 files changed, 27 insertions, 17 deletions
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.