Spandex.Tracer behaviour (Spandex v3.1.0) View Source
A module that can be used to build your own tracer.
Example:
defmodule MyApp.Tracer do
use Spandex.Tracer, otp_app: :my_app
end
Link to this section Summary
Functions
A schema for the opts that a tracer accepts.
Link to this section Types
Link to this section Functions
A schema for the opts that a tracer accepts.
Opts
adapter(:atom) Required: The third party adapter to usedisabled?(:boolean): Allows for wholesale disabling a tracer - Default: falsestrategy(:atom): The storage and tracing strategy. Currently only supports local process dictionary. - Default: Spandex.Strategy.Pdictsender(:atom): Once a trace is complete, it is sent using this module. Defaults to thedefault_sender/0of the selected adaptertrace_key(:atom): Don't set manually. This option is passed automatically.
Span Creation
service(:atom) Required: The default service name to use for spans declared without a serviceenv(:string): A name used to identify the environment name, e.gprodordevelopmentservices([{:keyword, :atom}, :keyword]): A mapping of service name to the default span types. - Default: []completion_time(:integer)error(:keyword)http(:keyword)id(:any)name(:string)parent_id(:any)private(:keyword) - Default: []resource([:atom, :string])sql_query(:keyword)start(:integer)tags(:keyword) - Default: []trace_id(:any)type(:atom)
All tracer functions that take opts use this schema. This also accepts defaults for any value that can be given to a span.
Link to this section Callbacks
Specs
configure(opts()) :: :ok
Specs
continue_trace( span_name :: String.t(), trace_context :: Spandex.SpanContext.t(), opts() ) :: tagged_tuple(Spandex.Trace.t())
Specs
continue_trace_from_span(span_name(), span :: term(), opts()) :: tagged_tuple(Spandex.Trace.t())
Specs
current_context(opts()) :: {:ok, Spandex.SpanContext.t()} | {:error, :disabled} | {:error, :no_span_context} | {:error, :no_trace_context} | {:error, [Optimal.error()]}
Specs
current_span(opts()) :: nil | Spandex.Span.t()
Specs
current_span_id(opts()) :: nil | Spandex.id()
Specs
current_trace_id(opts()) :: nil | Spandex.id()
Specs
distributed_context(Plug.Conn.t(), opts()) :: tagged_tuple(map())
Specs
finish_span(opts()) :: tagged_tuple(Spandex.Span.t())
Specs
finish_trace(opts()) :: tagged_tuple(Spandex.Trace.t())
Specs
inject_context(Spandex.headers(), opts()) :: Spandex.headers()
Specs
Specs
span_error(error :: Exception.t(), stacktrace :: [term()], opts()) :: tagged_tuple(Spandex.Span.t())
Specs
start_span(span_name(), opts()) :: tagged_tuple(Spandex.Span.t())
Specs
start_trace(span_name(), opts()) :: tagged_tuple(Spandex.Trace.t())
Specs
Specs
update_span(opts()) :: tagged_tuple(Spandex.Span.t())
Specs
update_top_span(opts()) :: tagged_tuple(Spandex.Span.t())