All pages
Powered by GitBook
1 of 1

Loading...

06.13.2025: Enhanced Span Creation and Logging 🪐

Available in Phoenix 10.12+

New Features:

  • Added POST /projects/{project_identifier}/spans route for span ingestion.

  • Added log_spans client method to submit a sequence of spans, rejecting the entire batch if any span is invalid or not unique.

  • Added log_spans_dataframe for submitting spans as a dataframe.

  • Introduced uniquify_spans and uniquify_spans_dataframe helpers to regenerate span and trace IDs while preserving relationships.

  • Improved validation and error handling to prevent partial ingestion and ensure safe, conflict-free span creation.

Example Usage

from phoenix.client import Client
from phoenix.client.helpers.spans import uniquify_spans

client = Client()

spans = [
    {
        "name": "llm_call",
        "context": {"trace_id": "trace_123", "span_id": "span_456"},
        "start_time": "2024-01-15T10:00:00Z",
        "end_time": "2024-01-15T10:00:05Z",
        "span_kind": "LLM"
    }
]

unique_spans = uniquify_spans(spans)
result = client.spans.log_spans(
    project_identifier="my-project",
    spans=unique_spans,
)
feat: Add `log_spans` to client and REST API by anticorrelator · Pull Request #8005 · Arize-ai/phoenixGitHub
Logo