Skip to main content
Use this recipe to copy a bounded set of Langfuse trace evidence into Atlan. It maps each Langfuse trace and its observations into one OTLP trace tree, then verifies the stored result. The import does not modify the Langfuse project. This recipe assumes that you can read the Langfuse project and can send OTLP data to the intended Atlan workspace. Start with a synthetic Langfuse trace.

Before you start

  • Follow the shared external trace import prerequisites.
  • Choose one Langfuse project, one synthetic trace, and a narrow time window.
  • Record the Langfuse trace ID, root trace name, timestamps, observation count, and final status before transforming the data.
  • Decide whether generation input, output, model usage, user data, tags, and metadata are permitted to leave Langfuse. Exclude them by default.

Map the trace

Extract the selected Langfuse trace and its observations. Create one root OTLP span from the Langfuse trace, then add one child span for every observation that you intend to retain. Do not use a Langfuse user ID, project name, tag, or observation name as proof of Atlan Agent, session, Skill, or version attribution. Those relationships remain unknown until explicit target identifiers establish them.

Send the 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. Keep the payload unchanged if you retry it.
Keep batches small enough to inspect and retry. If a batch is too large, split it between complete trace trees. Do not split a trace from its observations.

Verify the copied trace

  1. Read GET /otel/v1/traces/{trace_id} in the target workspace.
  2. Read GET /otel/v1/traces/{trace_id}/spans and compare it with the Langfuse record.
  3. Confirm the root name, preserved or recorded source ID, timing, final status, one root span plus the retained observation count, and parent relationships.
  4. Confirm that fields excluded by policy are absent from the target trace.
A successful ingestion response is not enough. The trace must be readable in the target workspace and match the source facts you recorded before import.

Troubleshoot

For the OTLP endpoint contract, use the API reference. For the shared mapping, recovery rules, and the next external store, return to Import traces from external stores.