X-RayをSpring Bootアプリケーションに組み込んでみた
PR

X-RayをSpring Bootアプリケーションに組み込んでみた

レントゲン ソフトウェア
記事内に広告が含まれています。
スポンサーリンク

Webアプリケーションのレスポンスが時々遅くなっていることが、ロードバランサーのレスポンスタイムを見ていて気がついた。それ以上のことはわからないので、アプリケーションのレントゲン写真を撮ってみることにした。

スポンサーリンク
スポンサーリンク

Javaアプリケーションへの組み込み方のドキュメントはあるが…

X-Rayがどういうものかは、下記の資料を参照ということで。

AWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-Ray - Download as a PDF or view online for free

Javaアプリケーションへの組み込み方も、Spring Frameworkとそれ以外について、ドキュメントが用意されている。

AWS X-Ray

が、わかったような、わからないような…。

スポンサーリンク

Spring Bootアプリケーションに組み込んでみた

悩んでいても進まないので、まずはやってみる。ターゲットはSpring Boot 2.0で作ったWeb Application。httpのリクエストを受け取って、DB(MySQL)にデータを書き込むという、よくあるパターンの要素を取り出したようなシンプルなもの。
Mavenを使っているので、pom.xml にX-Ray用の設定を追加する。

実際に必要とするライブラリは

残念ながら、これらをpom.xmlに書き加えるだけでは不十分。サーブレットフィルタにX-Rayのライブラリをセットすることで、httpのリクエストをトレースできるようになる。これはドキュメントにある通り、@Configuration を付けたクラスを追加して実現する。

AWS X-Ray

一方、JDBCの呼び出しは設定だけでトレースできる。

spring.datasource.jdbc-interceptors=com.amazonaws.xray.sql.mysql.TracingInterceptor

の一文をapplication.propertiesファイルに追加すればよい。

スポンサーリンク

サービスマップとトレースが出た

これだけの設定を行ってから、コンパイル、デプロイして動かしてみたところ、X-Rayの説明でよく見かけるサービスマップやトレースがみられるようになった(X-Rayデーモンの設定は必要だが、ここでは省略)。
ただ、http requestの中でSQLを処理している部分(時間)が出てくるだけなので、もう少し細かいトレースが欲しくなる。さすがにこれは、プログラムに手を入れてサブセグメントを作るようにしないと無理そうだ。

コメント

タイトルとURLをコピーしました