docs(schema): Add documentation for prometheus and logger

This commit is contained in:
ieQu1 2022-03-23 10:51:54 +01:00
parent d1e8fefa1f
commit ee805f12a6
3 changed files with 64 additions and 15 deletions

View File

@ -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.<br/>"
"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()]),

View File

@ -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).

View File

@ -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