openai-agents-python/tests/src/agents/tracing/__init__.py
2025-03-11 09:42:28 -07:00

97 lines
2.4 KiB
Python

import atexit
from .create import (
agent_span,
custom_span,
function_span,
generation_span,
get_current_span,
get_current_trace,
guardrail_span,
handoff_span,
response_span,
trace,
)
from .processor_interface import TracingProcessor
from .processors import default_exporter, default_processor
from .setup import GLOBAL_TRACE_PROVIDER
from .span_data import (
AgentSpanData,
CustomSpanData,
FunctionSpanData,
GenerationSpanData,
GuardrailSpanData,
HandoffSpanData,
ResponseSpanData,
SpanData,
)
from .spans import Span, SpanError
from .traces import Trace
from .util import gen_span_id, gen_trace_id
__all__ = [
"add_trace_processor",
"agent_span",
"custom_span",
"function_span",
"generation_span",
"get_current_span",
"get_current_trace",
"guardrail_span",
"handoff_span",
"response_span",
"set_trace_processors",
"set_tracing_disabled",
"trace",
"Trace",
"SpanError",
"Span",
"SpanData",
"AgentSpanData",
"CustomSpanData",
"FunctionSpanData",
"GenerationSpanData",
"GuardrailSpanData",
"HandoffSpanData",
"ResponseSpanData",
"TracingProcessor",
"gen_trace_id",
"gen_span_id",
]
def add_trace_processor(span_processor: TracingProcessor) -> None:
"""
Adds a new trace processor. This processor will receive all traces/spans.
"""
GLOBAL_TRACE_PROVIDER.register_processor(span_processor)
def set_trace_processors(processors: list[TracingProcessor]) -> None:
"""
Set the list of trace processors. This will replace the current list of processors.
"""
GLOBAL_TRACE_PROVIDER.set_processors(processors)
def set_tracing_disabled(disabled: bool) -> None:
"""
Set whether tracing is globally disabled.
"""
GLOBAL_TRACE_PROVIDER.set_disabled(disabled)
def set_tracing_export_api_key(api_key: str) -> None:
"""
Set the OpenAI API key for the backend exporter.
"""
default_exporter().set_api_key(api_key)
# Add the default processor, which exports traces and spans to the backend in batches. You can
# change the default behavior by either:
# 1. calling add_trace_processor(), which adds additional processors, or
# 2. calling set_trace_processors(), which replaces the default processor.
add_trace_processor(default_processor())
atexit.register(GLOBAL_TRACE_PROVIDER.shutdown)