Overview
Trace Forwarding lets your organization push OpenTelemetry (OTEL) trace data from Elementum environments to external platforms — observability tools, AI evaluation suites, or any system that accepts the OpenTelemetry Protocol (OTLP) over gRPC or HTTP. You can configure multiple endpoints per channel to route traces to different teams or platforms in parallel.OTEL vs. OTLP. OpenTelemetry (OTEL) is the open standard for generating and collecting trace, metric, and log data. The OpenTelemetry Protocol (OTLP) is the wire format OTEL uses to transmit that data over gRPC or HTTP. Elementum produces OTEL trace data and exports it using OTLP, so your endpoints must accept OTLP.
Trace channels
Two independent channels are available:Quick start: add your first endpoint
- Go to
Organization Settings > Platform > Trace Forwarding.
- Click Add General Endpoint or Add GenAI Endpoint depending on the type of traces you want to forward.
- Enter a Name, your Endpoint URL, and confirm the Protocol matches what your destination platform expects.
- Select an Authorization Type and fill in the required credentials.
- Optionally, add Resource Attributes to tag every span with metadata such as
environmentorteam. - Click Save & Test. A green Message delivered result confirms the endpoint is reachable.
- Click Enable to activate the endpoint.
- Go to Organization Settings > Platform > Environments, click Configure on an environment card, then click Edit Environment, select your endpoint under Trace Forwarding, and click Save Changes.
Add or edit an endpoint
Click Add General Endpoint or Add GenAI Endpoint to open the endpoint dialog. To edit an existing endpoint, click the pencil icon in its row. Both actions open the same dialog.Connection
Authentication
Select one of four options from the Authorization Type dropdown:Secret values (tokens, passwords, header values) are encrypted at rest. When you reopen an endpoint for editing, existing secrets are masked as
****. Click Overwrite to replace a secret, or leave it masked to keep the current value.Optional fields
- Additional headers — Extra HTTP headers attached to every trace export request beyond those required for authentication. Click + Add Header to add key-value pairs.
- Resource attributes — Key-value pairs added to the OTLP resource on every exported span. Use these to tag trace data with environment, team, or deployment metadata that your external platform can filter on (e.g.
environment = production,team = ai-platform).
Manage endpoints
Test a connection
A connection test sends a sample OTLP trace to the configured endpoint. You can run a test two ways:- Click Save & Test when creating or editing an endpoint.
- Click the send icon (Test Connection) in the endpoint list row.
Assign to an environment
After configuring and enabling an endpoint, assign it to one or more environments. Traces are only forwarded from environments where an endpoint is assigned.- Go to
Organization Settings > Platform > Environments.
- Find the environment you want to forward traces from and click Configure on its card, then click Edit Environment.
- In the Trace Forwarding section, select your configured endpoint from the list.
- Click Save Changes.
Delete an endpoint
- Click the trash icon in the endpoint list row.
- Confirm the deletion in the dialog that appears.
Continuing an existing trace
Include a W3Ctraceparent header on a request to signal trace propagation for the traces Elementum exports. The exported spans are tied back to the information you provide, placed under the same trace using the span ID you supply as their parent, so in your platform the request appears as a single connected trace with Elementum’s spans nested under your calling span. This requires a Trace Forwarding endpoint that is enabled and assigned to the environment; without one, there is nowhere to export the spans. If no traceparent is sent, the exported spans are not tied to an external trace.
Add the header
Set thetraceparent header on the request your system sends to Elementum. If your calling application is instrumented with OpenTelemetry, its HTTP client adds this header automatically. Otherwise, add it manually, populated from the calling span in your tracing system.
The leading
00 (version) and trailing 01 (flags) are fixed parts of the W3C format; you normally leave them as shown, and if your caller uses OpenTelemetry they are set automatically.
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
You may also send a tracestate header; Elementum preserves it.
Verify
Open the trace by thetrace-id you sent. You should see your originating span with Elementum’s spans nested beneath it as one connected trace.
Propagation is opt-in per request. Without a
traceparent, exported spans are not tied to an external trace.Troubleshooting
Test returns 401 or 403
Test returns 401 or 403
The credentials are invalid or expired. Re-enter the token or password and ensure the API key has the correct scopes.
Test returns 404
Test returns 404
The endpoint URL is likely incorrect. Double-check the URL and, for HTTP endpoints, confirm the path includes
/v1/traces or the equivalent path required by your platform.Test times out after 30 seconds
Test times out after 30 seconds
A network or firewall issue is preventing the connection. Verify the endpoint host is reachable from the Elementum backend and check any applicable firewall rules.
Test passes but no data appears in the platform
Test passes but no data appears in the platform
Check that the endpoint is Enabled and assigned to the environment you are testing from. A passing test only confirms connectivity, not that traces are being produced — trigger an AI operation in Elementum to generate spans.
GenAI attribute reference
View OpenTelemetry semantic conventions used in Elementum AI spans
View OpenTelemetry semantic conventions used in Elementum AI spans
LLM call spans
These attributes appear on spans representing a single call to a language model. Span names follow the patternchat <model>.Tool execution spans
These attributes appear on spans representing an agent executing a tool. Span names follow the patternexecute_tool <tool_name>.