Export and endpoints

Reference for getting trace data out of Observe — exporting the current view, the available formats, and the OTLP endpoints traces are sent to (cloud and self-hosted).

About

There are two directions for trace data: out of Observe (exporting what you’re viewing) and into Observe (the OTLP endpoints traceAI sends to). This page covers both.

Export from the trace explorer

The download icon in the trace explorer header exports the current view — the traces that match your active filters and time range.

CSV is the only export format. There is no JSON or Parquet download from the trace explorer.

FormatUse for
CSVSpreadsheet analysis, sharing, importing elsewhere.

The CSV holds one row per span in the current view, with the columns the explorer shows: trace ID, span name, status, model, provider, latency, token counts, cost, timestamp, and any eval scores present on the span.

Note

The export reflects the current view, so a very large view may be truncated. Narrow the filters or time range to export a complete slice.

Ingestion endpoints

traceAI exports spans over OTLP to FutureAGI. The transport and target are environment-driven:

VariableTransportDefault
FI_BASE_URLHTTP collectorFutureAGI cloud collector
FI_GRPC_URLgRPC collectorFutureAGI cloud collector

When unset, both variables default to the FutureAGI cloud collector, so a cloud project needs no endpoint configuration — only FI_API_KEY and FI_SECRET_KEY.

  • Cloud: leave the defaults; set FI_API_KEY and FI_SECRET_KEY.
  • Self-hosted: point FI_BASE_URL / FI_GRPC_URL at your own collector host so spans stay in your network.

Choose the transport with transport=Transport.HTTP (default) or Transport.GRPC in register(). See Set up tracing.

Endpoint contract

The ingestion endpoint is an OTLP/traces receiver — you don’t call it directly; the traceAI SDK’s exporter does. The contract:

AspectDetail
ProtocolOTLP over HTTP (protobuf) or gRPC — the OpenTelemetry standard, not a proprietary API.
OperationExport spans (write-only). There is no read/query endpoint; reading happens in the trace explorer.
AuthFI_API_KEY + FI_SECRET_KEY from the keys page, sent by the SDK on every export. Keys are workspace-scoped.
SuccessThe exporter batches spans and sends them in the background; a successful export returns no payload. Spans appear in Observe within seconds.
ErrorsA 401 means the keys are wrong for this workspace; a 4xx means a malformed/oversized batch; transient 5xx/network errors are retried by the batch exporter.
LimitsSpans are sent by the batch span processor on an interval, so a short-lived process must call trace_provider.force_flush() before exit or the last batch is lost. Very large payloads (huge prompts/outputs) can be dropped — mask or trim them at the SDK.
VersioningPin fi-instrumentation-otel and each instrumentor to a tested version so a release can’t change span shape under you; the wire format follows the OTLP version the SDK ships.

Warning

Span input and output can carry customer data before they leave your process. Redact at the SDK with TraceConfig or the FI_HIDE_* variables — see Mask span attributes.

Was this page helpful?

Questions & Discussion