互換性

Java Datadog Trace ライブラリはオープンソースです。詳細については、GitHub リポジトリをご覧ください。

サポートされている Java ランタイム

Java トレーサーは、次の Oracle JDK および OpenJDK の JVM ランタイムの自動インスツルメンテーションをサポートします。

Java バージョンオペレーティングシステムサポートレベルトレーサーバージョン
18〜19Windows (x86、x86-64)
Linux (x86、x86-64、arm64)
Mac (x86、x86-64、arm64)
ベータ版最新
8〜17Linux (arm64)
Mac (arm64)
ベータ版最新
7Linux (arm64)
Mac (arm64)
サポート終了v0
8〜17Windows (x86、x86-64)
Linux (x86、x86-64)
Mac (x86、x86-64)
GA最新
7Windows (x86、x86-64)
Linux (x86、x86-64)
Mac (x86、x86-64)
メンテナンスv0

Datadog は、Java の早期アクセスバージョンを公式にサポートしていません。

サポートレベル

レベルサポート内容
非対応実装していません。特別なご要望は Datadog サポートにお問い合わせください。
ベータ版初期実装です。まだすべての機能が含まれていない可能性があります。新機能のサポート、バグやセキュリティの修正は、ベストエフォートで提供されます。
一般提供 (GA)全機能の完全実装。新機能、バグやセキュリティの修正を完全サポート。
メンテナンス既存機能の完全実装。新機能は受けません。バグフィックス、セキュリティフィックスのみの対応となります。
サポート終了 (EOL)サポートはありません。

インテグレーション

ベータインテグレーションはデフォルトで無効になっていますが、個別に有効にできます。

  • システムプロパティ: -Ddd.integration.<インテグレーション名>.enabled=true
  • 環境変数: DD_INTEGRATION_<インテグレーション名>_ENABLED=true

Web フレームワークの互換性

dd-java-agent には、次のウェブフレームワークの自動トレースのサポートが含まれます。

Web フレームワークのトレーシングでは以下の確認が可能です。

  • HTTP リクエストの応答タイミング
  • HTTP リクエスト用のタグ (ステータスコード、メソッドなど)
  • エラーとスタックトレースの取得
  • Web リクエストと分散型トレーシングの間で作成された作業のリンク
サーバーバージョンサポートの種類インスツルメンテーション名 (コンフィギュレーションに使用)
Akka-Http サーバー10.0+完全対応akka-httpakka-http-server
Finatra Web2.9+完全対応finatra
Grizzly2.0+完全対応grizzly
Grizzly-HTTP2.3.20+完全対応grizzly-filterchain
Java Servlet 互換2.3+、3.0+完全対応servletservlet-2servlet-3
Jax-RS アノテーションJSR311-API完全対応jax-rsjaxrsjax-rs-annotationsjax-rs-filter
Jetty7.0-12.x完全対応jetty
Micronaut HTTP サーバー2.x完全対応micronaut
Mulesoft4完全対応mule
Netty HTTP サーバー3.8+完全対応netty, netty-3.8, netty-4.0, netty-4.1
Play2.3-2.8完全対応playplay-action
Ratpack1.5+完全対応ratpack
Restlet HTTP サーバー2.2 - 2.4完全対応restlet-http.
Spark Java2.3+ベータ版sparkjava (要 jetty)
Spring Boot1.5完全対応spring-web または spring-webflux
Spring Web (MVC)4.0+完全対応spring-web
Spring WebFlux5.0+完全対応spring-webflux
Tomcat5.5+完全対応tomcat
Vert.x3.4-3.9.x完全対応vertxvertx-3.4

注: 多くのアプリケーションサーバーは Servlet 互換でそのインスツルメンテーションによって自動的にカバーされます (Websphere、Weblogic、JBoss)。 また、Spring Boot (バージョン 3) のようなフレームワークは、通常、Tomcat、Jetty、Netty など、サポートされた組み込みアプリケーションサーバーを使うため、本質的に機能します。

フレームワークインテグレーションがデフォルトで無効

以下のインスツルメンテーションはデフォルトでは無効になっており、以下の設定により有効にすることができます。

