You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
:description: Understand how Redpanda captures end-to-end execution transcripts on an immutable distributed log for agent governance and observability.
:learning-objective-1: Explain how transcripts and spans capture execution flow
7
6
:learning-objective-2: Interpret transcript structure for debugging and monitoring
8
7
:learning-objective-3: Distinguish between transcripts and audit logs
9
8
10
-
include::ROOT:partial$adp-la.adoc[]
9
+
include::ai-agents:partial$adp-la.adoc[]
11
10
12
11
Redpanda provides complete observability and governance for AI agents through automated glossterm:transcript[] capture. Every agent execution, from simple tool calls to complex multi-agent, multi-turn workflows, generates a permanent, write-once record stored on Redpanda's glossterm:log[distributed log]. This captures all agent reasoning, tool invocations, model interactions, and data flows with 100% sampling and no gaps.
13
12
@@ -226,6 +225,8 @@ AI SDK layer (following https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-a
226
225
- `gen_ai.agent.name`: Sub-agent name for multi-agent systems
227
226
- `gen_ai.provider.name`, `gen_ai.request.model`: LLM provider and model
- `gen_ai.usage.input_tokens_cost_usd`, `gen_ai.usage.output_tokens_cost_usd`: USD cost per call, derived from token counts and a per-model pricing table
229
+
// TODO: Confirm exact USD-cost attribute names + pricing-table coverage with team-ai before GA.
- `gen_ai.input.messages`, `gen_ai.output.messages`: Full LLM conversation context
231
232
@@ -321,9 +322,10 @@ Redpanda manages both the `redpanda.otel_traces` topic and its schema automatica
321
322
322
323
The `redpanda.otel_traces` topic has a predefined retention policy. Configuration changes to this topic are not supported. If you modify settings, Redpanda reverts them to the default values.
323
324
324
-
The topic persists in your cluster even after all agents and MCP servers are deleted, allowing you to retain historical trace data for analysis.
325
+
The topic persists even after all agents and MCP servers are deleted, allowing you to retain historical trace data for analysis.
325
326
326
-
Transcripts may contain sensitive information from your tool inputs and outputs. Consider implementing appropriate glossterm:ACL[access control lists (ACLs)] for the `redpanda.otel_traces` topic, and review the data in transcripts before sharing or exporting to external systems.
327
+
Transcripts may contain sensitive information from your tool inputs and outputs. Review the data in transcripts before sharing or exporting to external systems.
328
+
// TODO: Re-add guidance on ACL scoping for `redpanda.otel_traces` once the standalone-ADP permission model lands. Today's wording assumed users manage topic ACLs on their own Redpanda Cloud cluster, which won't apply when ADP is a separate product surface.
327
329
328
330
== Transcripts compared to audit logs
329
331
@@ -338,8 +340,15 @@ Transcripts provide:
338
340
339
341
Transcripts are optimized for execution-level observability and governance. For user-level accountability tracking ("who initiated what"), use the session and task topics for agents, which provide records of agent conversations and task execution.
340
342
343
+
[[history-reconstruction]]
344
+
== Reconstructed transcript history
345
+
346
+
Trace data on `redpanda.otel_traces` is subject to a retention policy. When a transcript covers a long-running conversation whose earliest spans have already been evicted, Redpanda reconstructs the missing turns from the LLM message context carried on later spans (`gen_ai.input.messages`) and sets the boolean field `is_reconstructed` to `true` on each affected turn. The UI surfaces this as a **Reconstructed** badge on those turns — `is_reconstructed` is the backing data field; "Reconstructed" is the visible label. Reconstructed turns preserve the high-level intent and role ordering of the conversation, but do not preserve byte-level fidelity: token counts, per-turn latency, and tool-call arguments are unavailable for the reconstructed range.
347
+
348
+
// TODO: Verify model names on this page against the GA build (gpt-5.2, claude-sonnet-4-5, gpt-5-nano, gemini-3-flash-preview) — replace any that ship with a different GA identifier.
Copy file name to clipboardExpand all lines: modules/observability/pages/ingest-custom-traces.adoc
+28-21Lines changed: 28 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,9 @@
5
5
:learning-objective-2: Validate trace data format and compatibility with existing MCP server traces
6
6
:learning-objective-3: Secure the ingestion endpoint using authentication mechanisms
7
7
8
-
include::ROOT:partial$adp-la.adoc[]
8
+
include::ai-agents:partial$adp-la.adoc[]
9
+
10
+
// TODO (standalone-ADP rewrite): This page was written when ADP lived inside a Redpanda Cloud cluster, so the setup flow deploys a Redpanda Connect pipeline on the user's own cluster and references cluster-id-shaped URLs (`<pipeline-id>.pipelines.<cluster-id>.clusters.rdpa.co`). Post-2026-04-21, ADP ships as its own product surface and users won't necessarily have a Redpanda Cloud cluster. The whole ingestion flow (prereqs, pipeline deployment, endpoint URL format, auth) needs a rewrite once the standalone-ADP ingestion path is defined. Tracking under ADP Docs Plan Workflow #11 (BYOA telemetry). Until then, the content below is accurate for the federated-in-cloud-ui preview but will mislead standalone-ADP users.
9
11
10
12
You can extend Redpanda's transcript observability to custom agents built with frameworks like LangChain or instrumented with OpenTelemetry SDKs. By ingesting traces from external applications into the `redpanda.otel_traces` topic, you gain unified visibility across all agent executions, from Redpanda's declarative agents, Remote MCP servers, to your own custom implementations.
11
13
@@ -17,9 +19,9 @@ After reading this page, you will be able to:
17
19
18
20
== Prerequisites
19
21
20
-
* A BYOC cluster
21
-
* Ability to manage secrets in Redpanda Cloud
22
-
* The latest version of xref:redpanda-cloud:manage:rpk/rpk-install.adoc[`rpk`] installed
22
+
* A Redpanda Connect pipeline host (today: a BYOC Redpanda Cloud cluster with Connect enabled). Ability to manage secrets on that host.
23
+
// TODO: Replace with the standalone-ADP ingestion target once defined (may no longer require a Redpanda Cloud cluster).
24
+
* The latest version of xref:manage:rpk/rpk-install.adoc[`rpk`] installed
23
25
* Custom agent or application instrumented with OpenTelemetry SDK
24
26
* Basic understanding of the https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/[OpenTelemetry span format^] and https://opentelemetry.io/docs/specs/otlp/[OpenTelemetry Protocol (OTLP)^]
25
27
@@ -29,7 +31,8 @@ If you're using LangChain with OpenTelemetry tracing, you can send traces to Red
29
31
30
32
. Configure LangChain's OpenTelemetry integration by following the https://docs.langchain.com/langsmith/trace-with-opentelemetry[LangChain documentation^].
31
33
32
-
. Deploy a Redpanda Connect pipeline using the `otlp_http` input to receive OTLP traces over HTTP. Create the pipeline in the **Connect** page of your cluster, or see the <<configure-the-ingestion-pipeline,Configure the ingestion pipeline>> section below for a sample configuration.
34
+
. Deploy a Redpanda Connect pipeline using the `otlp_http` input to receive OTLP traces over HTTP. Today, create the pipeline in the **Connect** page of your Redpanda Cloud cluster. See the <<configure-the-ingestion-pipeline,Configure the ingestion pipeline>> section below for a sample configuration.
35
+
// TODO: Update the deployment entry point once the standalone-ADP ingestion flow is defined.
33
36
34
37
. Configure your OTEL exporter to send traces to your Redpanda Connect pipeline using environment variables:
35
38
+
@@ -51,19 +54,19 @@ By default, traces are sent to both LangSmith and your Redpanda Connect pipeline
51
54
export LANGSMITH_OTEL_ONLY="true"
52
55
----
53
56
54
-
Your LangChain application will send traces to the `redpanda.otel_traces` topic, making them visible in the Transcripts view in your cluster alongside Remote MCP server and declarative agent traces.
57
+
Your LangChain application will send traces to the `redpanda.otel_traces` topic, making them visible in the Transcripts view alongside Remote MCP server and declarative agent traces.
55
58
56
59
For non-LangChain applications or custom instrumentation, continue with the sections below.
57
60
58
61
== About custom trace ingestion
59
62
60
63
Custom agents are applications with OpenTelemetry instrumentation that operate independently of Redpanda's Remote MCP servers or declarative agents (such as LangChain, CrewAI, or manually instrumented applications).
61
64
62
-
When these agents send traces to `redpanda.otel_traces`, you gain unified observability alongside Remote MCP server and declarative agent traces. See xref:concepts.adoc#cross-service-transcripts[Cross-service transcripts] for details on how traces correlate across services.
65
+
When these agents send traces to `redpanda.otel_traces`, you gain unified observability alongside Remote MCP server and declarative agent traces. See xref:ai-agents:observability/concepts.adoc#cross-service-transcripts[Cross-service transcripts] for details on how traces correlate across services.
63
66
64
67
=== Trace format requirements
65
68
66
-
Custom agents must emit traces in OTLP format. The xref:redpanda-cloud:develop:connect/components/inputs/otlp_http.adoc[`otlp_http`] input accepts both OTLP Protobuf (`application/x-protobuf`) and JSON (`application/json`) payloads. For <<use-grpc,gRPC transport>>, use the xref:redpanda-cloud:develop:connect/components/inputs/otlp_grpc.adoc[`otlp_grpc`] input.
69
+
Custom agents must emit traces in OTLP format. The xref:develop:connect/components/inputs/otlp_http.adoc[`otlp_http`] input accepts both OTLP Protobuf (`application/x-protobuf`) and JSON (`application/json`) payloads. For <<use-grpc,gRPC transport>>, use the xref:develop:connect/components/inputs/otlp_grpc.adoc[`otlp_grpc`] input.
67
70
68
71
Each trace must follow the OTLP specification with these required fields:
69
72
@@ -95,7 +98,7 @@ Optional but recommended fields:
95
98
- `parentSpanId` for hierarchical traces
96
99
- `attributes` for contextual information
97
100
98
-
For complete trace structure details, see xref:concepts.adoc#understand-the-transcript-structure[Understand the transcript structure].
101
+
For complete trace structure details, see xref:ai-agents:observability/concepts.adoc#understand-the-transcript-structure[Understand the transcript structure].
99
102
100
103
== Configure the ingestion pipeline
101
104
@@ -168,17 +171,20 @@ NOTE: Clients must include the authentication token in gRPC metadata as `authori
168
171
169
172
The OTLP input automatically handles format conversion, so no processors are needed for basic trace ingestion. Each span becomes a separate message in the `redpanda.otel_traces` topic.
170
173
171
-
=== Deploy the pipeline in Redpanda Cloud
174
+
=== Deploy the ingestion pipeline
175
+
176
+
// TODO (standalone-ADP): Steps below assume a Redpanda Cloud cluster with Connect enabled. The standalone ADP product surface may expose a different deployment entry point. Revisit the whole subsection under Workflow #11.
172
177
173
178
. In the *Connect* page of your Redpanda Cloud cluster, click *Create Pipeline*.
174
179
. For the input, select the *otlp_http* (or *otlp_grpc*) component.
175
180
. Skip to *Add a topic* and select `redpanda.otel_traces` from the list of existing topics. Leave the default advanced settings.
176
181
. In the *Add permissions* step, create a service account with write access to the `redpanda.otel_traces` topic.
177
-
. In the *Create pipeline* step, enter a name for your pipeline and paste the configuration. Redpanda Cloud automatically handles authentication for incoming requests.
182
+
. In the *Create pipeline* step, enter a name for your pipeline and paste the configuration. Authentication for incoming requests is handled automatically.
178
183
179
184
== Send traces from your custom agent
180
185
181
-
Configure your custom agent to send OpenTelemetry traces to the pipeline endpoint. After deploying the pipeline, you can find its URL in the Redpanda Cloud UI on the pipeline details page.
186
+
Configure your custom agent to send OpenTelemetry traces to the pipeline endpoint. After deploying the pipeline, you can find its URL on the pipeline details page in the host UI.
187
+
// TODO (standalone-ADP): Confirm where users find the pipeline URL once the ingestion path moves out of the Redpanda Cloud UI.
182
188
183
189
[cols="1,3", options="header"]
184
190
|===
@@ -193,7 +199,8 @@ Configure your custom agent to send OpenTelemetry traces to the pipeline endpoin
193
199
194
200
=== Authenticate to the pipeline
195
201
196
-
The OTLP pipeline uses the same authentication mechanism as the Redpanda Cloud API. Obtain an access token using your service account credentials as described in xref:redpanda-cloud:security:cloud-authentication.adoc#authenticate-to-the-cloud-api[Authenticate to the Cloud API].
202
+
The OTLP pipeline uses the same authentication mechanism as the Redpanda Cloud API (today, while ingestion runs on a Redpanda Cloud cluster). Obtain an access token using your service account credentials as described in xref:redpanda-cloud:security:cloud-authentication.adoc#authenticate-to-the-cloud-api[Authenticate to the Cloud API].
203
+
// TODO (standalone-ADP): Update the auth model when the standalone ADP ingestion path is defined.
197
204
198
205
Include the token in your requests:
199
206
@@ -558,25 +565,25 @@ Check that traces are being published to the `redpanda.otel_traces` topic:
558
565
rpk topic consume redpanda.otel_traces --offset end -n 10
559
566
----
560
567
561
-
You can also view the `redpanda.otel_traces` topic in the *Topics* page of Redpanda Cloud UI.
568
+
You can also view the `redpanda.otel_traces` topic in the *Topics* page of the host UI (today, the Redpanda Cloud UI).
562
569
563
570
Look for spans with your custom `instrumentationScope.name` to identify traces from your agent.
564
571
565
572
=== View traces in Transcripts
566
573
567
-
After your custom agent sends traces through the pipeline, they appear in your cluster's *Agentic AI > Transcripts* view alongside traces from Remote MCP servers, declarative agents, and AI Gateway.
574
+
After your custom agent sends traces through the pipeline, they appear in the *Transcripts* view of the ADP UI alongside traces from Remote MCP servers, declarative agents, and AI Gateway.
568
575
569
576
==== Identify custom agent transcripts
570
577
571
-
Custom agent transcripts are identified by the `service.name` resource attribute, which differs from Redpanda's built-in services (`ai-agent` for declarative agents, `mcp-{server-id}` for MCP servers). See xref:concepts.adoc#cross-service-transcripts[Cross-service transcripts] to understand how the `service.name` attribute identifies transcript sources.
578
+
Custom agent transcripts are identified by the `service.name` resource attribute, which differs from Redpanda's built-in services (`ai-agent` for declarative agents, `mcp-{server-id}` for MCP servers). See xref:ai-agents:observability/concepts.adoc#cross-service-transcripts[Cross-service transcripts] to understand how the `service.name` attribute identifies transcript sources.
572
579
573
580
Your custom agent transcripts display with:
574
581
575
582
* **Service name** in the service filter dropdown (from your `service.name` resource attribute)
576
583
* **Agent name** in span details (from the `gen_ai.agent.name` attribute)
577
584
* **Operation names** like `"invoke_agent my-assistant"` indicating agent executions
578
585
579
-
For detailed instructions on filtering, searching, and navigating transcripts in the UI, see xref:transcripts.adoc[View Transcripts].
586
+
For detailed instructions on filtering, searching, and navigating transcripts in the UI, see xref:ai-agents:observability/transcripts.adoc[View Transcripts].
580
587
581
588
==== Token usage tracking
582
589
@@ -614,7 +621,7 @@ If requests succeed but traces do not appear in `redpanda.otel_traces`:
614
621
615
622
== Next steps
616
623
617
-
* xref:transcripts.adoc[]
618
-
* xref:agents:monitor.adoc[Observability for declarative agents]
619
-
* xref:redpanda-cloud:develop:connect/components/inputs/otlp_http.adoc[OTLP HTTP input reference] - Complete configuration options for the `otlp_http` component
620
-
* xref:redpanda-cloud:develop:connect/components/inputs/otlp_grpc.adoc[OTLP gRPC input reference] - Alternative gRPC-based trace ingestion
624
+
* xref:ai-agents:observability/transcripts.adoc[]
625
+
* xref:ai-agents:agents/monitor-agents.adoc[Observability for declarative agents]
626
+
* xref:develop:connect/components/inputs/otlp_http.adoc[OTLP HTTP input reference] - Complete configuration options for the `otlp_http` component
627
+
* xref:develop:connect/components/inputs/otlp_grpc.adoc[OTLP gRPC input reference] - Alternative gRPC-based trace ingestion
0 commit comments