summaryrefslogtreecommitdiff
path: root/priv
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2019-01-03 11:19:16 -0800
committerLuke Bakken <lbakken@pivotal.io>2019-01-07 12:57:52 -0800
commit2b934f3357eee5a23c3d7e26ba326864f1e05c0c (patch)
tree3d06a63b547f7260f59911657d2a7bb03f770113 /priv
parent180e8f3bd6c0adf55acfeb1c02659a9af93bc2be (diff)
downloadrabbitmq-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.schema97
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
% ===============================