Skip to content

Commit e430e0a

Browse files
committed
Reorganize http/grpc section and fix more gloss terms
1 parent 9a3cd03 commit e430e0a

3 files changed

Lines changed: 41 additions & 29 deletions

File tree

modules/ai-agents/pages/observability/concepts.adoc

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
:learning-objective-2: Interpret transcript structure for debugging and monitoring
77
:learning-objective-3: Distinguish between transcripts and audit logs
88

9-
Redpanda automatically captures glossterm:transcript[,transcripts] (also referred to as execution logs or traces) for both AI agents and MCP servers, providing complete glossterm:observability[] into how your agentic systems operate.
9+
Redpanda automatically captures glossterm:transcript[,transcripts] (also referred to as execution logs or traces) for both AI agents and MCP servers, providing complete glossterm:observability (o11y)[,observability] into how your agentic systems operate.
1010

1111
After reading this page, you will be able to:
1212

@@ -16,7 +16,7 @@ After reading this page, you will be able to:
1616
1717
== What are transcripts
1818

19-
The AI Gateway and every glossterm:ai-agent[,agent] and glossterm:mcp-server[,MCP server] in your Agentic Data Plane (ADP) automatically emit OpenTelemetry traces to a glossterm:topic[] called `redpanda.otel_traces`. These traces provide detailed observability into operations, creating complete transcripts.
19+
The AI Gateway and every glossterm:AI agent[,agent] and glossterm:MCP server[] in your Agentic Data Plane (ADP) automatically emit OpenTelemetry traces to a glossterm:topic[] called `redpanda.otel_traces`. These traces provide detailed observability into operations, creating complete transcripts.
2020

2121
Transcripts capture:
2222

@@ -31,7 +31,7 @@ With 100% sampling, every operation is captured, enabling comprehensive debuggin
3131

3232
== Traces and spans
3333

34-
glossterm:opentelemetry[,OpenTelemetry] traces provide a complete picture of how a request flows through your system:
34+
glossterm:OpenTelemetry[] traces provide a complete picture of how a request flows through your system:
3535

3636
* A _trace_ represents the entire lifecycle of a request (for example, a tool invocation from start to finish).
3737
* A _span_ represents a single unit of work within that trace (such as a data processing operation or an external API call).
@@ -54,11 +54,11 @@ Agent transcripts contain these span types:
5454
| Measure total request duration and identify slow agent invocations.
5555

5656
| `agent`
57-
| Internal agent processing that represents reasoning and decision-making. Shows time spent in the LLM reasoning loop, including context processing, tool selection, and response generation. Multiple `agent` spans may appear when the agent iterates through its reasoning loop.
57+
| Internal agent processing that represents reasoning and decision-making. Shows time spent in the glossterm:large language model (LLM)[,LLM] reasoning loop, including context processing, tool selection, and response generation. Multiple `agent` spans may appear when the agent iterates through its reasoning loop.
5858
| Track reasoning time and identify iteration patterns.
5959

6060
| `invoke_agent`
61-
| Agent and sub-agent invocation in multi-agent architectures, following the https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/[OpenTelemetry agent invocation semantic conventions^]. Represents one agent calling another via the A2A protocol.
61+
| Agent and sub-agent invocation in multi-agent architectures, following the https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/[OpenTelemetry agent invocation semantic conventions^]. Represents one agent calling another via the glossterm:Agent2Agent (A2A) protocol[,A2A protocol].
6262
| Trace calls between root agents and sub-agents, measure cross-agent latency, and identify which sub-agent was invoked.
6363

6464
| `openai`, `anthropic`, or other LLM providers
@@ -256,12 +256,12 @@ Each span captures a unit of work. Here's what a typical MCP tool invocation loo
256256
}
257257
----
258258

259-
* **traceId** links all spans in the same request across services
260-
* **spanId** uniquely identifies this span
261-
* **name** identifies the operation or tool
262-
* **instrumentationScope.name** identifies which layer created the span (`rpcn-mcp` for MCP tools, `redpanda-connect` for internal processing)
263-
* **attributes** contain operation-specific metadata
264-
* **status.code** indicates success (0) or error (2)
259+
* `traceId` links all spans in the same request across services
260+
* `spanId` uniquely identifies this span
261+
* `name` identifies the operation or tool
262+
* `instrumentationScope.name` identifies which layer created the span (`rpcn-mcp` for MCP tools, `redpanda-connect` for internal processing)
263+
* `attributes` contain operation-specific metadata
264+
* `status.code` indicates success (0) or error (2)
265265

266266
=== Parent-child relationships
267267

@@ -308,7 +308,7 @@ The `events` array captures what happened and when. Use `timeUnixNano` to see ex
308308
[[opentelemetry-traces-topic]]
309309
== How Redpanda stores trace data
310310

311-
The `redpanda.otel_traces` topic stores OpenTelemetry spans using Redpanda's glossterm:schema-registry[] wire format, with a custom Protobuf schema named `redpanda.otel_traces-value` that follows the https://opentelemetry.io/docs/specs/otel/protocol/[OpenTelemetry Protocol (glossterm:otlp[])^] specification. Spans include attributes following OpenTelemetry https://opentelemetry.io/docs/specs/semconv/gen-ai/[semantic conventions for generative AI^], such as `gen_ai.operation.name` and `gen_ai.conversation.id`. The schema is automatically registered in the Schema Registry with the topic, so Kafka clients can consume and deserialize trace data correctly.
311+
The `redpanda.otel_traces` topic stores OpenTelemetry spans using Redpanda's glossterm:Schema Registry[] wire format, with a custom Protobuf schema named `redpanda.otel_traces-value` that follows the https://opentelemetry.io/docs/specs/otel/protocol/[OpenTelemetry Protocol (OTLP)^] specification. Spans include attributes following OpenTelemetry https://opentelemetry.io/docs/specs/semconv/gen-ai/[semantic conventions for generative AI^], such as `gen_ai.operation.name` and `gen_ai.conversation.id`. The schema is automatically registered in the Schema Registry with the topic, so Kafka clients can consume and deserialize trace data correctly.
312312

313313
Redpanda manages both the `redpanda.otel_traces` topic and its schema automatically. If you delete either the topic or the schema, they are recreated automatically. However, deleting the topic permanently deletes all trace data, and the topic comes back empty. Do not produce your own data to this topic. It is reserved for OpenTelemetry traces.
314314

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

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
= Ingest OpenTelemetry Traces from Custom Agents
22
:description: Configure a Redpanda Connect pipeline to ingest OTEL traces from custom agents into Redpanda for unified observability.
33
:page-topic-type: how-to
4-
:learning-objective-1: Configure a Redpanda Connect pipeline to receive OpenTelemetry traces from custom agents via HTTP and publish them to redpanda.otel_traces
4+
:learning-objective-1: Configure a Redpanda Connect pipeline to receive OpenTelemetry traces from custom agents via HTTP and publish them to `redpanda.otel_traces`
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

@@ -30,7 +30,7 @@ If you're using LangChain with OpenTelemetry tracing, you can send traces to Red
3030
. 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.
3131

3232
. Configure your OTEL exporter to send traces to your Redpanda Connect pipeline using environment variables:
33-
33+
+
3434
[,bash]
3535
----
3636
# Configure LangChain OTEL integration
@@ -97,17 +97,22 @@ For complete trace structure details, see xref:ai-agents:observability/concepts.
9797

9898
== Configure the ingestion pipeline
9999

100-
Create a Redpanda Connect pipeline that receives HTTP requests containing OTLP traces and publishes them to the `redpanda.otel_traces` topic. The pipeline uses the `otlp_http` input component, which is specifically designed to receive OpenTelemetry Protocol data.
100+
Create a Redpanda Connect pipeline that receives OTLP traces and publishes them to the `redpanda.otel_traces` topic. Choose HTTP or gRPC transport based on your agent's requirements.
101101

102102
=== Create the pipeline configuration
103103

104-
Create a pipeline configuration file that defines the OTLP HTTP ingestion endpoint.
104+
Create a pipeline configuration file that defines the OTLP ingestion endpoint.
105105

