Skip to content

Commit

Permalink
move tracerprovider to the SDK only
Browse files Browse the repository at this point in the history
this better follows the spec
  • Loading branch information
tsloughter committed Apr 3, 2023
1 parent 62f6c94 commit 6d71b71
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 19 deletions.
2 changes: 1 addition & 1 deletion apps/opentelemetry/src/opentelemetry_app.erl
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ start(_StartType, _StartArgs) ->
SupResult = opentelemetry_sup:start_link(Config),

Resource = otel_resource_detector:get_resource(),
_ = opentelemetry:start_tracer_provider(?GLOBAL_TRACER_PROVIDER_NAME, Resource, Config),
_ = otel_tracer_provider_sup:start(?GLOBAL_TRACER_PROVIDER_NAME, Resource, Config),

%% must be done after the supervisor starts so that otel_tracer_server is running
%% TODO: make this work with release upgrades. Currently if an application's version
Expand Down
11 changes: 10 additions & 1 deletion apps/opentelemetry/src/otel_tracer_provider_sup.erl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@

-behaviour(supervisor).

-export([start_link/0]).
-export([start_link/0,
start/2,
start/3]).

-export([init/1]).

Expand All @@ -28,6 +30,13 @@
start_link() ->
supervisor:start_link({local, ?SERVER}, ?MODULE, []).

%% here to support deprecated function `opentelemetry:start_tracer_provider/2'
start(Name, Config) ->
supervisor:start_child(?MODULE, [Name, otel_resource:create([]), Config]).

start(Name, Resource, Config) ->
supervisor:start_child(?MODULE, [Name, Resource, Config]).

init([]) ->
SupFlags = #{strategy => simple_one_for_one,
intensity => 1,
Expand Down
16 changes: 8 additions & 8 deletions apps/opentelemetry/test/opentelemetry_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -632,14 +632,14 @@ multiple_processors(_Config) ->

multiple_tracer_providers(_Config) ->
Resource = otel_resource:create([{<<"a">>, <<"b">>}]),
?assertMatch({ok, _}, opentelemetry:start_tracer_provider(test_provider,
Resource,
#{id_generator => otel_id_generator,
sampler => {otel_sampler_always_on, []},
processors => [{otel_batch_processor, #{name => test_batch,
scheduled_delay_ms => 1,
exporter => {otel_exporter_pid, self()}}}],
deny_list => []})),
?assertMatch({ok, _}, otel_tracer_provider_sup:start(test_provider,
Resource,
#{id_generator => otel_id_generator,
sampler => {otel_sampler_always_on, []},
processors => [{otel_batch_processor, #{name => test_batch,
scheduled_delay_ms => 1,
exporter => {otel_exporter_pid, self()}}}],
deny_list => []})),


?assertEqual(Resource, otel_tracer_provider:resource(test_provider)),
Expand Down
10 changes: 6 additions & 4 deletions apps/opentelemetry_api/src/opentelemetry.erl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
%%%-------------------------------------------------------------------------
-module(opentelemetry).

-export([start_tracer_provider/3,
-export([start_tracer_provider/2,
set_default_tracer/1,
set_default_tracer/2,
create_application_tracers/1,
Expand Down Expand Up @@ -152,11 +152,13 @@
-define(TEXT_MAP_EXTRACTOR_KEY, {?MODULE, text_map_extractor}).
-define(TEXT_MAP_INJECTOR_KEY, {?MODULE, text_map_injector}).

-deprecated({start_tracer_provider, 2, "start the TracerProvider through the SDK"}).

-include("gradualizer.hrl").

-spec start_tracer_provider(atom(), otel_resource:t(), map()) -> {ok, pid() | undefined} | {error, term()}.
start_tracer_provider(Name, Resource, Config) ->
otel_tracer_provider:start(Name, Resource, Config).
-spec start_tracer_provider(atom(), map()) -> {ok, pid() | undefined} | {error, term()}.
start_tracer_provider(Name, Config) ->
otel_tracer_provider:start(Name, Config).

-spec set_default_tracer(tracer()) -> boolean().
set_default_tracer(Tracer) ->
Expand Down
10 changes: 5 additions & 5 deletions apps/opentelemetry_api/src/otel_tracer_provider.erl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
%%%-------------------------------------------------------------------------
-module(otel_tracer_provider).

-export([start/3,
-export([start/2,
get_tracer/3,
get_tracer/4,
resource/0,
Expand All @@ -31,10 +31,10 @@

-include("opentelemetry.hrl").

start(Name, Resource, Config) ->
%% SDK must register a simple one for one supervisor of tracer providers
%% under the name `otel_tracer_provider_sup'
supervisor:start_child(otel_tracer_provider_sup, [Name, Resource, Config]).
-deprecated({start, 2, "start the TracerProvider through the SDK"}).

start(Name, Config) ->
supervisor:start_child(otel_tracer_provider_sup, [Name, Config]).

-spec get_tracer(Name, Vsn, SchemaUrl) -> Tracer when
Name :: atom(),
Expand Down
3 changes: 3 additions & 0 deletions rebar.config
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
{xref_ignores, [opentelemetry_exporter, %% TODO: remove once metrics is moved to
otel_otlp_metrics, %% an experimental exporter app

{opentelemetry, start_tracer_provider, 2},
{otel_tracer_provider, start, 2},

opentelemetry_exporter_trace_service_pb,
opentelemetry_exporter_metrics_service_pb,
opentelemetry_exporter_logs_service_pb,
Expand Down

0 comments on commit 6d71b71

Please sign in to comment.