GitHub

NativeSpan

API reference for NativeSpan.

The native tracer's span: it records its attributes, events and links in memory and exports nothing. Its trace id is its parent's, and its ids are made when first read.

Attributes

AttributeTypeDescription
namestr = request.name
parentAnySpan | None = request.parent
annotationsContext = request.annotations
linkslist[SpanLink] = request.links
start_timeint = request.start_time
kindSpanKind = request.kind
sampledbool = request.sampled
statusSpanStatus = Started(request.start_time)
trace_idstr
span_idstr
attributesdict[str, object]
eventslist[SpanEvent]

Functions

__init__

__init__(request) -> None
ParameterTypeDescription
requestSpanRequest
def __init__(self, request: SpanRequest) -> None:
    self.name: str = request.name
    self.parent: AnySpan | None = request.parent
    self.annotations: Context = request.annotations
    self.links: list[SpanLink] = request.links
    self.start_time: int = request.start_time
    self.kind: SpanKind = request.kind
    self.sampled: bool = request.sampled
    self.status: SpanStatus = Started(request.start_time)
    self._trace_id: str | None = None
    self._span_id: str | None = None
    self._attributes: dict[str, object] | None = None
    self._events: list[SpanEvent] | None = None

end

end(end_time, exit) -> None
ParameterTypeDescription
end_timeint
exitExit[object, object]
def end(self, end_time: int, exit: Exit[object, object], /) -> None:
    if isinstance(self.status, Started):
        self.status = Ended(self.status.start_time, end_time, exit)

attribute

attribute(key, value) -> None
ParameterTypeDescription
keystr
valueobject
def attribute(self, key: str, value: object, /) -> None:
    if isinstance(self.status, Started):
        self.attributes[key] = value

event

event(name, start_time, attributes=None) -> None
ParameterTypeDescription
namestr
start_timeint
attributesMapping[str, object] | None = None
def event(
    self, name: str, start_time: int, attributes: Mapping[str, object] | None = None, /
) -> None:
    if isinstance(self.status, Started):
        self.events.append((name, start_time, {} if attributes is None else attributes))
add_links(links) -> None
ParameterTypeDescription
linksSequence[SpanLink]
def add_links(self, links: Sequence[SpanLink], /) -> None:
    if isinstance(self.status, Started):
        self.links.extend(links)