106+
[tabs]
107+
====
108+
HTTP::
109+
+
110+
--
106111
The `otlp_http` input component:
107112
108113
* Exposes an OpenTelemetry Collector HTTP receiver
109114
* Accepts traces at the standard `/v1/traces` endpoint
110-
* Converts incoming OTLP data into individual Redpanda OTEL v1 Protobuf messages and publishes them to the `redpanda.otel_traces` topic
115+
* Converts incoming OTLP data into individual Redpanda OTEL v1 Protobuf messages
111116
112117
The following example shows a minimal pipeline configuration. Redpanda Cloud automatically injects authentication handling, so you don't need to configure `auth_token` in the input.
113118
@@ -126,13 +131,18 @@ output:
126131
- mechanism: "REDPANDA_CLOUD_SERVICE_ACCOUNT"
127132
topic: "redpanda.otel_traces"
128133
----
134+
--
129135
130-
The `otlp_http` 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.
136+
gRPC::
137+
+
138+
--
139+
The `otlp_grpc` input component:
131140
132-
[[use-grpc]]
133-
==== Alternative: Use gRPC instead of HTTP
141+
* Exposes an OpenTelemetry Collector gRPC receiver
142+
* Accepts traces via the OTLP gRPC protocol
143+
* Converts incoming OTLP data into individual Redpanda OTEL v1 Protobuf messages
134144
135-
If your custom agent requires gRPC transport, use the `otlp_grpc` input instead:
145+
The following example shows a minimal pipeline configuration. Redpanda Cloud automatically injects authentication handling.
136146
137147
[,yaml]
138148
----
@@ -150,7 +160,11 @@ output:
150160
topic: "redpanda.otel_traces"
151161
----
152162
153-
Clients must include the authentication token in gRPC metadata as `authorization: Bearer <token>`.
163+
NOTE: Clients must include the authentication token in gRPC metadata as `authorization: Bearer <token>`.
164+
--
165+
====
166+
167+
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.
154168

155169
=== Deploy the pipeline in Redpanda Cloud
156170

modules/ai-agents/pages/observability/transcripts.adoc

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ After reading this page, you will be able to:
2525

2626
=== Filter transcripts
2727

28-
Use filters to narrow down transcripts and quickly locate specific executions. When you use any of the filters, the transcript list updates to show only matching results.
28+
Use filters to narrow down transcripts and quickly locate specific executions. When you use any of the filters, the transcript table updates to show only matching results.
2929

3030
The Transcripts view provides several quick-filter buttons:
3131

@@ -38,7 +38,7 @@ The Transcripts view provides several quick-filter buttons:
3838

3939
You can combine multiple filters to narrow results further. For example, use *Tool Calls* and *Errors Only* together to investigate failed tool executions.
4040

41-
Toggle *Full traces* on to see the complete execution context, in grayed-out text, for the filtered transcripts.
41+
Toggle *Full traces* on to see the complete execution context, in grayed-out text, for the filtered transcripts in the table.
4242

4343
==== Filter by attribute
4444

@@ -59,7 +59,7 @@ Click on any bar in the timeline to zoom into transcripts from that specific tim
5959

6060
[NOTE]
6161
====
62-
When viewing time ranges with many transcripts (hundreds or thousands), the table displays a subset of the data to maintain performance and usability. The timeline bar indicates the actual time range of data currently loaded into the view, which may be narrower than your selected time range.
62+
When viewing time ranges with many transcripts (hundreds or thousands), the table displays a subset of the data to maintain performance and usability. The timeline bar indicates the actual time range of data currently loaded into view, which may be narrower than your selected time range.
6363
6464
Refer to the timeline header to check the exact range and count of visible transcripts, for example, "Showing 100 of 299 transcripts from 13:17 to 15:16".
6565
====
@@ -74,13 +74,11 @@ The transcript table shows:
7474

7575
To view nested operations, expand any parent span. To learn more about span hierarchies and cross-service traces, see xref:ai-agents:observability/concepts.adoc[].
7676

77-
// TODO: Confirm how gateway traces appear
78-
79-
Click any span to view details in the right panel:
77+
Click any span to view details in the panel:
8078

8179
* **Summary tab**: High-level overview with token usage, operation counts, and conversation history.
8280
* **Attributes tab**: Structured metadata for debugging (see xref:ai-agents:observability/concepts.adoc#key-attributes-by-layer[standard attributes by layer]).
83-
* **Raw data tab**: Complete glossterm:opentelemetry[] span in JSON format. You can also view raw transcript data in the `redpanda.otel_traces` topic.
81+
* **Raw data tab**: Complete glossterm:OpenTelemetry[] span in JSON format. You can also view raw transcript data in the `redpanda.otel_traces` topic.
8482

8583
[NOTE]
8684
====

0 commit comments

Comments
 (0)