119 lines
2.9 KiB
Python
119 lines
2.9 KiB
Python
import atexit
|
|
|
|
from agents.tracing.provider import DefaultTraceProvider, TraceProvider
|
|
|
|
from .create import (
|
|
agent_span,
|
|
custom_span,
|
|
function_span,
|
|
generation_span,
|
|
get_current_span,
|
|
get_current_trace,
|
|
guardrail_span,
|
|
handoff_span,
|
|
mcp_tools_span,
|
|
response_span,
|
|
speech_group_span,
|
|
speech_span,
|
|
trace,
|
|
transcription_span,
|
|
)
|
|
from .processor_interface import TracingProcessor
|
|
from .processors import default_exporter, default_processor
|
|
from .setup import get_trace_provider, set_trace_provider
|
|
from .span_data import (
|
|
AgentSpanData,
|
|
CustomSpanData,
|
|
FunctionSpanData,
|
|
GenerationSpanData,
|
|
GuardrailSpanData,
|
|
HandoffSpanData,
|
|
MCPListToolsSpanData,
|
|
ResponseSpanData,
|
|
SpanData,
|
|
SpeechGroupSpanData,
|
|
SpeechSpanData,
|
|
TranscriptionSpanData,
|
|
)
|
|
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",
|
|
"get_trace_provider",
|
|
"guardrail_span",
|
|
"handoff_span",
|
|
"response_span",
|
|
"set_trace_processors",
|
|
"set_trace_provider",
|
|
"set_tracing_disabled",
|
|
"trace",
|
|
"Trace",
|
|
"SpanError",
|
|
"Span",
|
|
"SpanData",
|
|
"AgentSpanData",
|
|
"CustomSpanData",
|
|
"FunctionSpanData",
|
|
"GenerationSpanData",
|
|
"GuardrailSpanData",
|
|
"HandoffSpanData",
|
|
"MCPListToolsSpanData",
|
|
"ResponseSpanData",
|
|
"SpeechGroupSpanData",
|
|
"SpeechSpanData",
|
|
"TranscriptionSpanData",
|
|
"TracingProcessor",
|
|
"TraceProvider",
|
|
"gen_trace_id",
|
|
"gen_span_id",
|
|
"speech_group_span",
|
|
"speech_span",
|
|
"transcription_span",
|
|
"mcp_tools_span",
|
|
]
|
|
|
|
|
|
def add_trace_processor(span_processor: TracingProcessor) -> None:
|
|
"""
|
|
Adds a new trace processor. This processor will receive all traces/spans.
|
|
"""
|
|
get_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.
|
|
"""
|
|
get_trace_provider().set_processors(processors)
|
|
|
|
|
|
def set_tracing_disabled(disabled: bool) -> None:
|
|
"""
|
|
Set whether tracing is globally disabled.
|
|
"""
|
|
get_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)
|
|
|
|
|
|
set_trace_provider(DefaultTraceProvider())
|
|
# 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(get_trace_provider().shutdown)
|