Current section
Files
Jump to
Current section
Files
src/telemetry/temporal_sdk_telemetry_utils.erl
-module(temporal_sdk_telemetry_utils).
% elp:ignore W0012 W0040
-moduledoc false.
-export([
attach_many/4
]).
-define(EVENT_NAME_PREFIX, temporal_sdk).
-spec attach_many(
Events :: [telemetry:event_name()],
HandlerId :: telemetry:handler_id(),
HandleEventFun :: telemetry:handler_function(),
HandleEventFunConfig :: telemetry:handler_config()
) -> ok.
attach_many([], _HandlerId, _HandleEventFun, _HandleEventFunConfig) ->
ok;
attach_many(Events, HandlerId, HandleEventFun, HandleEventFunConfig) ->
ok = telemetry:attach_many(
HandlerId, map_events_names(Events), HandleEventFun, HandleEventFunConfig
).
%% -------------------------------------------------------------------------------------------------
%% private
map_events_names(Events) ->
lists:foldl(
fun(E, Acc) when is_list(E), is_list(Acc) ->
E1 = lists:append([[?EVENT_NAME_PREFIX], E, [stop]]),
E2 = lists:append([[?EVENT_NAME_PREFIX], E, [exception]]),
[E1 | [E2 | Acc]]
end,
[],
Events
).