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
Copy file name to clipboardExpand all lines: modules/ai-agents/pages/observability/concepts.adoc
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@
6
6
:learning-objective-2: Interpret transcript structure for debugging and monitoring
7
7
:learning-objective-3: Distinguish between transcripts and audit logs
8
8
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.
10
10
11
11
After reading this page, you will be able to:
12
12
@@ -16,7 +16,7 @@ After reading this page, you will be able to:
16
16
17
17
== What are transcripts
18
18
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.
20
20
21
21
Transcripts capture:
22
22
@@ -31,7 +31,7 @@ With 100% sampling, every operation is captured, enabling comprehensive debuggin
31
31
32
32
== Traces and spans
33
33
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:
35
35
36
36
* A _trace_ represents the entire lifecycle of a request (for example, a tool invocation from start to finish).
37
37
* 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:
54
54
| Measure total request duration and identify slow agent invocations.
55
55
56
56
| `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.
58
58
| Track reasoning time and identify iteration patterns.
59
59
60
60
| `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].
62
62
| Trace calls between root agents and sub-agents, measure cross-agent latency, and identify which sub-agent was invoked.
63
63
64
64
| `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
256
256
}
257
257
----
258
258
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)
* `status.code` indicates success (0) or error (2)
265
265
266
266
=== Parent-child relationships
267
267
@@ -308,7 +308,7 @@ The `events` array captures what happened and when. Use `timeUnixNano` to see ex
308
308
[[opentelemetry-traces-topic]]
309
309
== How Redpanda stores trace data
310
310
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.
312
312
313
313
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.
Copy file name to clipboardExpand all lines: modules/ai-agents/pages/observability/ingest-custom-traces.adoc
+24-10Lines changed: 24 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
= Ingest OpenTelemetry Traces from Custom Agents
2
2
:description: Configure a Redpanda Connect pipeline to ingest OTEL traces from custom agents into Redpanda for unified observability.
3
3
: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`
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
@@ -30,7 +30,7 @@ If you're using LangChain with OpenTelemetry tracing, you can send traces to Red
30
30
. 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.
31
31
32
32
. Configure your OTEL exporter to send traces to your Redpanda Connect pipeline using environment variables:
33
-
33
+
+
34
34
[,bash]
35
35
----
36
36
# Configure LangChain OTEL integration
@@ -97,17 +97,22 @@ For complete trace structure details, see xref:ai-agents:observability/concepts.
97
97
98
98
== Configure the ingestion pipeline
99
99
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.
101
101
102
102
=== Create the pipeline configuration
103
103
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.
105
105
106
+
[tabs]
107
+
====
108
+
HTTP::
109
+
+
110
+
--
106
111
The `otlp_http` input component:
107
112
108
113
* Exposes an OpenTelemetry Collector HTTP receiver
109
114
* 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
111
116
112
117
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.
113
118
@@ -126,13 +131,18 @@ output:
126
131
- mechanism: "REDPANDA_CLOUD_SERVICE_ACCOUNT"
127
132
topic: "redpanda.otel_traces"
128
133
----
134
+
--
129
135
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:
131
140
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
134
144
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.
136
146
137
147
[,yaml]
138
148
----
@@ -150,7 +160,11 @@ output:
150
160
topic: "redpanda.otel_traces"
151
161
----
152
162
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.
Copy file name to clipboardExpand all lines: modules/ai-agents/pages/observability/transcripts.adoc
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ After reading this page, you will be able to:
25
25
26
26
=== Filter transcripts
27
27
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.
29
29
30
30
The Transcripts view provides several quick-filter buttons:
31
31
@@ -38,7 +38,7 @@ The Transcripts view provides several quick-filter buttons:
38
38
39
39
You can combine multiple filters to narrow results further. For example, use *Tool Calls* and *Errors Only* together to investigate failed tool executions.
40
40
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.
42
42
43
43
==== Filter by attribute
44
44
@@ -59,7 +59,7 @@ Click on any bar in the timeline to zoom into transcripts from that specific tim
59
59
60
60
[NOTE]
61
61
====
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.
63
63
64
64
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".
65
65
====
@@ -74,13 +74,11 @@ The transcript table shows:
74
74
75
75
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[].
76
76
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:
80
78
81
79
* **Summary tab**: High-level overview with token usage, operation counts, and conversation history.
82
80
* **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.
0 commit comments