diff options
| author | Gerhard Lazu <gerhard@users.noreply.github.com> | 2019-04-17 12:44:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-17 12:44:02 +0100 |
| commit | 470d80d0a4ce9c09703383e3a78ad2a8b3c4ba27 (patch) | |
| tree | 16b15777666c6b9a882926cb97c6d157966412fd /deps/rabbitmq_management_agent | |
| parent | 3ce9849f272fd71bddcf9a69ab805574032afed1 (diff) | |
| parent | 1dbf14171291f25eeafef59de29b607795a8ec7a (diff) | |
| download | rabbitmq-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.schema | 4 | ||||
| -rw-r--r-- | deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl | 44 |
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. |
