LoginSignup
4
4

More than 5 years have passed since last update.

microservicesの調査に向けて〜activator-play-tracingを試してみよう!

Last updated at Posted at 2016-03-18

1. やりたいこと

以前の投稿で、docker-composeを利用して、zipkinサービスを手元で動かすことができるようになったので、playframeworkを利用して、zipkinにレコードを登録できるかを試してみようと思いました。

lightbendのサイトを見ると、activatorのtemplateが提供されていたので動かしてみることにしました。

2. 実施手順

2-1. テンプレートをgit clone

git clone https://github.com/levkhomich/activator-play-tracing.git

2-2. conf/application.confのZipkinのhostを修正

cd activator-play-tracing

vim conf/application.conf

編集する箇所はhostのみとなります。

conf/application.conf
akka {
  extensions = ["com.github.levkhomich.akka.tracing.TracingExtension"]
  tracing {
    sample-rate = 1
    enabled = true
    host = "ここを書き換える"
    port = 9410
  }
}

上記が、akka-tracingTracingExtension.scalaで読み込まれているようです。

activatorのサンプルのソースでは、GlobalSettingsを使っているようです。。。
そして、akka-tracingのソースでもGlobalSettingsを使っているような。。。

2-3. activatorを起動

./activator

しばらく依存が解消されるのを待つと、コンソールに入ることが出来ました。

2-4. applicationを起動

run

起動すると、以下のような画面が立ち上がります。

Screenshot from 2016-03-18 12-09-34.png

2-5. ZipkinのWEB UIを確認してみる

Screenshot from 2016-03-18 12-10-34.png

プルダウンにapplicationというtagが追加されていることがわかります。

テンプレートから始めれば簡単に利用できる印象です。
ただ、0から自分でつくったプロジェクトで、チュートリアルの設定をするだけだと、下記のようなメッセージが出て利用不可のように見えます。

[error] - com.github.levkhomich.akka.tracing.SpanHolder - Thrift transport error: Cannot write to null outputStream
[error] - com.github.levkhomich.akka.tracing.SpanHolder - Zipkin collector is unavailable. Failed to send 0 spans during postStop.
[info] - play.api.Play - Application started (Dev)

接続不良が起きてるような。。

3. activator-play-tracingの処理の流れの推測

playのアプリケーションが立ち上がる前に、以下の動きをしていると思います。
(間違っていましたらどなたかご指摘ください(><))

  1. GlobalSettingsの仕組みで、Global.scalaにある、TracingSettingsがよばれる。
  2. TracingSettingsの中で、conf/application.confにある設定を読み込んで、Thriftによる通信コネクションをopen
  3. tracerをplay.libs.Akkaのシステムを利用して登録

アプリケーションが開始されると、Controllerであれば、extendsされたPlayControllerTracing経由でトレースが実施される。(ここもデバッグしながら確認しようと思います)

4. 所感

  • GlobalSettingsって非推奨になるんじゃ。。http://d.hatena.ne.jp/xuwei/20160305/1457174406
  • akka-tracingがなんだかわかりにくい。。もうちょっと読んでみよう。
  • akka-tracingが内部で、GlobalSettingsのライブラリ読んでるけどこれはありなのかな。module化できないのかな。

本日は以上となります。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4