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", [ {"enable",
sc(boolean(), sc(boolean(),
#{ default => true #{ default => true
, desc => "Enable log rotation feature."
})} })}
, {"count", , {"count",
sc(range(1, 2048), sc(range(1, 2048),
#{ default => 10 #{ default => 10
, desc => "Maximum number of log files."
})} })}
]; ];
@ -662,18 +664,23 @@ fields("log_overload_kill") ->
[ {"enable", [ {"enable",
sc(boolean(), sc(boolean(),
#{ default => true #{ default => true
, desc => "Enable log handler overload kill feature."
})} })}
, {"mem_size", , {"mem_size",
sc(emqx_schema:bytesize(), sc(emqx_schema:bytesize(),
#{ default => "30MB" #{ default => "30MB"
, desc => "Maximum memory size that the handler process is allowed to use."
})} })}
, {"qlen", , {"qlen",
sc(integer(), sc(integer(),
#{ default => 20000 #{ default => 20000
, desc => "Maximum allowed queue length."
})} })}
, {"restart_after", , {"restart_after",
sc(hoconsc:union([emqx_schema:duration(), infinity]), sc(hoconsc:union([emqx_schema:duration(), infinity]),
#{ default => "5s" #{ 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", [ {"enable",
sc(boolean(), sc(boolean(),
#{ default => true #{ default => true
, desc => "Enable log burst control feature."
})} })}
, {"max_count", , {"max_count",
sc(integer(), sc(integer(),
#{ default => 10000 #{ 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", , {"window_time",
sc(emqx_schema:duration(), sc(emqx_schema:duration(),
#{default => "1s"})} #{ default => "1s"
, desc => "See `max_count`."
})}
]; ];
fields("authorization") -> fields("authorization") ->
@ -801,6 +814,7 @@ log_handler_common_confs() ->
[ {"enable", [ {"enable",
sc(boolean(), sc(boolean(),
#{ default => false #{ default => false
, desc => "Enable this log handler."
})} })}
, {"level", , {"level",
sc(log_level(), sc(log_level(),
@ -811,6 +825,7 @@ log_handler_common_confs() ->
, {"time_offset", , {"time_offset",
sc(string(), sc(string(),
#{ default => "system" #{ default => "system"
, desc => "The time offset to be used when formatting the timestamp."
})} })}
, {"chars_limit", , {"chars_limit",
sc(hoconsc:union([unlimited, range(1, inf)]), sc(hoconsc:union([unlimited, range(1, inf)]),
@ -833,24 +848,34 @@ log_handler_common_confs() ->
, {"sync_mode_qlen", , {"sync_mode_qlen",
sc(integer(), sc(integer(),
#{ default => 100 #{ 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", , {"drop_mode_qlen",
sc(integer(), sc(integer(),
#{ default => 3000 #{ 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", , {"flush_qlen",
sc(integer(), sc(integer(),
#{ default => 8000 #{ 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", , {"overload_kill",
sc(ref("log_overload_kill"), sc(ref("log_overload_kill"), #{})}
#{})}
, {"burst_limit", , {"burst_limit",
sc(ref("log_burst_limit"), sc(ref("log_burst_limit"), #{})}
#{})}
, {"supervisor_reports", , {"supervisor_reports",
sc(hoconsc:enum([error, progress]), sc(hoconsc:enum([error, progress]),
#{ default => error #{ 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", , {"max_depth",
sc(hoconsc:union([unlimited, non_neg_integer()]), sc(hoconsc:union([unlimited, non_neg_integer()]),

View File

@ -28,9 +28,21 @@ namespace() -> "prometheus".
roots() -> ["prometheus"]. roots() -> ["prometheus"].
fields("prometheus") -> fields("prometheus") ->
[ {push_gateway_server, sc(string(), #{default => "http://127.0.0.1:9091", required => true})} [ {push_gateway_server, sc(string(),
, {interval, sc(emqx_schema:duration_ms(), #{default => "15s", required => true})} #{ default => "http://127.0.0.1:9091"
, {enable, sc(boolean(), #{default => false, required => true})} , 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). sc(Type, Meta) -> hoconsc:mk(Type, Meta).

View File

@ -33,21 +33,33 @@ namespace() -> "statsd".
roots() -> ["statsd"]. roots() -> ["statsd"].
fields("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} , {server, fun server/1}
, {sample_time_interval, fun duration_ms/1} , {sample_time_interval, fun sample_interval/1}
, {flush_time_interval, fun duration_ms/1} , {flush_time_interval, fun flush_interval/1}
]. ].
server(type) -> emqx_schema:ip_port(); server(type) -> emqx_schema:ip_port();
server(required) -> true; server(required) -> true;
server(default) -> "127.0.0.1:8125"; server(default) -> "127.0.0.1:8125";
server(desc) -> "URL of the statsd gateway.";
server(_) -> undefined. server(_) -> undefined.
duration_ms(type) -> emqx_schema:duration_ms(); sample_interval(type) -> emqx_schema:duration_ms();
duration_ms(required) -> true; sample_interval(required) -> true;
duration_ms(default) -> "10s"; sample_interval(default) -> "10s";
duration_ms(_) -> undefined. 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) -> to_ip_port(Str) ->
case string:tokens(Str, ":") of case string:tokens(Str, ":") of