Skip to main content
Using an agent? Install the Latitude skills and let it handle the setup below. latitude-setup instruments your app or agent harness, verifies traces arrive, creates a temporary account if you don’t have one yet (no signup), and ends by building your first Artifact.

Overview

This guide shows you how to send traces from Flue to Latitude. No Latitude account yet? Your agent can create a temporary one and do this whole setup with the latitude-setup skill, no signup. Flue exposes an OpenTelemetry observer through @flue/opentelemetry. The observer converts Flue workflow runs, operations, model turns, tool calls, delegated tasks, compactions, and logs into standard OpenTelemetry spans. Latitude ingests those spans directly and understands Flue’s flue.* attributes and OpenTelemetry GenAI gen_ai.* model metadata.
You’ll keep building Flue workflows exactly as you do today. Latitude only adds an OpenTelemetry export path for the spans Flue already emits.
Flue support is TypeScript only.

Requirements

  • A Latitude account and API key, or none yet: your agent can create a temporary account with the latitude-setup skill, no signup
  • A Latitude project slug
  • A Flue project that uses @flue/runtime

Steps

1

Install

Install Latitude Telemetry and Flue’s OpenTelemetry observer:
2

Initialize Latitude

Initialize Latitude once in your application entrypoint, before the first Flue workflow or operation runs. You do not need a provider-specific instrumentations entry for Flue, because Flue emits OpenTelemetry spans itself.
If your app already initializes Sentry, Datadog, New Relic, Honeycomb, or a custom OpenTelemetry SDK, initialize that first and then construct new Latitude(...). Latitude will attach its span processor to the existing provider when possible.
3

Register Flue's observer

Register Flue’s OpenTelemetry observer once, after the OpenTelemetry SDK is configured by Latitude:
Flue model-turn spans include gen_ai.* attributes for model, provider, token usage, and finish metadata. Flue workflow, operation, tool, task, compaction, and log spans include flue.* correlation attributes so the full hierarchy appears in Latitude.
4

Add request context (optional)

Wrap the request, job, or agent-turn boundary with capture() when you have user, session, tag, or metadata context to attach to every Flue span created inside the callback.

Export content safely

Flue’s OpenTelemetry observer omits sensitive content by default. Workflow payloads and results, detailed errors, model input and output, tool values, task content, and log content are not exported unless you explicitly opt in with exportContent(). Use exportContent() only after sanitizing the fields you want Latitude to receive:
Returning the original event from exportContent() can send prompts, completions, tool arguments, tool results, logs, and application-owned values to Latitude. Only enable content export for data your organization is allowed to store in your observability backend.

Cloudflare and generic OpenTelemetry runtimes

For runtimes where the TypeScript SDK’s Node OpenTelemetry stack is not appropriate, configure your runtime’s OTLP HTTP exporter directly and still register Flue’s observer:
Make sure your OpenTelemetry SDK, exporter, sampling, and shutdown or flush behavior are compatible with the deployed runtime.

Seeing Your Traces

Once connected, traces appear automatically in Latitude:
  1. Open your project in the Latitude dashboard
  2. Run a Flue workflow with at least one model turn or tool call
  3. Confirm the workflow, operation, model turn, tool, task, and compaction spans appear with Flue correlation attributes, model metadata, token usage, latency, and errors

See what was captured

Once a real run has landed, your agent builds your first Artifact: a single HTML page, in the Latitude look, with everything the telemetry captured from that session: model calls, tool calls, tokens, cost, timing, and the conversation as the model saw it. It is the fastest way to check the integration end to end and to see what Latitude will have to work with. The latitude-setup skill does this as its last step from its bundled first-artifact.html template, filling the page with the values the latitude CLI returns for the trace, and adds a Claim your workspace button when the account is temporary. If you set things up by hand, the same template and instructions live in the skills repo. Prompt, if you need to ask for it: