Skip to content

readable_span_to_data

autogen.beta.eval.sources._otel.readable_span_to_data #

readable_span_to_data(span)

Normalize one OpenTelemetry ReadableSpan into a :class:SpanData.

Source code in autogen/beta/eval/sources/_otel.py
def readable_span_to_data(span: ReadableSpan) -> SpanData:
    """Normalize one OpenTelemetry ``ReadableSpan`` into a :class:`SpanData`."""
    context = span.context
    parent = span.parent
    status = span.status.status_code.name if span.status is not None else "UNSET"
    return SpanData(
        name=span.name or "",
        span_id=format(context.span_id, "016x") if context is not None else "",
        parent_id=format(parent.span_id, "016x") if parent is not None else None,
        start_ns=span.start_time or 0,
        end_ns=span.end_time or 0,
        attributes=dict(span.attributes or {}),
        status=status,
        events=tuple(SpanEvent(e.name, dict(e.attributes or {})) for e in span.events),
    )