Skip to content

Commit f665c90

Browse files
committed
Normalize span naming constants
1 parent e01bc21 commit f665c90

File tree

1 file changed

+31
-21
lines changed
  • instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2/src/opentelemetry/instrumentation/openai_agents

1 file changed

+31
-21
lines changed

instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2/src/opentelemetry/instrumentation/openai_agents/span_processor.py

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -384,34 +384,44 @@ def _get_span_status(span: Span[Any]) -> Status:
384384
return Status(StatusCode.OK)
385385

386386

387+
_SPAN_NAME_BASE_OVERRIDES: dict[str, str] = {
388+
GenAIOperationName.SPEECH: "speech",
389+
GenAIOperationName.GUARDRAIL: "guardrail",
390+
GenAIOperationName.HANDOFF: "handoff",
391+
}
392+
393+
387394
def get_span_name(
388395
operation_name: str,
389396
model: Optional[str] = None,
390397
agent_name: Optional[str] = None,
391398
tool_name: Optional[str] = None,
392399
) -> str:
393400
"""Generate spec-compliant span name based on operation type."""
394-
if operation_name == GenAIOperationName.CHAT:
395-
return f"chat {model}" if model else "chat"
396-
elif operation_name == GenAIOperationName.TEXT_COMPLETION:
397-
return f"text_completion {model}" if model else "text_completion"
398-
elif operation_name == GenAIOperationName.EMBEDDINGS:
399-
return f"embeddings {model}" if model else "embeddings"
400-
elif operation_name == GenAIOperationName.CREATE_AGENT:
401-
return f"create_agent {agent_name}" if agent_name else "create_agent"
402-
elif operation_name == GenAIOperationName.INVOKE_AGENT:
403-
return f"invoke_agent {agent_name}" if agent_name else "invoke_agent"
404-
elif operation_name == GenAIOperationName.EXECUTE_TOOL:
405-
return f"execute_tool {tool_name}" if tool_name else "execute_tool"
406-
elif operation_name == GenAIOperationName.TRANSCRIPTION:
407-
return f"transcription {model}" if model else "transcription"
408-
elif operation_name == GenAIOperationName.SPEECH:
409-
return f"speech {model}" if model else "speech"
410-
elif operation_name == GenAIOperationName.GUARDRAIL:
411-
return "guardrail"
412-
elif operation_name == GenAIOperationName.HANDOFF:
413-
return f"handoff {agent_name}" if agent_name else "handoff"
414-
return operation_name
401+
base_name = _SPAN_NAME_BASE_OVERRIDES.get(operation_name, operation_name)
402+
403+
if operation_name in {
404+
GenAIOperationName.CHAT,
405+
GenAIOperationName.TEXT_COMPLETION,
406+
GenAIOperationName.EMBEDDINGS,
407+
GenAIOperationName.TRANSCRIPTION,
408+
GenAIOperationName.SPEECH,
409+
}:
410+
return f"{base_name} {model}" if model else base_name
411+
412+
if operation_name == GenAIOperationName.CREATE_AGENT:
413+
return f"{base_name} {agent_name}" if agent_name else base_name
414+
415+
if operation_name == GenAIOperationName.INVOKE_AGENT:
416+
return f"{base_name} {agent_name}" if agent_name else base_name
417+
418+
if operation_name == GenAIOperationName.EXECUTE_TOOL:
419+
return f"{base_name} {tool_name}" if tool_name else base_name
420+
421+
if operation_name == GenAIOperationName.HANDOFF:
422+
return f"{base_name} {agent_name}" if agent_name else base_name
423+
424+
return base_name
415425

416426

417427
class GenAISemanticProcessor(TracingProcessor):

0 commit comments

Comments
 (0)