O11y.Span (O11y v0.2.10)
Struct version of the erlang record definition for span, along with its dependent entities.
The record is defined here: https://github.com/open-telemetry/opentelemetry-erlang/blob/main/apps/opentelemetry/include/otel_span.hrl#L19
Summary
Functions
Builds a Span struct with all its properties filled out from the given record.
Guard definition for the from_record function.
Types
@type span_kind() :: :internal | :server | :client | :producer | :consumer
@type span_record() :: {:span, trace_id :: integer() | :undefined, span_id :: integer() | :undefined, tracestate :: [tuple()], parent_span_id :: integer() | :undefined, name :: String.t() | atom(), kind :: span_kind() | :undefined, start_time :: integer() | :undefined, end_time :: integer() | :undefined, attributes :: O11y.Attributes.attributes_record(), events :: O11y.Events.events_record(), links :: O11y.Links.links_record(), status :: O11y.Status.status_record(), trace_flags :: integer() | :undefined, is_recording :: boolean() | :undefined, instrumentation_scope :: term() | :undefined}
@type t() :: %O11y.Span{ attributes: O11y.Attributes.t() | :undefined, duration_ms: integer() | :undefined, end_time: integer() | :undefined, events: [O11y.Event.t()], instrumentation_scope: term() | :undefined, is_recording: boolean() | :undefined, kind: atom(), links: [O11y.Link.t()], name: String.t() | atom(), parent_span_id: integer() | :undefined, span_id: integer() | :undefined, start_time: integer() | :undefined, status: O11y.Status.t() | :undefined, trace_flags: integer() | :undefined, trace_id: integer() | :undefined, tracestate: [tuple()] }
Functions
@spec from_record(span_record()) :: t()
Builds a Span struct with all its properties filled out from the given record.
Examples:
iex> span_record =
iex> {
...> :span,
...> 36028033703494123531935328165008164641,
...> 3003871636294788166,
...> [],
...> 9251127051694223323,
...> "span3",
...> :internal,
...> -576460751554471834,
...> -576460751554453625,
...> {:attributes, 128, :infinity, 0, %{attr2: "value2"}},
...> {:events, 128, 128, :infinity, 0,
...> [
...> {:event, -576460751554458125, "event1",
...> {:attributes, 128, :infinity, 0, %{attr3: "value3"}}}
...> ]},
...> {:links, 128, 128, :infinity, 0,
...> [
...> {:link, 15885629928321603655903684450721700386,
...> 4778191783967788040,
...> {:attributes, 128, :infinity, 0, %{link_attr1: "link_value1"}}, []}
...> ]},
...> {:status, :error, "whoops!"},
...> 1,
...> true,
...> :undefined
...> }
iex> Span.from_record(span_record)
iex> %O11y.Span{
...> trace_id: 36028033703494123531935328165008164641,
...> span_id: 3003871636294788166,
...> tracestate: [],
...> parent_span_id: 9251127051694223323,
...> name: "span3",
...> kind: :internal,
...> start_time: -576460751554471834,
...> end_time: -576460751554453625,
...> duration_ms: 0,
...> attributes: %{attr2: "value2"},
...> events: [
...> %O11y.Event{
...> name: "event1",
...> native_time: -576460751554458125,
...> attributes: %{attr3: "value3"}
...> }
...> ],
...> links: [
...> %O11y.Link{
...> trace_id: 15885629928321603655903684450721700386,
...> span_id: 4778191783967788040,
...> attributes: %{link_attr1: "link_value1"},
...> tracestate: []
...> }
...> ],
...> status: %O11y.Status{code: :error, message: "whoops!"},
...> trace_flags: 1,
...> is_recording: true,
...> instrumentation_scope: :undefined
...> }
Guard definition for the from_record function.