Judgment Labs Logo
PythonTracerProcessors

JudgmentSpanProcessor

Span processor that manages span lifecycle, state, and batched export.

Span processor that manages span lifecycle, state, and batched export.

Extends the OpenTelemetry BatchSpanProcessor with per-span mutable state (counters, lists), partial-span emission for streaming updates, and automatic baggage propagation.

Created automatically by Tracer.init(). Use it directly only when building a custom tracing pipeline.

Attributes

tracer

Default:

tracer


_cleanup_span_state()

def _cleanup_span_state(span_key) -> None:

Parameters

span_key

required

:

tuple[int, int]

Returns

None


_register_span()

def _register_span(span) -> None:

Parameters

span

required

:

Span

Returns

None


state_set()

Store a value in the mutable state for a span.

def state_set(span_context, key, value) -> None:

Parameters

span_context

required

:

SpanContext

key

required

:

str

value

required

:

Any

Returns

None


state_get()

Retrieve a value from the mutable state for a span.

def state_get(span_context, key, default=None) -> Any:

Parameters

span_context

required

:

SpanContext

key

required

:

str

default

:

Any

Default:

None

Returns

Any


state_incr()

Atomically increment a counter. Returns the value before increment.

def state_incr(span_context, key) -> int:

Parameters

span_context

required

:

SpanContext

key

required

:

str

Returns

int


state_append()

Atomically append to a list. Returns the new list.

def state_append(span_context, key, item) -> list[Any]:

Parameters

span_context

required

:

SpanContext

key

required

:

str

item

required

:

Any

Returns

list[Any]


_emit_span()

def _emit_span(span, *, is_partial=False) -> None:

Parameters

span

required

:

ReadableSpan

is_partial

:

bool

Default:

False

Returns

None


emit_partial()

Export the current span's in-progress state for streaming updates.

def emit_partial() -> None:

Returns

None


on_start()

def on_start(span, parent_context=None) -> None:

Parameters

span

required

:

Span

parent_context

:

Optional[Context]

Default:

None

Returns

None


on_end()

def on_end(span) -> None:

Parameters

span

required

:

ReadableSpan

Returns

None