Workshop Overview

Use case, architecture, prerequisites, and the differences between hybrid and dual signal mode.

5 minutes

The Use Case

Your organization runs AppDynamics for APM today. As part of a data visibility and governance initiative, leadership wants application performance data flowing into Splunk Observability Cloud as well giving teams a unified view alongside infrastructure metrics, logs, and other signals already in Splunk.

Rather than re-instrumenting every service with a separate OpenTelemetry SDK, the AppDynamics Java Agent supports dual signal mode: a single agent produces both AppDynamics APM data and OpenTelemetry traces simultaneously. This lets you maintain full AppDynamics functionality while streaming the same telemetry to Splunk Observability Cloud through an OpenTelemetry Collector.

This is especially helpful for your current L1 and L2 teams who currently know and rely on AppDynamics. Dual ingest helps maintain context as the applications and services they are responsible become more connected to new services hosted in SaaS platforms in the cloud.

What You’ll Learn

By the end of this workshop, you will:

Architecture

In this workshop you will run a Spring Boot Java application directly on your EC2 instance. The AppDynamics Java Agent attaches to the JVM process.

Phase 1: Normal AppD instrumentation:

text
Java App + AppD Agent  ──▶  AppD Controller

Phase 2: Dual signal mode enabled:

text
Java App + AppD Agent  ──▶  AppD Controller        (AppD protocol, unchanged)
                       ──▶  OTel Collector          (OTLP on localhost:4317)
                           Splunk Observability Cloud

The OpenTelemetry Collector runs on the same EC2 instance, receives OTLP from the agent, and exports traces and metrics to Splunk Observability Cloud.

Note: It is possible to send data directly from the agent to our OTLP ingest endpoint without a collector but you may lose some attributes and association taking part in your OTel config.

Hybrid Mode vs Dual Signal Mode

The AppDynamics Java Agent supports two modes for emitting OpenTelemetry data.

Understanding the difference matters!

Hybrid Mode - Old and Dusty (GA, Java Agent 22.3+)

Dual Signal Mode - New Hotness (Beta, Java Agent 25.6+)

Why Dual Mode for This Workshop

Dual signal mode adds correlation attributes to root spans that hybrid mode does not:

AttributeDescription
appd.app.nameThe AppDynamics application name
appd.tier.nameThe AppDynamics tier name (also appears mid-trace when the tier changes)
appd.bt.nameThe AppDynamics business transaction name
appd.request.guidThe AppDynamics request GUID

These attributes enable global data links clickable links on Splunk Observability Cloud traces that navigate directly to the corresponding AppDynamics view. Additionally, AppDynamics snapshots captured in dual mode include the OTel TraceId in the Data Collectors tab, enabling navigation in both directions.

Prerequisites

Your workshop instance comes pre-configured with the tools you need:

RequirementStatus on Workshop Instance
Linux host (Ubuntu)Provided
OpenJDK 17Pre-installed
MavenPre-installed
Workshop assetsPre-deployed at ~/workshop/appd/

You will also need:

RequirementHow to Get It
Splunk Observability Cloud accountProvided by your instructor
Splunk Access Token (Ingest)echo $ACCESS_TOKEN on your instance
Splunk Realm (e.g. us0, us1, eu0)echo $REALM on your instance
Instance nameecho $INSTANCE on your instance
AppDynamics Controller accessSE Lab Controller log in with your Cisco credentials