refactor: change failure log configuration schema

This commit is contained in:
Thales Macedo Garitezi 2024-03-19 10:04:18 -03:00
parent 2eac54bf54
commit c478e375f6
4 changed files with 17 additions and 9 deletions

View File

@ -216,7 +216,7 @@ evaluate_sql_check(Check, Validation, Message) ->
} = Check, } = Check,
#{ #{
name := Name, name := Name,
log_failure_at := FailureLogLevel log_failure := #{level := FailureLogLevel}
} = Validation, } = Validation,
{Data, _} = emqx_rule_events:eventmsg_publish(Message), {Data, _} = emqx_rule_events:eventmsg_publish(Message),
try emqx_rule_runtime:evaluate_select(Fields, Data, Conditions) of try emqx_rule_runtime:evaluate_select(Fields, Data, Conditions) of
@ -255,7 +255,7 @@ evaluate_schema_check(Check, Validation, #message{payload = Data}) ->
#{schema := SerdeName} = Check, #{schema := SerdeName} = Check,
#{ #{
name := Name, name := Name,
log_failure_at := FailureLogLevel log_failure := #{level := FailureLogLevel}
} = Validation, } = Validation,
ExtraArgs = ExtraArgs =
case Check of case Check of
@ -406,7 +406,7 @@ run_validations(Validations, Message) ->
Fun = fun(Validation, Acc) -> Fun = fun(Validation, Acc) ->
#{ #{
name := Name, name := Name,
log_failure_at := FailureLogLevel log_failure := #{level := FailureLogLevel}
} = Validation, } = Validation,
case run_validation(Validation, Message) of case run_validation(Validation, Message) of
ok -> ok ->

View File

@ -78,10 +78,10 @@ fields(validation) ->
hoconsc:enum([drop, disconnect]), hoconsc:enum([drop, disconnect]),
#{desc => ?DESC("failure_action"), required => true} #{desc => ?DESC("failure_action"), required => true}
)}, )},
{log_failure_at, {log_failure,
mk( mk(
hoconsc:enum([error, warning, notice, info, debug]), ref(log_failure),
#{desc => ?DESC("log_failure_at"), default => info} #{desc => ?DESC("log_failure_at"), default => #{}}
)}, )},
{checks, {checks,
mk( mk(
@ -100,6 +100,14 @@ fields(validation) ->
} }
)} )}
]; ];
fields(log_failure) ->
[
{level,
mk(
hoconsc:enum([error, warning, notice, info, debug]),
#{desc => ?DESC("log_failure_at"), default => info}
)}
];
fields(check_sql) -> fields(check_sql) ->
[ [
{type, mk(sql, #{default => sql, desc => ?DESC("check_sql_type")})}, {type, mk(sql, #{default => sql, desc => ?DESC("check_sql_type")})},

View File

@ -108,7 +108,7 @@ validation(Name, Checks, Overrides) ->
<<"topics">> => <<"t/+">>, <<"topics">> => <<"t/+">>,
<<"strategy">> => <<"all_pass">>, <<"strategy">> => <<"all_pass">>,
<<"failure_action">> => <<"drop">>, <<"failure_action">> => <<"drop">>,
<<"log_failure_at">> => <<"warning">>, <<"log_failure">> => #{<<"level">> => <<"warning">>},
<<"checks">> => Checks <<"checks">> => Checks
}, },
emqx_utils_maps:deep_merge(Default, Overrides). emqx_utils_maps:deep_merge(Default, Overrides).

View File

@ -38,7 +38,7 @@ validation(Name, Checks, Overrides) ->
<<"topics">> => <<"t/+">>, <<"topics">> => <<"t/+">>,
<<"strategy">> => <<"all_pass">>, <<"strategy">> => <<"all_pass">>,
<<"failure_action">> => <<"drop">>, <<"failure_action">> => <<"drop">>,
<<"log_failure_at">> => <<"warning">>, <<"log_failure">> => #{<<"level">> => <<"warning">>},
<<"checks">> => Checks <<"checks">> => Checks
}, },
emqx_utils_maps:deep_merge(Default, Overrides). emqx_utils_maps:deep_merge(Default, Overrides).
@ -54,7 +54,7 @@ sql_check(SQL) ->
eval_sql(Message, SQL) -> eval_sql(Message, SQL) ->
{ok, Check} = emqx_message_validation:parse_sql_check(SQL), {ok, Check} = emqx_message_validation:parse_sql_check(SQL),
Validation = #{log_failure_at => warning, name => <<"validation">>}, Validation = #{log_failure => #{level => warning}, name => <<"validation">>},
emqx_message_validation:evaluate_sql_check(Check, Validation, Message). emqx_message_validation:evaluate_sql_check(Check, Validation, Message).
message() -> message() ->