Spandex v1.6.0 Spandex.Tracer behaviour 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 adaptertracer(: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.gprodordevelopment- Default: “unknown”services([{:keyword, :atom}, :keyword]): A mapping of service name to the default span types. For instance datadog knows about:db,:cacheand:web- Default: []id(:any)trace_id(:any)name(:string)http([:keyword, {:struct, Spandex.Span.Http}])error([:keyword, {:struct, Spandex.Span.Error}])completion_time(:any)parent_id(:any)resource([:atom, :string])sql_query([:keyword, {:struct, Spandex.Span.SqlQuery}])start(:any)type(:atom)tags(:keyword) - Default: []
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
Link to this callback
continue_trace(span_name, trace_id, span_id, opts)
View Source
continue_trace(span_name, trace_id :: term, span_id :: term, opts) :: tagged_tuple(Spandex.Trace.t)
Link to this callback
continue_trace_from_span(span_name, span, opts)
View Source
continue_trace_from_span(span_name, span :: term, opts) :: tagged_tuple(Spandex.Trace.t)
Link to this callback
distributed_context(arg0, opts)
View Source
distributed_context(Plug.Conn.t, opts) :: tagged_tuple(map)
Link to this callback
finish_span(opts)
View Source
finish_span(opts) :: tagged_tuple(Spandex.Span.t)
Link to this callback
finish_trace(opts)
View Source
finish_trace(opts) :: tagged_tuple(Spandex.Trace.t)
Link to this callback
span_error(error, opts)
View Source
span_error(error :: Exception.t, opts) :: tagged_tuple(Spandex.Span.t)
Link to this callback
start_span(span_name, opts)
View Source
start_span(span_name, opts) :: tagged_tuple(Spandex.Span.t)
Link to this callback
start_trace(span_name, opts)
View Source
start_trace(span_name, opts) :: tagged_tuple(Spandex.Trace.t)
Link to this callback
update_span(opts)
View Source
update_span(opts) :: tagged_tuple(Spandex.Span.t)
Link to this callback
update_top_span(opts)
View Source
update_top_span(opts) :: tagged_tuple(Spandex.Span.t)