PythonTracerJudgment Tracer Provider

JudgmentTracerProvider

Global singleton that manages Judgment tracers and context propagation.

Global singleton that manages Judgment tracers and context propagation.

Acts as the OpenTelemetry TracerProvider for the Judgment SDK. It maintains a WeakSet of registered tracers and routes all span creation through a ProxyTracer that delegates to the currently active tracer.

You don't create this directly -- Tracer.init() registers with the singleton automatically. Access it via get_instance() when building custom integrations.

from judgeval.trace import JudgmentTracerProvider

provider = JudgmentTracerProvider.get_instance()
span = provider.get_current_span()

__init__()

def __init__():

get_instance()

Return the global singleton, creating it on first access.

def get_instance() -> JudgmentTracerProvider:

Returns

JudgmentTracerProvider


install_as_global_tracer_provider()

Install this provider as the OpenTelemetry global tracer provider.

def install_as_global_tracer_provider() -> bool:

Returns

bool


register()

Add a tracer to the tracked set (weak reference).

def register(tracer) -> None:

Parameters

tracer

required

:

JudgmentTracer

Returns

None


deregister()

Remove a tracer from the tracked set.

def deregister(tracer) -> None:

Parameters

tracer

required

:

JudgmentTracer

Returns

None


set_active()

Set a tracer as the active tracer for the current context.

Fails if a root span is currently recording to prevent mid-trace provider switches.

def set_active(tracer) -> bool:

Parameters

tracer

required

:

JudgmentTracer

Returns

bool - True if the tracer was activated, False if blocked by an active root span.


get_active_tracer()

Return the tracer active in the current async context, or None.

def get_active_tracer() -> Optional[JudgmentTracer]:

Returns

Optional[JudgmentTracer]


get_current_context()

Return the current OpenTelemetry context.

def get_current_context() -> Context:

Returns

Context


get_current_span()

Return the span that is active in the current context.

def get_current_span() -> Span:

Returns

Span


has_active_root_span()

Check whether a root span (no parent) is currently recording.

def has_active_root_span() -> bool:

Returns

bool


_get_delegate_tracer()

def _get_delegate_tracer() -> Tracer:

Returns

Tracer


get_tracer()

def get_tracer(instrumenting_module_name, instrumenting_library_version=None, schema_url=None, attributes=None) -> Tracer:

Parameters

instrumenting_module_name

required

:

str

instrumenting_library_version

:

Optional[str]

Default:

None

schema_url

:

Optional[str]

Default:

None

attributes

:

Attributes

Default:

None

Returns

Tracer


add_instrumentation()

Register and activate a third-party OTel instrumentor.

def add_instrumentation(instrumentor) -> None:

Parameters

instrumentorrequired

Returns

None


use_span()

def use_span(span, end_on_exit=False, record_exception=True, set_status_on_exception=True):

Parameters

span

required

:

Span

end_on_exit

:

bool

Default:

False

record_exception

:

bool

Default:

True

set_status_on_exception

:

bool

Default:

True


attach_context()

def attach_context(ctx) -> object:

Parameters

ctx

required

:

Context

Returns

object


detach_context()

def detach_context(token) -> None:

Parameters

tokenrequired

Returns

None


force_flush()

Flush pending spans from all registered tracers.

def force_flush(timeout_millis=30000) -> bool:

Parameters

timeout_millis

:

int

Default:

30000

Returns

bool


shutdown()

Shut down all registered tracers and clear the tracked set.

def shutdown() -> None:

Returns

None