Skip to content

Commit

Permalink
split metrics out to experimental applications
Browse files Browse the repository at this point in the history
  • Loading branch information
tsloughter committed Mar 4, 2021
1 parent b3336e2 commit 7b6a640
Show file tree
Hide file tree
Showing 64 changed files with 792 additions and 78 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/elixir.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
- uses: erlef/setup-elixir@v1
with:
otp-version: '23.1'
elixir-version: '1.11.1'
Expand All @@ -22,7 +22,7 @@ jobs:
with:
path: |
apps/opentelemetry_api/deps
key: v2-${{ hashFiles('apps/opentelemetry_api/mix.lock') }}
key: v3-${{ hashFiles('apps/opentelemetry_api/mix.lock') }}
- run: mix format --check-formatted
- run: mix deps.get
working-directory: apps/opentelemetry_api/
Expand All @@ -42,7 +42,7 @@ jobs:
OTEL_TRACES_EXPORTER: "none"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
- uses: erlef/setup-elixir@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir }}
Expand All @@ -67,7 +67,7 @@ jobs:
working-directory: apps/opentelemetry_api/
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
- uses: erlef/setup-elixir@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir }}
Expand All @@ -77,7 +77,7 @@ jobs:
path: |
apps/opentelemetry_api/deps
apps/opentelemetry_api/_build
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir }}-v2-${{ hashFiles(format('{0}{1}', github.workspace, '/apps/opentelemetry_api/mix.lock')) }}
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir }}-v3-${{ hashFiles(format('{0}{1}', github.workspace, '/apps/opentelemetry_api/mix.lock')) }}
restore-keys: |
${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir }}-
- run: mix deps.get
Expand Down Expand Up @@ -107,7 +107,7 @@ jobs:
working-directory: apps/opentelemetry_api/
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
- uses: erlef/setup-elixir@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir }}
Expand All @@ -117,7 +117,7 @@ jobs:
path: |
apps/opentelemetry_api/deps
apps/opentelemetry_api/_build
key: ${{ runner.os }}-dialyzer-${{ matrix.otp_version }}-${{ matrix.elixir }}-v2-${{ hashFiles('apps/opentelemetry_api/mix.lock') }}
key: ${{ runner.os }}-dialyzer-${{ matrix.otp_version }}-${{ matrix.elixir }}-v3-${{ hashFiles('apps/opentelemetry_api/mix.lock') }}
restore-keys: |
${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir }}-
- run: mix deps.get
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/erlang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,18 @@ jobs:
- uses: actions/checkout@v2
- name: Run Collector
run: docker-compose up -d
- uses: gleam-lang/setup-erlang@v1.0.0
- uses: erlef/setup-elixir@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: '1.11.1'
- uses: actions/cache@v2
name: Cache
with:
path: |
_build
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ hashFiles(format('rebar.lock')) }}-1
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ hashFiles(format('rebar.lock')) }}-2
restore-keys: |
${{ runner.os }}-build-${{ matrix.otp_version }}-1-
${{ runner.os }}-build-${{ matrix.otp_version }}-2-
- name: Compile
run: rebar3 compile
- name: EUnit tests
Expand Down Expand Up @@ -72,17 +73,18 @@ jobs:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
- uses: gleam-lang/setup-erlang@v1.0.0
- uses: erlef/setup-elixir@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: '1.11.1'
- uses: actions/cache@v2
name: Cache
with:
path: |
_build
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ hashFiles('rebar.lock') }}-1
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ hashFiles('rebar.lock') }}-2
restore-keys: |
${{ runner.os }}-dialyzer-${{ matrix.otp_version }}-1-
${{ runner.os }}-dialyzer-${{ matrix.otp_version }}-2-
- name: Compile
run: rebar3 compile
- name: Dialyzer
Expand Down
2 changes: 1 addition & 1 deletion apps/opentelemetry/src/opentelemetry.app.src
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{application, opentelemetry,
[{description, "OpenTelemetry stats collection and distributed tracing framework for Erlang"},
[{description, "Implementation of stable OpenTelemetry signals"},
{vsn, "git"},
{registered, []},
{mod, {opentelemetry_app, []}},
Expand Down
1 change: 0 additions & 1 deletion apps/opentelemetry/src/opentelemetry_app.erl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ prep_stop(_State) ->
%% This is to ensure no crashes if the sdk isn't the last
%% thing to shutdown or if the opentelemetry application crashed.
opentelemetry:set_default_tracer({otel_tracer_noop, []}),
opentelemetry:set_default_meter({otel_meter_noop, []}),
ok.

stop(_State) ->
Expand Down
10 changes: 1 addition & 9 deletions apps/opentelemetry/src/opentelemetry_sup.erl
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,6 @@ init([Opts]) ->
type => worker,
modules => [otel_tracer_provider, otel_tracer_server]},

%%
MetricSup = #{id => otel_metric_sup,
start => {otel_metric_sup, start_link, [Opts]},
restart => permanent,
shutdown => 5000,
type => supervisor,
modules => [otel_metric_sup]},

Processors = proplists:get_value(processors, Opts, []),
BatchProcessorOpts = proplists:get_value(otel_batch_processor, Processors, #{}),
BatchProcessorOpts1 = case proplists:get_value(traces_exporter, Opts) of
Expand All @@ -81,6 +73,6 @@ init([Opts]) ->
%% `TracerServer' *must* start before the `BatchProcessor'
%% `BatchProcessor' relies on getting the `Resource' from
%% the `TracerServer' process
ChildSpecs = [Detectors, MetricSup, TracerServer, BatchProcessor, SpanSup],
ChildSpecs = [Detectors, TracerServer, BatchProcessor, SpanSup],

{ok, {SupFlags, ChildSpecs}}.
2 changes: 1 addition & 1 deletion apps/opentelemetry_api/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.0
1.0.0-rc.1
3 changes: 0 additions & 3 deletions apps/opentelemetry_api/lib/open_telemetry.ex
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,6 @@ defmodule OpenTelemetry do
defdelegate register_tracer(name, vsn), to: :opentelemetry
defdelegate set_default_tracer(t), to: :opentelemetry

@spec register_application_meter(atom()) :: boolean()
defdelegate register_application_meter(name), to: :opentelemetry

# Helpers to build OpenTelemetry structured types

@doc """
Expand Down
39 changes: 6 additions & 33 deletions apps/opentelemetry_api/src/opentelemetry.erl
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,10 @@

-export([set_default_tracer/1,
set_tracer/2,
set_meter/2,
set_default_meter/1,
register_tracer/2,
register_application_tracer/1,
register_meter/2,
register_application_meter/1,
get_tracer/0,
get_tracer/1,
get_meter/0,
get_meter/1,
set_text_map_extractors/1,
get_text_map_extractors/0,
set_text_map_injectors/1,
Expand All @@ -55,14 +49,15 @@
event/3,
events/1,
status/2,
verify_and_set_term/3,
verify_and_set_term/4,
generate_trace_id/0,
generate_span_id/0]).

-include("opentelemetry.hrl").
-include_lib("kernel/include/logger.hrl").

-export_type([tracer/0,
meter/0,
trace_id/0,
span_id/0,
trace_flags/0,
Expand All @@ -86,7 +81,6 @@
text_map/0]).

-type tracer() :: {module(), term()}.
-type meter() :: {module(), term()}.

-type trace_id() :: non_neg_integer().
-type span_id() :: non_neg_integer().
Expand Down Expand Up @@ -137,14 +131,6 @@ set_default_tracer(Tracer) ->
set_tracer(Name, Tracer) ->
verify_and_set_term(Tracer, Name, otel_tracer).

-spec set_default_meter(meter()) -> boolean().
set_default_meter(Meter) ->
verify_and_set_term(Meter, default_meter, otel_meter).

-spec set_meter(atom(), meter()) -> boolean().
set_meter(Name, Meter) ->
verify_and_set_term(Meter, Name, otel_meter).

-spec register_tracer(atom(), string()) -> boolean().
register_tracer(Name, Vsn) ->
otel_tracer_provider:register_tracer(Name, Vsn).
Expand All @@ -153,14 +139,6 @@ register_tracer(Name, Vsn) ->
register_application_tracer(Name) ->
otel_tracer_provider:register_application_tracer(Name).

-spec register_meter(atom(), string()) -> boolean().
register_meter(Name, Vsn) ->
otel_meter_provider:register_meter(Name, Vsn).

-spec register_application_meter(atom()) -> boolean().
register_application_meter(Name) ->
otel_meter_provider:register_application_meter(Name).

-spec get_tracer() -> tracer().
get_tracer() ->
persistent_term:get({?MODULE, default_tracer}, {otel_tracer_noop, []}).
Expand All @@ -169,14 +147,6 @@ get_tracer() ->
get_tracer(Name) ->
persistent_term:get({?MODULE, Name}, get_tracer()).

-spec get_meter() -> meter().
get_meter() ->
persistent_term:get({?MODULE, default_meter}, {otel_meter_noop, []}).

-spec get_meter(atom()) -> meter().
get_meter(Name) ->
persistent_term:get({?MODULE, Name}, get_meter()).

set_text_map_extractors(List) when is_list(List) ->
persistent_term:put({?MODULE, text_map_extractors}, List);
set_text_map_extractors(_) ->
Expand Down Expand Up @@ -360,9 +330,12 @@ uniform(X) ->

-spec verify_and_set_term(module() | {module(), term()}, term(), atom()) -> boolean().
verify_and_set_term(Module, TermKey, Behaviour) ->
verify_and_set_term(?MODULE, Module, TermKey, Behaviour).

verify_and_set_term(AppKey, Module, TermKey, Behaviour) ->
case verify_module_exists(Module) of
true ->
persistent_term:put({?MODULE, TermKey}, Module),
persistent_term:put({AppKey, TermKey}, Module),
true;
false ->
?LOG_WARNING("Module ~p does not exist. "
Expand Down
19 changes: 19 additions & 0 deletions apps/opentelemetry_api_experimental/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.rebar3
_*
.eunit
*.o
*.beam
*.plt
*.swp
*.swo
.erlang.cookie
ebin
log
erl_crash.dump
.rebar
logs
_build
.idea
*.iml
rebar3.crashdump
*~
Loading

0 comments on commit 7b6a640

Please sign in to comment.