blob: 57c4edc3fe5ac0d9ce5b377869de4d0a93acf35c [file] [log] [blame]
%% @private
-module(jaegerl_tracer).
-export([start_span/1, start_span/2]).
-export([start_link/1]).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
-export_type([tracer/0]).
-export_type([start_span_option/0, start_span_options/0]).
-opaque tracer() :: #{}.
-type start_span_options() :: [start_span_option()].
-type start_span_option() :: {tracer, tracer()}.
-define(STATE, ?MODULE).
-record(?STATE,
{
watchings = [] :: [Span :: term()],
reporters = [] :: [module()]
}).
-spec start_link(jaegerl:tracer_id()) -> {ok, pid()} | {error, Reason :: term()}.
start_link(TracerId) ->
gen_server:start_link(jaegerl_local_ns:tracer_name(TracerId), ?MODULE, [], []).
-spec start_span(jaegerl:operation_name()) -> jaegerl_span:span().
start_span(OperationName) ->
start_span(OperationName, []).
-spec start_span(jaeger:operation_name(), start_span_options()) -> jaegerl_span:span().
start_span(OperationName, Options) ->
error(unimplemented, [OperationName, Options]).
%% @private
init([]) ->
{ok, #?STATE{}}.
%% @private
handle_call(Request, From, State) ->
{stop, {unknown_call, Request, From}, State}.
%% @private
handle_cast(Request, State) ->
{stop, {unknown_cast, Request}, State}.
%% @private
handle_info(Info, State) ->
{stop, {unknown_info, Info}, State}.
%% @private
terminate(_Reason, _State) ->
ok.
%% @private
code_change(_OldVsn, State, _Extra) ->
{ok, State}.