インスツルメンテーション有効にするには
JAX-WS-Ddd.integration.jax-ws.enabled=true
Mulesoft-Ddd.integration.mule.enabled=true, -Ddd.integration.grizzly-client.enabled=true, -Ddd.integration.grizzly-filterchain.enabled=true
Grizzly-Ddd.integration.grizzly-client.enabled=true
Grizzly-HTTP-Ddd.integration.grizzly-filterchain.enabled=true
Ning-Ddd.integration.ning.enabled=true
Spark Java-Ddd.integration.sparkjava.enabled=true

: JAX-WS インテグレーションは、@WebService (JAX-WS 1.x) および @WebServiceProvider (JAX-WS 2.x) でアノテーションされたエンドポイントを使用します。

希望する Web フレームワークが見つかりませんか?Datadog では継続的にサポートを追加しています。サポートが必要な場合は、Datadog サポートにお問い合わせください。

ネットワーキングフレームワークの互換性

dd-java-agent には、次のネットワーキングフレームワークの自動トレースのサポートが含まれます。

ネットワーキングのトレーシングでは以下の確認が可能です

  • リクエストの応答タイミング
  • リクエスト用のタグ (応答コードなど)
  • エラーとスタックトレースの取得
  • 分散型トレーシング
フレームワークバージョンサポートの種類インスツルメンテーション名 (構成に使用)
Apache HTTP クライアント4.0+完全対応httpclientapache-httpclientapache-http-client
Apache HTTP 非同期クライアント4.0+完全対応httpasyncclientapache-httpasyncclient
AWS Java SDK1.11+、2.2+完全対応aws-sdk
Camel-OpenTelemetry3.12.0+ベータopentelemetry-1
Commons HTTP クライアント2.0+完全対応commons-http-client
Google HTTP クライアント1.19.0+完全対応google-http-client
Grizzly HTTP クライアント1.9+ベータ版grizzly-client
gRPC1.5+完全対応grpcgrpc-clientgrpc-server
HttpURLConnectionすべて完全対応httpurlconnectionurlconnection
Kafka-Clients0.11+完全対応kafka
Kafka-Streams0.11+完全対応kafkakafka-streams
Java RMIすべて分散型トレーシング非対応rmirmi-clientrmi-server
Jax RS クライアント2.0+完全対応jax-rsjaxrsjax-rs-client
Jersey クライアント1.9-2.29完全対応jax-rsjaxrsjax-rs-client
JMS1 と 2完全対応jmsjms-1jms-2
Netty HTTP クライアント4.0+完全対応nettynetty-4.0netty-4.1
Ning HTTP クライアント1.9.0+ベータ版ning
OkHTTP2.2+完全対応okhttpokhttp-2okhttp-3
Play WSClient1.0+完全対応play-ws
Rabbit AMQP2.7+完全対応amqprabbitmq
Spring SessionAwareMessageListener3.1+完全対応spring-jms-3.1
Spring WebClient5.0+完全対応spring-webfluxspring-webflux-client

Kafka に関する注記: Datadog の Kafka インテグレーションは、ヘッダー API をサポートする Kafka のバージョン 0.11+ で機能します。この API はトレースコンテキストの挿入と抽出に使用されます。バージョンが混在する環境でシステムを稼働させている場合は、Kafka ブローカーが Kafka のより新しいバージョンを間違って報告する場合があります。この場合、トレーサーがローカルのプロデューサーでサポートされていないヘッダーを挿入しようとしたときに問題が発生することがあります。また、古いバージョンのコンシューマーはヘッダーが存在するためにメッセージを収集することができません。これらの問題を回避するために、0.11 より前の Kafka のバージョンが混在している環境では、環境変数: DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false を伴うコンテキストの伝搬を無効化するようにしてください。

JMS に関する注記: Datadog の JMS インテグレーションでは、コンシューマーサービスとプロデューサーサービス間のコンテキスト伝播を維持するために、メッセージオブジェクトのプロパティ x__dash__datadog__dash__trace__dash__idx__dash__datadog__dash__parent__dash__id を自動的に追加して読み込みを行うようにします。

Camel に関する注記: Camel のルートを使った分散型トレースの伝播はサポートされていません。

希望するネットワーキングフレームワークが見つかりませんか?Datadog では継続的にサポートを追加しています。サポートが必要な場合は、Datadog サポートにお問い合わせください。

データストアの互換性

dd-java-agent には、次のデータベースフレームワーク/ドライバーの自動トレースのサポートが含まれます。

