ワークショップの概要
ユースケース、アーキテクチャ、前提条件、およびハイブリッドモードとデュアルシグナルモードの違いについて説明します。
ユースケース #
あなたの組織では現在、APM として AppDynamics を使用しています。データの可視性とガバナンスの取り組みの一環として、経営層はアプリケーションパフォーマンスデータを Splunk Observability Cloud にも送信し、Splunk に既にあるインフラストラクチャメトリクス、ログ、その他のシグナルと統合されたビューをチームに提供したいと考えています。
すべてのサービスを別の OpenTelemetry SDK で再計装する代わりに、AppDynamics Java Agent はデュアルシグナルモードをサポートしています。単一のエージェントが AppDynamics APM データと OpenTelemetry トレースの両方を同時に生成します。これにより、AppDynamics の完全な機能を維持しながら、OpenTelemetry Collector を介して同じテレメトリを Splunk Observability Cloud にストリーミングできます。
これは、現在 AppDynamics を熟知し依存している L1 および L2 チームにとって特に役立ちます。デュアルインジェストにより、担当するアプリケーションやサービスがクラウドの SaaS プラットフォームでホストされる新しいサービスとより多く接続されるようになっても、コンテキストを維持できます。
学習内容 #
このワークショップを完了すると、以下のことができるようになります
- AppDynamics Java Agent を使用してシンプルな Java サービスをビルドおよび実行する
- ハイブリッドモードとデュアルシグナルモードの違いを理解する
- デュアルシグナルモードを有効にして、APM データを AppDynamics と Splunk Observability Cloud の両方に送信する
- 両方のプラットフォームでトレースとメトリクスを確認する
- Splunk Observability Cloud で AppDynamics へのワンクリックナビゲーション用のグローバルデータリンクを作成する
アーキテクチャ #
このワークショップでは、EC2 インスタンス上で Spring Boot Java アプリケーションを直接実行します。AppDynamics Java Agent は JVM プロセスにアタッチされます。
フェーズ 1: 通常の AppD 計装:
Java App + AppD Agent ──▶ AppD Controllerフェーズ 2: デュアルシグナルモード有効化:
Java App + AppD Agent ──▶ AppD Controller (AppD protocol, unchanged)
──▶ OTel Collector (OTLP on localhost:4317)
│
▼
Splunk Observability CloudOpenTelemetry Collector は同じ EC2 インスタンス上で実行され、エージェントから OTLP を受信し、トレースとメトリクスを Splunk Observability Cloud にエクスポートします。
注意: Collector を使用せずにエージェントから直接 OTLP インジェストエンドポイント にデータを送信することも可能ですが、OTel 設定で使用される一部の属性やアソシエーションが失われる可能性があります。
ハイブリッドモード vs デュアルシグナルモード #
AppDynamics Java Agent は、OpenTelemetry データを出力するための2つのモードをサポートしています。
この違いを理解することが重要です!
ハイブリッドモード - 旧式 (GA, Java Agent 22.3+) #
- AppDynamics の独自の計装ルールが OTel 形式のスパンを生成します
- エージェントは既存の計装を再利用して OTel データを生成します(古いセマンティックバージョン)
- フレームワークカバレッジは AppDynamics が計装するものに限定されます
- 有効化:
-Dagent.deployment.mode=hybrid
デュアルシグナルモード - 最新版 (Beta, Java Agent 25.6+) #
- 完全な OpenTelemetry Java auto-instrumentation が AppD エージェントと並行して実行されます
- 2つの独立した計装エンジンが並列で動作します
- より広いフレームワークカバレッジ - OTel Java エージェントがサポートするすべてのもの
- CPU とメモリの消費量が増加します
- 有効化:
-Dagent.deployment.mode=dualまたは環境変数AGENT_DEPLOYMENT_MODE=dual
このワークショップでデュアルモードを使用する理由 #
デュアルシグナルモードは、ハイブリッドモードにはない相関属性をルートスパンに追加します
| 属性 | 説明 |
|---|---|
appd.app.name | AppDynamics アプリケーション名 |
appd.tier.name | AppDynamics ティア名(トレースの途中でティアが変わる場合にも表示されます) |
appd.bt.name | AppDynamics ビジネストランザクション名 |
appd.request.guid | AppDynamics リクエスト GUID |
これらの属性により、グローバルデータリンクが有効になります。これは Splunk Observability Cloud のトレース上のクリック可能なリンクで、対応する AppDynamics のビューに直接ナビゲートできます。さらに、デュアルモードでキャプチャされた AppDynamics のスナップショットには、Data Collectors タブに OTel の TraceId が含まれるため、双方向のナビゲーションが可能になります。
前提条件 #
ワークショップインスタンスには必要なツールが事前設定されています
| 要件 | ワークショップインスタンスでの状態 |
|---|---|
| Linux ホスト (Ubuntu) | 提供済み |
| OpenJDK 17 | インストール済み |
| Maven | インストール済み |
| ワークショップアセット | ~/workshop/appd/ にデプロイ済み |
以下も必要です
| 要件 | 取得方法 |
|---|---|
| Splunk Observability Cloud アカウント | インストラクターから提供されます |
| Splunk Access Token (Ingest) | インスタンスで echo $ACCESS_TOKEN を実行 |
Splunk Realm (例: us0, us1, eu0) | インスタンスで echo $REALM を実行 |
| インスタンス名 | インスタンスで echo $INSTANCE を実行 |
| AppDynamics Controller アクセス | SE Lab Controller に Cisco 資格情報でログイン |
