OpenTelemetry API v0.4.0 OpenTelemetry.Tracer
This module contains macros for Tracer operations around the lifecycle of the Spans within a Trace.
The Tracer is able to start a new Span as a child of the active Span of the current process, set a different Span to be the current Span by passing the Span's context, end a Span or run a code block within the context of a newly started span that is ended when the code block completes.
The macros use the Tracer registered to the Application the module using the macro is included in,
assuming OpenTelemetry.register_application_tracer/1
has been called for the Application. If
not then the default Tracer is used.
require OpenTelemetry.Tracer
OpenTelemetry.Tracer.with_span "span-1" do
... do something ...
end
Link to this section Summary
Functions
Returns the currently active OpenTelemetry.tracer_ctx/0
.
Returns the currently active OpenTelemetry.span_ctx/0
.
End the Span. Sets the end timestamp for the currently active Span. This has no effect on any child Spans that may exist of this Span.
Takes a OpenTelemetry.span_ctx/0
and the Tracer sets it to the currently active Span.
Starts a new span but does not make it the current active span of the current process.
Starts a new span and makes it the current active span of the current process.
Creates a new span which is ended automatically when the block
completes.
Link to this section Types
start_opts()
start_opts() :: %{ optional(:parent) => OpenTelemetry.span() | OpenTelemetry.span_ctx(), optional(:attributes) => OpenTelemetry.attributes(), optional(:sampler) => :ot_sampler.sampler(), optional(:links) => OpenTelemetry.links(), optional(:is_recording) => boolean(), optional(:start_time) => :opentelemetry.timestamp(), optional(:kind) => OpenTelemetry.span_kind() }
Link to this section Functions
Returns the currently active OpenTelemetry.tracer_ctx/0
.
Returns the currently active OpenTelemetry.span_ctx/0
.
End the Span. Sets the end timestamp for the currently active Span. This has no effect on any child Spans that may exist of this Span.
The default Tracer in the OpenTelemetry Erlang/Elixir SDK will then set the parent, if there is a local parent of the current Span, to the current active Span.
Takes a OpenTelemetry.span_ctx/0
and the Tracer sets it to the currently active Span.
Starts a new span but does not make it the current active span of the current process.
This is particularly useful when creating a child Span that is for a new process. Before spawning
the new process start an inactive Span, which uses the current context as the parent, then
pass this new SpanContext as an argument to the spawned function and in that function use
set_span/1
.
The current active Span is used as the parent of the created Span unless a parent
is given in the
start_opts/0
argument or there is no active Span. If there is neither a current Span or a
parent
option given then the Tracer checks for an extracted SpanContext to use as the parent. If
there is also no extracted context then the created Span is a root Span.
Starts a new span and makes it the current active span of the current process.
The current active Span is used as the parent of the created Span unless a parent
is given in the
start_opts/0
argument or there is no active Span. If there is neither a current Span or a
parent
option given then the Tracer checks for an extracted SpanContext to use as the parent. If
there is also no extracted context then the created Span is a root Span.
Creates a new span which is ended automatically when the block
completes.
See start_span/2
and end_span/0
.