データストアのトレーシングでは以下の確認が可能です

  • リクエストの応答タイミング
  • クエリ情報 (サニタイジングされたクエリ文字列など)
  • エラーとスタックトレースの取得
データベースバージョンサポートの種類インスツルメンテーション名 (構成に使用)
Aerospike4.0+完全対応aerospike
Couchbase2.0+完全対応couchbase
Cassandra3.0+完全対応cassandra
Elasticsearch Transport2.0+完全対応elasticsearchelasticsearch-transportelasticsearch-transport-{2,5,6,7} (1 つ選択)
Elasticsearch Rest5.0+完全対応elasticsearchelasticsearch-restelasticsearch-rest-{5,6,7} (1 つ選択)
JDBCN/A完全対応jdbcjdbc-datasource
Jedis1.4+完全対応jedisredis
Lettuce4.0+完全対応lettucelettuce-4-asynclettuce-5-rx
MongoDB3.0-4.0+完全対応mongo
OpenSearch Rest1.x-2.x完全対応opensearchopensearch-rest
OpenSearch Transport1.0+完全対応opensearchopensearch-transport
RediScala1.5+完全対応rediscalaredis
Redisson2.x-3.x完全対応redissonredis
SpyMemcached2.12+完全対応spymemcached
Vert.x Cassandra クライアント3.9完全対応cassandra
Vert.x Redis クライアント3.9完全対応vertx-redis-client
Vert.x MySQL クライアント3.9完全対応vertx-sql-client

dd-java-agent は、次を含む一般的な JDBC ドライバーとも互換性があります。

  • Apache Derby
  • Firebird SQL
  • H2 データベースエンジン
  • HSQLDB
  • IBM DB2
  • MariaDB
  • MSSQL (Microsoft SQL Server)
  • MySQL
  • Oracle
  • Postgres SQL
  • ScalikeJDBC

データベースインテグレーションがデフォルトで無効

以下のインスツルメンテーションはデフォルトでは無効になっており、以下の設定により有効にすることができます。

インスツルメンテーション有効にするには
JDBC-Datasource-Ddd.integration.jdbc-datasource.enabled=true

希望するデータストアが見つかりませんか?Datadog では継続的にサポートを追加しています。サポートが必要な場合は、Datadog サポートにお問い合わせください。

フレームワーク互換性の追加

dd-java-agent には、次のフレームワークの自動トレースのサポートが含まれます。

フレームワークバージョンサポートの種類インスツルメンテーション名 (構成に使用)
Datanucleus JDO4.0+完全対応datanucleus
Dropwizard Views0.7+完全対応dropwizarddropwizard-view
GraphQL14.0+完全対応graphql-java
Hibernate3.5+完全対応hibernatehibernate-core
Hystrix1.4+完全対応hystrix
JSP Rendering2.3+完全対応jspjsp-renderjsp-compile
JUnit4.1+、5.3+完全対応junitjunit-4junit-5
プロジェクトリアクタ3.1+完全対応reactor-core
Quartz2.x完全対応quartz
RxJava2.x完全対応rxjava
Spring Data1.8+完全対応spring-data
Spring Scheduling3.1+完全対応spring-scheduling
Twilio SDK< 8.0完全対応twilio-sdk

希望するフレームワークが見つかりませんか?Datadog では継続的にサポートを追加しています。フレームワークのリクエストは、サポートチームまでお気軽にお問い合わせください。

サポートされていないフレームワークを使ったアプリケーションの可視性を向上させるには、次のことを検討してください。

インテグレーションの無効化

大半のインテグレーションはデフォルトで有効になっています。次の設定により、デフォルトを無効に変更できます。

  • システムプロパティ: -Ddd.integrations.enabled=false
  • 環境変数: DD_INTEGRATIONS_ENABLED=false

インテグレーション箱別に有効または無効にできます (上記のデフォルトをオーバーライド)。

  • システムプロパティ: -Ddd.integration.<INTEGRATION_NAME>.enabled=true
  • 環境変数: DD_INTEGRATION_<INTEGRATION_NAME>_ENABLED=true

(各インテグレーションの名前については上記を参照してください。)

既知の問題

Bitbucket での Java トレーサーの実行はサポートされていません。

その他の参考資料

お役に立つドキュメント、リンクや記事: