Tapper v0.3.1 Tapper.Id View Source

The ID used with the API; tracks nested spans.

Clients should consider this ID opaque!

Use destructure/1 to obtain trace parameters. NB special value :ignore produces no-ops in API functions.

Link to this section Summary

Functions

Destructure the id into external hex notation, for trace propagation purposes

Pop the last parent span id from the parent stack, returning updated Tapper Id

Push the current span id onto the parent stack, and set new span id, returning updated Tapper Id

is the trace with this id being sampled?

Generate a TraceId for testing; sample is true

Link to this section Types

Link to this type t() View Source
t ::
  %Tapper.Id{debug: boolean, origin_parent_id: Tapper.SpanId.t | :root, parent_ids: [Tapper.SpanId.t], sample: boolean, sampled: boolean, span_id: Tapper.SpanId.t, trace_id: Tapper.TraceId.t} |
  :ignore

Link to this section Functions

Link to this function destructure(id) View Source
destructure(Tapper.Id.t) :: {String.t, String.t, String.t, boolean, boolean}

Destructure the id into external hex notation, for trace propagation purposes.

Example

id = Tapper.start()

{trace_id_hex, span_id_hex, parent_span_id_hex, sampled_flag, debug_flag} =
  Tapper.Id.destructure(id)
Link to this function init(trace_id, span_id, parent_span_id, sample, debug) View Source
init(trace_id :: Tapper.TraceId.t, span_id :: Tapper.SpanId.t, parent_span_id :: Tapper.SpanId.t, sample :: boolean, debug :: boolean) :: t

Create id from trace context

Pop the last parent span id from the parent stack, returning updated Tapper Id

Push the current span id onto the parent stack, and set new span id, returning updated Tapper Id

Link to this function sampled?(id) View Source
sampled?(id :: t) :: boolean

is the trace with this id being sampled?

Link to this function test_id(parent_span_id \\ :root) View Source

Generate a TraceId for testing; sample is true