- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
プロファイラーは、Datadog トレースライブラリ内で送信されます。アプリケーションですでに APM を使用してトレースを収集している場合は、ライブラリのインストールをスキップして、プロファイラーの有効化に直接進むことができます。
Datadog Profiler を使用するには、JDK Flight Recorder が必要です。Datadog Profiler ライブラリは、OpenJDK 11+、Oracle JDK 11+、OpenJDK 8 (バージョン 1.8.0.262/8u262+) と Azul Zulu 8 (バージョン 1.8.0.212/8u212+) でサポートされています。OpenJ9 では、JDK Flight Recorder に対応していないため、サポートされていません。
注: Java Flight Recorder for OracleJDK を有効にするには、Oracle からの商用ライセンスが必要な場合があります。これがライセンスの一部であるかどうかを確認するには、Oracle の担当者にお問い合わせください。
LTS 以外の JDK バージョンには、Datadog Profiler ライブラリに関連する安定性とパフォーマンスの修正が含まれていない可能性があるため、Long Term Support JDK のバージョン8、11、17 を使用してください。
Code Hotspots のプロファイリングに関する追加要件:
dd-trace-java
バージョン 0.65.0+、またはdd-trace-java
バージョン 0.77.0+。Java、Scala、Groovy、Kotlin、Clojure など、すべての JVM ベースの言語をサポートしています。
Continuous Profiler は、AWS Lambda などのサーバーレスプラットフォームには対応していません。
アプリケーションのプロファイリングを開始するには
すでに Datadog を使用している場合は、Agent をバージョン 7.20.2 以降または 6.20.2 以降にアップグレードしてください。まだ APM を有効にしていない場合で Datadog にデータを送信するようにアプリケーションを設定するには、ご利用中の Agent で DD_APM_ENABLED
環境変数を true
に設定し、ポート 8126/TCP
をリッスンします。
Java Agent クラスファイルを含む dd-java-agent.jar
をダウンロードします。
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
注: Profiler は、0.55 以降のバージョンの dd-java-agent.jar
ライブラリで利用できます。
Ddd.profiling.enabled
フラグまたは DD_PROFILING_ENABLED
環境変数を true
に設定し、プロファイラーを有効にします。dd.service
、dd.env
、dd.version
を指定して、プロファイルをこれらの次元でフィルタリングしたりグループ化したりできるようにします。
サービスを呼び出します。
java \
-javaagent:dd-java-agent.jar \
-Ddd.service=<YOUR_SERVICE> \
-Ddd.env=<YOUR_ENVIRONMENT> \
-Ddd.version=<YOUR_VERSION> \
-Ddd.profiling.enabled=true \
-XX:FlightRecorderOptions=stackdepth=256 \
-jar <YOUR_SERVICE>.jar <YOUR_SERVICE_FLAGS>
export DD_SERVICE=<YOUR_SERVICE>
export DD_ENV=<YOUR_ENV>
export DD_VERSION=<YOUR_VERSION>
export DD_PROFILING_ENABLED=true
java \
-javaagent:dd-java-agent.jar \
-XX:FlightRecorderOptions=stackdepth=256 \
-jar <YOUR_SERVICE>.jar <YOUR_SERVICE_FLAGS>
注: javaagent
引数は -jar
の前に置く必要があり、アプリケーションの引数ではなく、JVM のオプションとして追加されます。詳細については、Oracleドキュメントを参照してください。
# 良い:
java -javaagent:dd-java-agent.jar ... -jar my-service.jar -more-flags
# 悪い:
java -jar my-service.jar -javaagent:dd-java-agent.jar ...
1〜2 分後、Datadog APM > Profiling ページでプロファイルを視覚化することができます。
dd-java-agent v0.84.0 以降および Java 15 以前では、割り当てが多いアプリケーションで過剰な CPU を使用する可能性があるため、割り当てプロファイラーはデフォルトでオフになっています。これは一般的ではないため、ステージング環境で試して、アプリケーションに影響するかどうかを確認することをお勧めします。有効にするには、割り当てプロファイラーの有効化を参照してください。
次の環境変数を使用してプロファイラーを構成できます。
環境変数 | タイプ | 説明 |
---|---|---|
DD_PROFILING_ENABLED | Boolean | -Ddd.profiling.enabled 引数の代替。true に設定してプロファイラを有効にします。 |
DD_PROFILING_ALLOCATION_ENABLED | Boolean | -Ddd.profiling.allocation.enabled 引数の代わりになります。割り当てプロファイラーを有効にするには、true に設定します。プロファイラーがすでに有効になっている必要があります。 |
DD_ENV | 文字列 | 環境名 (例: production )。 |
DD_SERVICE | 文字列 | サービス名 (例: web-backend )。 |
DD_VERSION | 文字列 | サービスのバージョン。 |
DD_TAGS | 文字列 | アップロードされたプロファイルに適用するタグ。<key>:<value> のように、コンマ区切り形式のリストである必要があります(例、layer:api, team:intake )。 |
プロファイラーの概要ガイドでは、パフォーマンスの問題があるサンプルサービスを例に、Continuous Profiler を使用して問題を理解し修正する方法を確認します。
お役に立つドキュメント、リンクや記事: