OpenTelemetry Javaエージェントをインストールする
1. Spring PetClinic アプリケーションを動かす
APMをセットアップするためにまず必要なのは…そう、アプリケーションです!この演習では、Spring PetClinicアプリケーションを使用します。これはSpringフレームワーク(Spring Boot)で作られた、非常に人気のあるサンプルJavaアプリケーションです。
まずはPetClinicリポジトリをクローンし、そして、アプリケーションをコンパイル、ビルド、パッケージ、テストしていきます。
spring-petclinic ディレクトリに移動します:
PetClinic が使用する MySQL データベースを起動します:
そして、Splunk版のOpenTelemetry Java APMエージェントをダウンロードしておきましょう。
次に、mavenコマンドを実行してPetClinicをコンパイル/ビルド/パッケージ化します:
情報
実際にアプリをコンパイルする前に、mavenが多くの依存ライブラリをダウンロードするため、初回実行時には数分かかるでしょう。2回目以降の実行はもっと短くなります。
そして、以下のコマンドでアプリケーションを実行することができます:
アプリケーションが動作しているかどうかは、http://<VM_IP_ADDRESS>:8083 にアクセスして確認することができます。
次に、トラフィックを生成し、クリックしまくり、エラーを生成し、ペットを追加するなどしてください。
-Dotel.service.name=$(hostname).serviceでは、アプリケーションの名前を定義しています。サービスマップ上のアプリケーションの名前等に反映されます。-Dotel.resource.attributes=deployment.environment=$(hostname),version=0.314では、Environmentと、versionを定義しています。deployment.environment=$(hostname)は、Splunk APM UIの上部「Environment」に反映されます。version=0.314はここでは、アプリケーションのバージョンを示しています。トレースをドリルダウンしたり、サービスマップの Breakdown の機能で分析したり、Tag Spotlightを開くとversion毎のパフォーマンス分析が使えます。
-Dsplunk.profiler.enabled=trueおよびsplunk.profiler.memory.enabled=trueでは、CPUとメモリのプロファイリングを有効にしています。Splunk APM UIから、AlwaysOn Profilingを開いてみてください。-Dsplunk.metrics.enabled=trueでは、メモリやスレッドなどJVMメトリクスの送信を有効にしています。Dashboardsから、APM java servicesを開いてみてください。
その後、Splunk APM UIにアクセスして、それぞれのテレメトリーデータを確認してみましょう!
Troubleshooting MetricSetsを追加する
サービスマップやTab Spotlightで、 version などのカスタム属性で分析できるようにするためには、Troubleshooting MetricSetsの設定をあらかじめ追加する必要があります。
左メニューの Settings → APM MetricSets で、設定を管理することができます。 もしお使いのアカウントで分析できなければ、設定を追加してみましょう。
次のセクションではカスタム計装を追加して、OpenTelemetryでは何ができるのか、さらに見ていきます。