Skip to content

Commit de43985

Browse files
authored
Merge pull request #3 from redpanda-data/reapply-pr560-transcripts-rewrite
Reapply PR #560: Transcripts documentation rewrite for ADP GA
2 parents 71760bb + f945f4d commit de43985

4 files changed

Lines changed: 202 additions & 110 deletions

File tree

modules/observability/pages/concepts.adoc

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
= Transcripts and AI Observability
2-
:page-aliases: redpanda-cloud:ai-agents:observability/concepts.adoc
32
:description: Understand how Redpanda captures end-to-end execution transcripts on an immutable distributed log for agent governance and observability.
43
:page-topic-type: concepts
54
:personas: evaluator, agent_developer, platform_admin, data_engineer
65
:learning-objective-1: Explain how transcripts and spans capture execution flow
76
:learning-objective-2: Interpret transcript structure for debugging and monitoring
87
:learning-objective-3: Distinguish between transcripts and audit logs
98

10-
include::ROOT:partial$adp-la.adoc[]
9+
include::ai-agents:partial$adp-la.adoc[]
1110

1211
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.
1312

@@ -226,6 +225,8 @@ AI SDK layer (following https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-a
226225
- `gen_ai.agent.name`: Sub-agent name for multi-agent systems
227226
- `gen_ai.provider.name`, `gen_ai.request.model`: LLM provider and model
228227
- `gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`: Token consumption
228+
- `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.
229230
- `gen_ai.tool.name`, `gen_ai.tool.call.arguments`: Tool execution details
230231
- `gen_ai.input.messages`, `gen_ai.output.messages`: Full LLM conversation context
231232

@@ -321,9 +322,10 @@ Redpanda manages both the `redpanda.otel_traces` topic and its schema automatica
321322

322323
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.
323324

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.
325326

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.
327329

328330
== Transcripts compared to audit logs
329331

@@ -338,8 +340,15 @@ Transcripts provide:
338340

339341
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.
340342

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.
349+
341350
== Next steps
342351

343-
* xref:transcripts.adoc[]
344-
* xref:agents:monitor.adoc[]
345-
* xref:mcp:remote/monitor-mcp-servers.adoc[]
352+
* xref:ai-agents:observability/transcripts.adoc[]
353+
* xref:ai-agents:agents/monitor-agents.adoc[]
354+
* xref:ai-agents:mcp/remote/monitor-mcp-servers.adoc[]

modules/observability/pages/ingest-custom-traces.adoc

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
:learning-objective-2: Validate trace data format and compatibility with existing MCP server traces
66
:learning-objective-3: Secure the ingestion endpoint using authentication mechanisms
77

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.
911

1012
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.
1113

@@ -17,9 +19,9 @@ After reading this page, you will be able to:
1719
1820
== Prerequisites
1921

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
2325
* Custom agent or application instrumented with OpenTelemetry SDK
2426
* 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)^]
2527

@@ -29,7 +31,8 @@ If you're using LangChain with OpenTelemetry tracing, you can send traces to Red
2931

3032
. Configure LangChain's OpenTelemetry integration by following the https://docs.langchain.com/langsmith/trace-with-opentelemetry[LangChain documentation^].
3133

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.
3336

3437
. Configure your OTEL exporter to send traces to your Redpanda Connect pipeline using environment variables:
3538
+
@@ -51,19 +54,19 @@ By default, traces are sent to both LangSmith and your Redpanda Connect pipeline
5154
export LANGSMITH_OTEL_ONLY="true"
5255
----
5356

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.
5558

5659
For non-LangChain applications or custom instrumentation, continue with the sections below.
5760

5861
== About custom trace ingestion
5962

6063
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).
6164

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.
6366

6467
=== Trace format requirements
6568

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.
6770

6871
Each trace must follow the OTLP specification with these required fields:
6972

@@ -95,7 +98,7 @@ Optional but recommended fields:
9598
- `parentSpanId` for hierarchical traces
9699
- `attributes` for contextual information
97100

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].
99102

100103
== Configure the ingestion pipeline
101104

@@ -168,17 +171,20 @@ NOTE: Clients must include the authentication token in gRPC metadata as `authori
168171

169172
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.
170173

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.
172177

173178
. In the *Connect* page of your Redpanda Cloud cluster, click *Create Pipeline*.
174179
. For the input, select the *otlp_http* (or *otlp_grpc*) component.
175180
. Skip to *Add a topic* and select `redpanda.otel_traces` from the list of existing topics. Leave the default advanced settings.
176181
. 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.
178183

179184
== Send traces from your custom agent
180185

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.
182188

183189
[cols="1,3", options="header"]
184190
|===
@@ -193,7 +199,8 @@ Configure your custom agent to send OpenTelemetry traces to the pipeline endpoin
193199

194200
=== Authenticate to the pipeline
195201

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.
197204

198205
Include the token in your requests:
199206

@@ -558,25 +565,25 @@ Check that traces are being published to the `redpanda.otel_traces` topic:
558565
rpk topic consume redpanda.otel_traces --offset end -n 10
559566
----
560567

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).
562569

563570
Look for spans with your custom `instrumentationScope.name` to identify traces from your agent.
564571

565572
=== View traces in Transcripts
566573

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.
568575

569576
==== Identify custom agent transcripts
570577

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.
572579

573580
Your custom agent transcripts display with:
574581

575582
* **Service name** in the service filter dropdown (from your `service.name` resource attribute)
576583
* **Agent name** in span details (from the `gen_ai.agent.name` attribute)
577584
* **Operation names** like `"invoke_agent my-assistant"` indicating agent executions
578585

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].
580587

581588
==== Token usage tracking
582589

@@ -614,7 +621,7 @@ If requests succeed but traces do not appear in `redpanda.otel_traces`:
614621

615622
== Next steps
616623

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

Comments
 (0)