この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Javaアプリケーション

Java SDKはJVM上でアプリケーションを計測することをサポートしています。その結果、Javaだけでなく、KotlinやScalaなどの他のJVM言語もサポートしています。

自動計測

Javaの自動計測は、任意のJava 8以上のアプリケーションにアタッチできるJavaエージェントJARを使用します。それは、いくつかのKotlinおよびScalaライブラリを含む、多くのhttps://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md[人気のあるライブラリとフレームワーク]からテレメトリをキャプチャするために、バイトコードを動的に注入します。アプリやサービスの"`edges`"でテレメトリデータをキャプチャするために使用できます。例えば、受信リクエスト、送信HTTPコール、データベースコールなどです。

自動計測はアプリケーションの変更を必要としません。設定するには、次の手順に従ってください:

  1. opentelemetry-java-instrumentationリポジトリのhttps://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar[Releases]からhttps://github.com/open-telemetry/opentelemetry-java-instrumentation/releases[opentelemetry-javaagent.jar]をダウンロードし、アプリケーションのDockerイメージにJARファイルを含めます。JARファイルにはエージェントと計測ライブラリが含まれています。

  2. アプリケーションを起動するコマンドを更新してJavaエージェントをロードするようにします。Dockerイメージのエントリポイントやコマンドを更新するか、アプリケーションのKubernetesマニフェストの`command`を更新します。`-javaagent:/path/to/opentelemetry-javaagent.jar`を追加してください:

    java -javaagent:/path/to/opentelemetry-javaagent.jar -jar myapp.jar
  3. サービス名とエクスポーターエンドポイントを設定するための追加の環境変数を指定してアプリケーションをデプロイします。サポートされているプロトコルはgRPCとHTTP上のprotobufです。

  4. SUSE Observabilityがトレースやメトリクスを受信していることを確認するには、サービス名のメトリクス / トレースエクスプローラーでメトリクス / トレースを検索してください。

詳細については、https://opentelemetry.io/docs/languages/java/automatic/[Open Telemetryのドキュメント]を参照してください。

手動計測

手動計測は、自動計測でサポートされていないコードの部分からメトリクス、トレース、またはログが必要な場合に使用できます。例えば、サポートされていないライブラリ、社内コード、またはビジネスレベルのメトリクスです。

そのデータをキャプチャするには、アプリケーションを変更する必要があります。

  1. Open Telemetry SDKを依存関係として含めてください。

  2. アプリケーションにコードを追加して、必要に応じてメトリクス、スパン、またはログをキャプチャします。

これに関する詳細なドキュメントは、https://opentelemetry.io/docs/languages/java/instrumentation/[Open Telemetry Java SDK ドキュメントページ]にあります。

OTLP エクスポーター(これがデフォルトです)と 自動構成 を使用することを確認してください。アプリケーションをデプロイする際、サービス名とエクスポーターは 環境変数を介して構成されます

SUSE Observability におけるメトリクス

例えば、ガーベジコレクターメトリクスなど、一部の Java メトリクスについて、SUSE Observability は関連コンポーネントに関するチャートを定義しています。Kubernetes では、チャートはポッドで利用可能です。より多くのメトリクスのためにチャートを追加することが可能です。これは、自動計測からのメトリクスだけでなく、手動計測からのアプリケーション固有のメトリクスにも適用されます。