diff options
| author | Diana Corbacho <diana@rabbitmq.com> | 2019-04-10 20:18:04 +0100 |
|---|---|---|
| committer | Diana Corbacho <diana@rabbitmq.com> | 2019-04-10 20:19:41 +0100 |
| commit | 4c6e9b39bbbf934b5df662e5069518f524a4423d (patch) | |
| tree | 56a34cf9497ecb1901599504c2d32517970961c5 /deps/rabbitmq_management_agent | |
| parent | 57133f66397d1558e545499351ba954253316d7c (diff) | |
| download | rabbitmq-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.erl | 44 |
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. |
