diff --git a/apps/emqx_conf/src/emqx_conf_schema.erl b/apps/emqx_conf/src/emqx_conf_schema.erl index 7fb9d730a..826b73461 100644 --- a/apps/emqx_conf/src/emqx_conf_schema.erl +++ b/apps/emqx_conf/src/emqx_conf_schema.erl @@ -651,10 +651,12 @@ fields("log_rotation") -> [ {"enable", sc(boolean(), #{ default => true + , desc => "Enable log rotation feature." })} , {"count", sc(range(1, 2048), #{ default => 10 + , desc => "Maximum number of log files." })} ]; @@ -662,18 +664,23 @@ fields("log_overload_kill") -> [ {"enable", sc(boolean(), #{ default => true + , desc => "Enable log handler overload kill feature." })} , {"mem_size", sc(emqx_schema:bytesize(), #{ default => "30MB" + , desc => "Maximum memory size that the handler process is allowed to use." })} , {"qlen", sc(integer(), #{ default => 20000 + , desc => "Maximum allowed queue length." })} , {"restart_after", sc(hoconsc:union([emqx_schema:duration(), infinity]), #{ default => "5s" + , desc => "If the handler is terminated, it restarts automatically after a " + "delay specified in milliseconds. The value `infinity` prevents restarts." })} ]; @@ -681,14 +688,20 @@ fields("log_burst_limit") -> [ {"enable", sc(boolean(), #{ default => true + , desc => "Enable log burst control feature." })} , {"max_count", sc(integer(), #{ default => 10000 + , desc => "Maximum number of log events to handle within a `window_time` interval. " + "After the limit is reached, successive events are dropped " + "until the end of the `window_time`." })} , {"window_time", sc(emqx_schema:duration(), - #{default => "1s"})} + #{ default => "1s" + , desc => "See `max_count`." + })} ]; fields("authorization") -> @@ -801,6 +814,7 @@ log_handler_common_confs() -> [ {"enable", sc(boolean(), #{ default => false + , desc => "Enable this log handler." })} , {"level", sc(log_level(), @@ -811,6 +825,7 @@ log_handler_common_confs() -> , {"time_offset", sc(string(), #{ default => "system" + , desc => "The time offset to be used when formatting the timestamp." })} , {"chars_limit", sc(hoconsc:union([unlimited, range(1, inf)]), @@ -833,24 +848,34 @@ log_handler_common_confs() -> , {"sync_mode_qlen", sc(integer(), #{ default => 100 + , desc => "As long as the number of buffered log events is lower than this value, " + "all log events are handled asynchronously." })} , {"drop_mode_qlen", sc(integer(), #{ default => 3000 + , desc => "When the number of buffered log events is larger than this value, " + "the new log events are dropped.
" + "When drop mode is activated or deactivated, a message is printed in " + "the logs." })} , {"flush_qlen", sc(integer(), #{ default => 8000 + , desc => "If the number of buffered log events grows larger than this threshold, " + "a flush (delete) operation takes place. " + "To flush events, the handler discards the buffered log messages without logging." })} , {"overload_kill", - sc(ref("log_overload_kill"), - #{})} + sc(ref("log_overload_kill"), #{})} , {"burst_limit", - sc(ref("log_burst_limit"), - #{})} + sc(ref("log_burst_limit"), #{})} , {"supervisor_reports", sc(hoconsc:enum([error, progress]), #{ default => error + , desc => "Type of supervisor reports that are logged.\n" + " - `error`: only log errors in the Erlang processes.\n" + " - `progress`: log process startup." })} , {"max_depth", sc(hoconsc:union([unlimited, non_neg_integer()]), diff --git a/apps/emqx_prometheus/src/emqx_prometheus_schema.erl b/apps/emqx_prometheus/src/emqx_prometheus_schema.erl index 17387e06d..5434ef1f1 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus_schema.erl +++ b/apps/emqx_prometheus/src/emqx_prometheus_schema.erl @@ -28,9 +28,21 @@ namespace() -> "prometheus". roots() -> ["prometheus"]. fields("prometheus") -> - [ {push_gateway_server, sc(string(), #{default => "http://127.0.0.1:9091", required => true})} - , {interval, sc(emqx_schema:duration_ms(), #{default => "15s", required => true})} - , {enable, sc(boolean(), #{default => false, required => true})} + [ {push_gateway_server, sc(string(), + #{ default => "http://127.0.0.1:9091" + , required => true + , desc => "URL of Prometheus pushgateway." + })} + , {interval, sc(emqx_schema:duration_ms(), + #{ default => "15s" + , required => true + , desc => "Data reporting interval in milliseconds." + })} + , {enable, sc(boolean(), + #{ default => false + , required => true + , desc => "Enable reporting of metrics via Prometheus Pushgateway." + })} ]. sc(Type, Meta) -> hoconsc:mk(Type, Meta). diff --git a/apps/emqx_statsd/src/emqx_statsd_schema.erl b/apps/emqx_statsd/src/emqx_statsd_schema.erl index 09522870d..0d6eea3fc 100644 --- a/apps/emqx_statsd/src/emqx_statsd_schema.erl +++ b/apps/emqx_statsd/src/emqx_statsd_schema.erl @@ -33,21 +33,33 @@ namespace() -> "statsd". roots() -> ["statsd"]. fields("statsd") -> - [ {enable, hoconsc:mk(boolean(), #{default => false, required => true})} + [ {enable, hoconsc:mk(boolean(), + #{ default => false + , required => true + , desc => "Enable statsd" + })} , {server, fun server/1} - , {sample_time_interval, fun duration_ms/1} - , {flush_time_interval, fun duration_ms/1} + , {sample_time_interval, fun sample_interval/1} + , {flush_time_interval, fun flush_interval/1} ]. server(type) -> emqx_schema:ip_port(); server(required) -> true; server(default) -> "127.0.0.1:8125"; +server(desc) -> "URL of the statsd gateway."; server(_) -> undefined. -duration_ms(type) -> emqx_schema:duration_ms(); -duration_ms(required) -> true; -duration_ms(default) -> "10s"; -duration_ms(_) -> undefined. +sample_interval(type) -> emqx_schema:duration_ms(); +sample_interval(required) -> true; +sample_interval(default) -> "10s"; +sample_interval(desc) -> "Data collection interval in milliseconds."; +sample_interval(_) -> undefined. + +flush_interval(type) -> emqx_schema:duration_ms(); +flush_interval(required) -> true; +flush_interval(default) -> "10s"; +flush_interval(desc) -> "Flush interval in milliseconds."; +flush_interval(_) -> undefined. to_ip_port(Str) -> case string:tokens(Str, ":") of