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: cap attribute size or mask them at the SDK. Future AGI Cloud accepts OTLP requests up to 16 MiB over HTTP or gRPC. See Ingestion request limits.
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.

Ingestion request limits

Future AGI Cloud enforces the same supported request limit for both OTLP transports:

TransportMaximum request sizeError when exceeded
OTLP/HTTP16 MiB413 Request Entity Too Large
OTLP/gRPC16 MiBRESOURCE_EXHAUSTED

An oversized request is rejected as a whole and its spans are not stored. If you see either error in your exporter logs, reduce the number of spans sent in each batch. OpenTelemetry’s default maximum export batch size is 512 spans. Start with:

OTEL_BSP_MAX_EXPORT_BATCH_SIZE=256

Note

These limits apply to Future AGI Cloud. For a self-hosted deployment, the configured collector and proxy limits apply.

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