Fix bad config type of long_gc (#2504)
This commit is contained in:
parent
7b356e80f4
commit
7e0ac5bd34
|
@ -2222,19 +2222,43 @@ broker.route_batch_clean = off
|
||||||
## System Monitor
|
## System Monitor
|
||||||
##--------------------------------------------------------------------
|
##--------------------------------------------------------------------
|
||||||
|
|
||||||
## Enable Long GC monitoring.
|
## Enable Long GC monitoring. Disable if the value is 0.
|
||||||
## Notice: don't enable the monitor in production for:
|
## Notice: don't enable the monitor in production for:
|
||||||
## https://github.com/erlang/otp/blob/feb45017da36be78d4c5784d758ede619fa7bfd3/erts/emulator/beam/erl_gc.c#L421
|
## https://github.com/erlang/otp/blob/feb45017da36be78d4c5784d758ede619fa7bfd3/erts/emulator/beam/erl_gc.c#L421
|
||||||
##
|
##
|
||||||
## Value: true | false
|
## Value: Duration
|
||||||
sysmon.long_gc = false
|
## - h: hour
|
||||||
|
## - m: minute
|
||||||
|
## - s: second
|
||||||
|
## - ms: milliseconds
|
||||||
|
##
|
||||||
|
## Examples:
|
||||||
|
## - 2h: 2 hours
|
||||||
|
## - 30m: 30 minutes
|
||||||
|
## - 0.1s: 0.1 seconds
|
||||||
|
## - 100ms : 100 milliseconds
|
||||||
|
##
|
||||||
|
## Default: 0ms
|
||||||
|
sysmon.long_gc = 0
|
||||||
|
|
||||||
## Enable Long Schedule(ms) monitoring.
|
## Enable Long Schedule(ms) monitoring.
|
||||||
##
|
##
|
||||||
## See: http://erlang.org/doc/man/erlang.html#system_monitor-2
|
## See: http://erlang.org/doc/man/erlang.html#system_monitor-2
|
||||||
##
|
##
|
||||||
## Value: Number
|
## Value: Duration
|
||||||
sysmon.long_schedule = 240
|
## - h: hour
|
||||||
|
## - m: minute
|
||||||
|
## - s: second
|
||||||
|
## - ms: milliseconds
|
||||||
|
##
|
||||||
|
## Examples:
|
||||||
|
## - 2h: 2 hours
|
||||||
|
## - 30m: 30 minutes
|
||||||
|
## - 0.1s: 0.1 seconds
|
||||||
|
## - 100ms: 100 milliseconds
|
||||||
|
##
|
||||||
|
## Default: 0ms
|
||||||
|
sysmon.long_schedule = 240ms
|
||||||
|
|
||||||
## Enable Large Heap monitoring.
|
## Enable Large Heap monitoring.
|
||||||
##
|
##
|
||||||
|
|
|
@ -2074,14 +2074,14 @@ end}.
|
||||||
%% @doc Long GC, don't monitor in production mode for:
|
%% @doc Long GC, don't monitor in production mode for:
|
||||||
%% https://github.com/erlang/otp/blob/feb45017da36be78d4c5784d758ede619fa7bfd3/erts/emulator/beam/erl_gc.c#L421
|
%% https://github.com/erlang/otp/blob/feb45017da36be78d4c5784d758ede619fa7bfd3/erts/emulator/beam/erl_gc.c#L421
|
||||||
{mapping, "sysmon.long_gc", "emqx.sysmon", [
|
{mapping, "sysmon.long_gc", "emqx.sysmon", [
|
||||||
{default, false},
|
{default, 0},
|
||||||
{datatype, {enum, [true, false]}}
|
{datatype, [integer, {duration, ms}]}
|
||||||
]}.
|
]}.
|
||||||
|
|
||||||
%% @doc Long Schedule(ms)
|
%% @doc Long Schedule(ms)
|
||||||
{mapping, "sysmon.long_schedule", "emqx.sysmon", [
|
{mapping, "sysmon.long_schedule", "emqx.sysmon", [
|
||||||
{default, 1000},
|
{default, 240},
|
||||||
{datatype, integer}
|
{datatype, [integer, {duration, ms}]}
|
||||||
]}.
|
]}.
|
||||||
|
|
||||||
%% @doc Large Heap
|
%% @doc Large Heap
|
||||||
|
|
|
@ -33,9 +33,9 @@
|
||||||
, code_change/3
|
, code_change/3
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-type(option() :: {long_gc, false | pos_integer()}
|
-type(option() :: {long_gc, non_neg_integer()}
|
||||||
| {long_schedule, false | pos_integer()}
|
| {long_schedule, non_neg_integer()}
|
||||||
| {large_heap, pos_integer()}
|
| {large_heap, non_neg_integer()}
|
||||||
| {busy_port, boolean()}
|
| {busy_port, boolean()}
|
||||||
| {busy_dist_port, boolean()}).
|
| {busy_dist_port, boolean()}).
|
||||||
|
|
||||||
|
@ -66,11 +66,11 @@ parse_opt(Opts) ->
|
||||||
parse_opt(Opts, []).
|
parse_opt(Opts, []).
|
||||||
parse_opt([], Acc) ->
|
parse_opt([], Acc) ->
|
||||||
Acc;
|
Acc;
|
||||||
parse_opt([{long_gc, false}|Opts], Acc) ->
|
parse_opt([{long_gc, 0}|Opts], Acc) ->
|
||||||
parse_opt(Opts, Acc);
|
parse_opt(Opts, Acc);
|
||||||
parse_opt([{long_gc, Ms}|Opts], Acc) when is_integer(Ms) ->
|
parse_opt([{long_gc, Ms}|Opts], Acc) when is_integer(Ms) ->
|
||||||
parse_opt(Opts, [{long_gc, Ms}|Acc]);
|
parse_opt(Opts, [{long_gc, Ms}|Acc]);
|
||||||
parse_opt([{long_schedule, false}|Opts], Acc) ->
|
parse_opt([{long_schedule, 0}|Opts], Acc) ->
|
||||||
parse_opt(Opts, Acc);
|
parse_opt(Opts, Acc);
|
||||||
parse_opt([{long_schedule, Ms}|Opts], Acc) when is_integer(Ms) ->
|
parse_opt([{long_schedule, Ms}|Opts], Acc) when is_integer(Ms) ->
|
||||||
parse_opt(Opts, [{long_schedule, Ms}|Acc]);
|
parse_opt(Opts, [{long_schedule, Ms}|Acc]);
|
||||||
|
@ -177,4 +177,3 @@ safe_publish(Event, WarnMsg) ->
|
||||||
sysmon_msg(Topic, Payload) ->
|
sysmon_msg(Topic, Payload) ->
|
||||||
Msg = emqx_message:make(?SYSMON, Topic, Payload),
|
Msg = emqx_message:make(?SYSMON, Topic, Payload),
|
||||||
emqx_message:set_flag(sys, Msg).
|
emqx_message:set_flag(sys, Msg).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue