44 lines
1.4 KiB
Erlang
44 lines
1.4 KiB
Erlang
-module(log_tracer).
|
|
|
|
-include_lib("emqx_resource/include/emqx_resource_behaviour.hrl").
|
|
|
|
%% callbacks of behaviour emqx_resource
|
|
-export([ on_start/2
|
|
, on_stop/2
|
|
, on_query/4
|
|
, on_health_check/2
|
|
, on_api_reply_format/1
|
|
, on_config_merge/3
|
|
]).
|
|
|
|
%% callbacks for emqx_resource config schema
|
|
-export([schema/0]).
|
|
|
|
schema() ->
|
|
log_tracer_schema:schema().
|
|
|
|
on_start(InstId, Config) ->
|
|
io:format("== the demo log tracer ~p started.~nconfig: ~p~n", [InstId, Config]),
|
|
{ok, #{logger_handler_id => abc, health_checked => 0}}.
|
|
|
|
on_stop(InstId, State) ->
|
|
io:format("== the demo log tracer ~p stopped.~nstate: ~p~n", [InstId, State]),
|
|
ok.
|
|
|
|
on_query(InstId, Request, AfterQuery, State) ->
|
|
io:format("== the demo log tracer ~p received request: ~p~nstate: ~p~n",
|
|
[InstId, Request, State]),
|
|
emqx_resource:query_success(AfterQuery),
|
|
"this is a demo log messages...".
|
|
|
|
on_health_check(InstId, State = #{health_checked := Checked}) ->
|
|
NState = State#{health_checked => Checked + 1},
|
|
io:format("== the demo log tracer ~p is working well~nstate: ~p~n", [InstId, NState]),
|
|
{ok, NState}.
|
|
|
|
on_api_reply_format(#{id := Id, status := Status, state := #{health_checked := NChecked}}) ->
|
|
#{id => Id, status => Status, checked_count => NChecked}.
|
|
|
|
on_config_merge(OldConfig, NewConfig, _Params) ->
|
|
maps:merge(OldConfig, NewConfig).
|