Download PDF
Download page AppDynamics for OpenTelemetry™ を使用したアプリケーションのインストゥルメント化.
AppDynamics for OpenTelemetry™ を使用したアプリケーションのインストゥルメント化
アプリケーションを AppDynamics Java または Node.js エージェントでモニターする場合、AppDynamics エージェントが OpenTelemetry スパンデータとアプリケーション パフォーマンス モニタリング(APM)データの両方を報告するようにインストゥルメント化します。インストゥルメント化されると、エージェントは HTTP のエントリおよび終了リクエストから OpenTelemetry スパンデータを生成します。AppDynamics 相関ヘッダーは、OpenTelemetry バゲージヘッダー内に挿入されます。これにより、交差する OpenTelemetry ノードを介してビジネストランザクションとの相関が発生します。
たとえば、上の図は、AppDynamics Java エージェントが OpenTelemetry で有効になっている場合に、OpenTelemetry データがどのように報告されるかを示しています。Java エージェントは APM データを AppDynamics コントローラに送信し、OpenTelemetry スパンを OpenTelemetry Collector に送信します。Collector は、受信したスパンを OTLP/HTTP 経由で AppDynamics OpenTelemetry サービスに送信します。AppDynamics OpenTelemetry サービスは、スパンをトレースに統合し、トレースをコントローラに登録されているビジネストランザクションにマッピングします。コントローラ UI には、AppDynamics エージェントからの APM データと AppDynamics OpenTelemetry サービスからの OpenTelemetry データの両方が表示されます。
はじめる前に
OpenTelemetry™ コレクタをデプロイして構成し、リソース属性を構成したことを確認してください。
Java エージェントで OpenTelemetry を有効にする
OpenTelemetry で Java エージェントを有効にするには、Java エージェントバージョン 21.11.4 以降が必要です(Java エージェントバージョン 22.3.0 以降を使用することをお勧めします)。OpenTelemetry でサポートされる Java フレームワークのリストについては、「Supported Java Agent Frameworks for OpenTelemetry」を参照してください。
JVM システムプロパティに以下のシステムプロパティを追加します。
OpenTelemetry を有効にします。
-Dappdynamics.opentelemetry.enabled=true
JAVAトレースエクスポータを OTLP に設定します(OpenTelemetry 対応の Java エージェントは、OTLP 形式で OpenTelemetry スパンを送信します)。
-Dotel.traces.exporter=otlp
JAVAJVM の階層名(
service.name
内)とアプリケーション名(service.namespace
内)を設定します。-Dotel.resource.attributes="service.name=Shop,service.namespace=Shopping"
JAVAアプリケーション側で階層名とアプリケーション名を設定しない場合は、OpenTelemetry
otel-config.yml
ファイルまたはOTEL_RESOURCE_ATTRIBUTES
環境変数でそれらを設定するオプションがあります。「Configure Resource Attributes」を参照してください。
(オプション)コレクタのエンドポイントの設定
デフォルトでは、コレクタのエンドポイントは http://localhost:4317
を指しますが、必要に応じて設定できます。例:
-Dotel.exporter.otlp.traces.endpoint=http://localhost:4318
(オプション)バッチ処理のタイミングの設定
デフォルトのエクスポータスパンバッチ処理は 5000 ミリ秒ですが、エージェント側でエクスポータスパンバッチ処理を変更できます。
-Dotel.bsp.schedule.delay=60000
Java 構成の例
-Dotel.traces.exporter=otlp
-Dotel.resource.attributes="service.name=DownTier,service.namespace=OTEL-application"
-Dappdynamics.opentelemetry.enabled=true
-Dappdynamics.controller.hostName=sample-controller.e2e.appd-test.com
-Dappdynamics.controller.port=443
-Dappdynamics.agent.accountName=OTEL-account
-Dappdynamics.agent.accountAccessKey=3ea55405-61b2-43bb-a8e0-58aff761a028
-Dappdynamics.controller.ssl.enabled=true
-Dappdynamics.agent.applicationName=ecommerce_OT
-Dappdynamics.agent.uniqueHostId=ecommerce_OT_1
-Dappdynamics.agent.tierName=DownTier
-Dappdynamics.agent.nodeName=DownNode
-javaagent:/<Java Agent Jar Path>/javaagent.jar
Node.js エージェントで OpenTelemetry を有効にする
Node.js エージェントで OpenTelemetry を有効にするには、Node.js エージェントバージョン 22.3.0 以降が必要です。
Node.js アプリケーションコードに以下の OpenTelemetry 構成を追加します。
require
ステートメントで OpenTelemetry を有効にします。Node.js アプリケーションの場合、OpenTelemetry の AppName および TierName は、Node.js
require
ステートメントのAppName
とTierName
から派生します。AppDynamics アプリケーション/階層にMY_APP/MY_TIER
という名前が付けられている場合、OpenTelemetry アプリケーション/階層はMY_APP_OTEL/MY_TIER_OTEL
になります。require("appdynamics").profile( { ... openTelemetry: { enabled: <True:False> // openTelemetry is enabled or disabled } ... } )
JSスパンデータの追加のロギングを許可します。
require("appdynamics").profile( { ... openTelemetry: { debug: <True:False> // Additional logging, console dump of span data ... } ... } )
JSOpenTelemetry Collector の URL を追加します。
require("appdynamics").profile( { ... openTelemetry: { collector: { url: <url> <http://host:port/v1/traces> // The default value is http://localhost:55680/v1/traces } ... } )
JS(オプション)バッチ処理パラメータを更新します。
require("appdynamics").profile( { ... openTelemetry: { exporter: { maxQueueSize: size_in_byte the maximum queue size. After the size is reached spans are dropped. The default value is 2048. scheduledDelayMillis: time_in_ms the delay interval in milliseconds between two consecutive exports. The default value is 5000. } ... } } )
JS
Node.js 構成の例
require("appdynamics").profile(
{
...
openTelemetry: {
enabled: <True:False> // OpenTelemetry enabled or disabled
debug: <True:False> // Additional logging, console dump of span data
collector: {
url: <url> <http://host:port/v1/traces> // The default value is http://localhost:55680/v1/traces
}
}
...
}
)
次のステップ
AppDynamics for OpenTelemetry を使用してアプリケーションをインストゥルメント化すると、コントローラで OpenTelemetry データを表示できます。
OpenTelemetry™ は The Linux Foundation® の商標です。