MCPcopy Create free account
hub / github.com/AgentOps-AI/agentops / to_span

Method to_span

app/api/agentops/exporter/models.py:520–569  ·  view source on GitHub ↗

Convert a ToolEvent to a Span

(
        self,
        trace_id: Optional[str] = None,
        parent_span_id: Optional[str] = None,
        project_id: Optional[str] = None,
    )

Source from the content-addressed store, hash-verified

518 end_timestamp: Optional[datetime] = None
519
520 async def to_span(
521 self,
522 trace_id: Optional[str] = None,
523 parent_span_id: Optional[str] = None,
524 project_id: Optional[str] = None,
525 ) -> Span:
526 """Convert a ToolEvent to a Span"""
527 span_attributes = {
528 "tool.id": str(self.id),
529 "tool.name": self.name,
530 "session.id": str(self.session_id),
531 "agent.id": str(self.agent_id),
532 "gen_ai.tool.name": self.name,
533 }
534
535 if self.params:
536 if isinstance(self.params, dict):
537 span_attributes["tool.params"] = json.dumps(self.params)
538 else:
539 span_attributes["tool.params"] = str(self.params)
540
541 if self.returns:
542 if isinstance(self.returns, dict):
543 span_attributes["tool.returns"] = json.dumps(self.returns)
544 else:
545 span_attributes["tool.returns"] = str(self.returns)
546
547 init_timestamp_ns = datetime_to_ns(self.init_timestamp)
548 events = []
549 if self.logs:
550 events.append(
551 {"timestamp": init_timestamp_ns, "name": "logs", "attributes": {"log.message": self.logs}}
552 )
553
554 return Span(
555 name=f"tool:{self.name}",
556 trace_id=trace_id,
557 span_id=str(self.id),
558 parent_span_id=parent_span_id,
559 kind=SpanKind.INTERNAL,
560 start_time=init_timestamp_ns,
561 end_time=datetime_to_ns(self.end_timestamp),
562 project_id=project_id,
563 service_name=DEFAULT_SERVICE_NAME,
564 scope_name=f"{DEFAULT_SCOPE_NAME}.tool",
565 scope_version=DEFAULT_VERSION,
566 resource_attributes={},
567 span_attributes=span_attributes,
568 events=events,
569 )
570
571
572class ErrorEvent(BaseModel):

Callers 2

create_tool_eventFunction · 0.95
update_tool_eventFunction · 0.95

Calls 2

datetime_to_nsFunction · 0.85
SpanClass · 0.70

Tested by

no test coverage detected