feat: add stop after render and after render trace to pgsql action

This commit is contained in:
Kjell Winblad 2024-04-23 11:09:08 +02:00
parent 1f676ce035
commit b02ed4e6ec
2 changed files with 16 additions and 5 deletions

View File

@ -87,7 +87,7 @@ unsubscribe(<<"$SYS/", _/binary>>, _SubOpts) ->
unsubscribe(Topic, SubOpts) -> unsubscribe(Topic, SubOpts) ->
?TRACE("UNSUBSCRIBE", "unsubscribe", #{topic => Topic, sub_opts => SubOpts}). ?TRACE("UNSUBSCRIBE", "unsubscribe", #{topic => Topic, sub_opts => SubOpts}).
rendered_action_template(ActionID, RenderResult) -> rendered_action_template(ActionID, RenderResult) when is_binary(ActionID) ->
TraceResult = ?TRACE( TraceResult = ?TRACE(
"QUERY_RENDER", "QUERY_RENDER",
"action_template_rendered", "action_template_rendered",
@ -111,7 +111,10 @@ rendered_action_template(ActionID, RenderResult) ->
_ -> _ ->
ok ok
end, end,
TraceResult. TraceResult;
rendered_action_template(_ActionID, _RenderResult) ->
%% We do nothing if we don't get a valid Action ID
ok.
log(List, Msg, Meta) -> log(List, Msg, Meta) ->
log(debug, List, Msg, Meta). log(debug, List, Msg, Meta).

View File

@ -304,7 +304,7 @@ on_query(
}), }),
Type = pgsql_query_type(TypeOrKey), Type = pgsql_query_type(TypeOrKey),
{NameOrSQL2, Data} = proc_sql_params(TypeOrKey, NameOrSQL, Params, State), {NameOrSQL2, Data} = proc_sql_params(TypeOrKey, NameOrSQL, Params, State),
Res = on_sql_query(InstId, PoolName, Type, NameOrSQL2, Data), Res = on_sql_query(TypeOrKey, InstId, PoolName, Type, NameOrSQL2, Data),
?tp(postgres_bridge_connector_on_query_return, #{instance_id => InstId, result => Res}), ?tp(postgres_bridge_connector_on_query_return, #{instance_id => InstId, result => Res}),
handle_result(Res). handle_result(Res).
@ -337,7 +337,7 @@ on_batch_query(
{_Statement, RowTemplate} -> {_Statement, RowTemplate} ->
PrepStatement = get_prepared_statement(BinKey, State), PrepStatement = get_prepared_statement(BinKey, State),
Rows = [render_prepare_sql_row(RowTemplate, Data) || {_Key, Data} <- BatchReq], Rows = [render_prepare_sql_row(RowTemplate, Data) || {_Key, Data} <- BatchReq],
case on_sql_query(InstId, PoolName, execute_batch, PrepStatement, Rows) of case on_sql_query(Key, InstId, PoolName, execute_batch, PrepStatement, Rows) of
{error, _Error} = Result -> {error, _Error} = Result ->
handle_result(Result); handle_result(Result);
{_Column, Results} -> {_Column, Results} ->
@ -386,7 +386,15 @@ get_prepared_statement(Key, #{prepares := PrepStatements}) ->
BinKey = to_bin(Key), BinKey = to_bin(Key),
maps:get(BinKey, PrepStatements). maps:get(BinKey, PrepStatements).
on_sql_query(InstId, PoolName, Type, NameOrSQL, Data) -> on_sql_query(Key, InstId, PoolName, Type, NameOrSQL, Data) ->
emqx_trace:rendered_action_template(
Key,
#{
statement_type => Type,
statement_or_name => NameOrSQL,
data => Data
}
),
try ecpool:pick_and_do(PoolName, {?MODULE, Type, [NameOrSQL, Data]}, no_handover) of try ecpool:pick_and_do(PoolName, {?MODULE, Type, [NameOrSQL, Data]}, no_handover) of
{error, Reason} -> {error, Reason} ->
?tp( ?tp(