Skip to main content
Importing Langfuse traces copies a bounded set of Langfuse traces and their observations into Atlan Trident as OTLP trace trees, without changing the Langfuse project. Use it when run evidence you need lives in Langfuse. For another store, follow the general workflow in Import traces from external stores.

Before you begin

Before you start, make sure you have:
  • Import prerequisites: Everything in Import traces from external stores.
  • Langfuse selection: One Langfuse project, one synthetic trace, and a narrow time window, with the trace ID, root trace name, timestamps, observation count, and final status recorded.
  • Field approval: Generation input, output, model usage, user data, tags, and metadata excluded unless your data-handling policy permits them.
1

Map Langfuse trace

Extract the trace and its observations. Create one root OTLP span from the Langfuse trace, then one child span for every observation you keep:Do not use a Langfuse user ID, project name, tag, or observation name as proof of agent, session, skill, or version attribution. Those relationships stay unknown until explicit target identifiers establish them.
2

Send OTLP batch

  1. Assemble the converted traces into an ExportTraceServiceRequest.
  2. Send it to POST /otel/v1/traces with the bearer credential from your approved secret store.
  3. Set X-Atlan-Workspace-Id for the active target workspace when needed.
  4. Set X-Atlan-Ingest-Id to a stable batch identifier, and keep the payload unchanged if you retry it.
If a batch is too large, split it between complete trace trees. Do not split a trace from its observations.
3

Verify copied trace

  1. Read GET /registry/v1/users/{user_id}/traces/{trace_id}, where {user_id} is the Atlan user ID of the identity that sent the batch (the id that GET /registry/v1/users/me returns). Confirm that its workspace_id is the target workspace.
  2. Read GET /registry/v1/users/{user_id}/traces/{trace_id}/spans with fields=core,attributes,io,usage, following page.next_cursor until it is absent.
  3. Confirm the root name, preserved or recorded source ID, timing, final status, one root span plus the kept observation count, and parent relationships.
  4. Confirm that fields excluded by policy are absent.
If the span tree is flat or broken, see Imported span tree flat or broken.

Troubleshooting

If the trace is not found, the span tree is flat, the target holds too much data, or a retry returns 409, see Trace errors.

Next steps

See also