Current section
Files
Jump to
Current section
Files
include/otter.hrl
-ifndef(OTTER_HRL).
-define(OTTER_HRL, "otter.hrl").
-type time_us() :: non_neg_integer(). % timestamp in microseconds
-type info() :: binary() | iolist() | atom() | integer().
-type ip4() :: {non_neg_integer(), non_neg_integer(), non_neg_integer(), non_neg_integer()}.
-type service() :: binary() | list() | default | {binary() | list(), ip4(), non_neg_integer()}.
-type trace_id():: non_neg_integer().
-type span_id() :: non_neg_integer().
-type action() :: atom() | tuple().
-type tag() :: {info(), info()} | {info(), info(), service()}.
-type log() :: {time_us(), info()} | {time_us(), info(), service()}.
-record(span, {
timestamp :: time_us() | undefined,% timestamp of starting the span
trace_id :: trace_id() |undefined,% 64 bit integer trace id
name :: info() | undefined, % name of the span
id :: span_id() | undefined,% 64 bit integer span id
parent_id :: span_id() | undefined,% 64 bit integer parent span id
tags = [] :: [tag()], % span tags
logs = [] :: [log()], % span logs
duration :: time_us() | undefined % microseconds between span start/end
}).
-type span() :: #span{}.
-define(is_span_active(Span), Span#span.timestamp =/= 0).
-endif.