diff options
| author | Luke Bakken <lbakken@pivotal.io> | 2019-01-03 11:19:16 -0800 |
|---|---|---|
| committer | Luke Bakken <lbakken@pivotal.io> | 2019-01-07 12:57:52 -0800 |
| commit | 2b934f3357eee5a23c3d7e26ba326864f1e05c0c (patch) | |
| tree | 3d06a63b547f7260f59911657d2a7bb03f770113 /priv | |
| parent | 180e8f3bd6c0adf55acfeb1c02659a9af93bc2be (diff) | |
| download | rabbitmq-server-git-2b934f3357eee5a23c3d7e26ba326864f1e05c0c.tar.gz | |
Add rabbitmq-sysmon to RabbitMQ
Fixes #952
Update for rabbitmq-sysmon -> sysmon-handler rename
Use hex.pm package for sysmon_handler, copy schema into rabbit.schema
Diffstat (limited to 'priv')
| -rw-r--r-- | priv/schema/rabbit.schema | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/priv/schema/rabbit.schema b/priv/schema/rabbit.schema index ef3dafd116..da28989c37 100644 --- a/priv/schema/rabbit.schema +++ b/priv/schema/rabbit.schema @@ -1355,6 +1355,103 @@ end}. {validators, ["non_zero_positive_integer"]} ]}. +% ========================== +% sysmon_handler section +% ========================== + +%% @doc The threshold at which to warn about the number of processes +%% that are overly busy. Processes with large heaps or that take a +%% long time to garbage collect will count toward this threshold. +{mapping, "sysmon_handler.thresholds.busy_processes", "sysmon_handler.process_limit", [ + {default, 30}, + {datatype, integer}, + hidden +]}. + +%% @doc The threshold at which to warn about the number of ports that +%% are overly busy. Ports with full input buffers count toward this +%% threshold. +{mapping, "sysmon_handler.thresholds.busy_ports", "sysmon_handler.port_limit", [ + {default, 2}, + {datatype, integer}, + hidden +]}. + +%% @doc A process will become busy when it exceeds this amount of time +%% doing garbage collection. +%% +%% NOTE: Enabling this setting can cause performance problems on +%% multi-core systems. +%% @see sysmon_handler.thresholds.busy_processes +{mapping, "sysmon_handler.triggers.process.garbage_collection", "sysmon_handler.gc_ms_limit", [ + {default, off}, + {datatype, [{atom, off}, + {duration, ms}]}, + hidden +]}. + +{translation, "sysmon_handler.gc_ms_limit", + fun(Conf) -> + case cuttlefish:conf_get("sysmon_handler.triggers.process.garbage_collection", Conf) of + off -> 0; + Int -> Int + end + end}. + +%% @doc A process will become busy when it exceeds this amount of time +%% during a single process scheduling & execution cycle. +{mapping, "sysmon_handler.triggers.process.long_scheduled_execution", "sysmon_handler.schedule_ms_limit", [ + {default, off}, + {datatype, [{atom, off}, + {duration, ms}]}, + hidden +]}. + +{translation, "sysmon_handler.schedule_ms_limit", + fun(Conf) -> + case cuttlefish:conf_get("sysmon_handler.triggers.process.long_scheduled_execution", Conf) of + off -> 0; + Int -> Int + end + end}. + +%% @doc A process will become busy when its heap exceeds this size. +%% @see sysmon_handler.thresholds.busy_processes +{mapping, "sysmon_handler.triggers.process.heap_size", "sysmon_handler.heap_word_limit", [ + {default, "160444000"}, + {datatype, [bytesize, {atom, off}]}, + hidden +]}. + +{translation, "sysmon_handler.heap_word_limit", + fun(Conf) -> + case cuttlefish:conf_get("sysmon_handler.triggers.process.heap_size", Conf) of + off -> 0; + Bytes -> + WordSize = erlang:system_info(wordsize), + Bytes div WordSize + end +end}. + +%% @doc Whether ports with full input buffers will be counted as +%% busy. Ports can represent open files or network sockets. +%% @see sysmon_handler.thresholds.busy_ports +{mapping, "sysmon_handler.triggers.port", "sysmon_handler.busy_port", [ + {default, on}, + {datatype, flag}, + hidden +]}. + +%% @doc Whether distribution ports with full input buffers will be +%% counted as busy. Distribution ports connect Erlang nodes within a +%% single cluster. +%% @see sysmon_handler.thresholds.busy_ports +{mapping, "sysmon_handler.triggers.distribution_port", "sysmon_handler.busy_dist_port", [ + {default, on}, + {datatype, flag}, + hidden +]}. + % =============================== % Validators % =============================== |
