Skip to main content
Splunk Agent Observability traces A2A (Agent2Agent) interactions using the splunk-ao-a2a instrumentor — giving you a single distributed trace across agents, including LLM calls, tool use, and cross-agent handoffs.

Setup

1

Installation

Add the OpenTelemetry packages to your project:
The opentelemetry-api and opentelemetry-sdk packages provide the core OpenTelemetry functionality. The opentelemetry-exporter-otlp package enables sending traces to Splunk Agent Observability’s OTLP endpoint.
2

Create environment variables for your Splunk Agent Observability settings

Set environment variables for your Splunk Agent Observability settings, for example in a .env file. These environment variables are consumed by the SplunkAOSpanProcessorto authenticate and route traces to the correct Splunk Agent Observability Project and Agent Stream:
3

Self hosted deployments: Set the OTel endpoint

Skip this step if you are using a hosted version.
The OTel endpoint is different from Splunk Agent Observability’s regular API endpoint and is specifically designed to receive telemetry data in the OTLP format.If you are using:
  • A cloud deployment, then you don’t need to provide a custom OTel endpoint. The default endpoint <your-splunk-ao-api-url>/otel/traces will be used automatically.
  • A self-hosted deployment, replace the <your-splunk-ao-api-url>/otel/traces endpoint with your deployment URL. The format of this URL is based on your console URL, appending /otel/traces.
The convention is to store this in the SPLUNK_AO_CONSOLE_URL environment variable. For example:
4

Initialize and create the Splunk Agent Observability span processor

The SplunkAOSpanProcessor automatically configures authentication and metadata using your environment variables. It also:
  • Auto-builds OTLP headers using your Splunk Agent Observability credentials
  • Configures the correct OTLP trace endpoint
  • Registers a batch span processor that exports traces to Splunk Agent Observability
5

Install and instrument A2A

All a2a-sdk client and server methods are now traced automatically.

How it works

When Agent A calls Agent B, trace context is propagated through A2A message metadata. Both agents’ spans appear in one distributed trace:
A2A context_id is mapped to session.id, grouping all interactions in the same conversation into one Splunk Agent Observability session.

Full example

Two LangGraph agents in one script. Agent A (orchestrator) plans, delegates to Agent B via A2A, then synthesizes. Agent B (researcher) uses a tool and LLM to answer. Copy-paste and run.
.env