Masteries

技術的なことや仕事に関することを書いていきます.

AWS::XRayでEC2プラグインが使えるようになりました

id:sfujiwara さんのAWS::XRayファミリーにいくつかpull requestを送らせて頂いて, EC2プラグインを使えるようにしてみました.

github.com

github.com

X-Rayのプラグインとは

X-Rayには, 公式にプラグイン機能が提供されています. 例えばRubyのSDKだとこういう感じです.

github.com

現在, EC2, ECS, Elastic Beanstalkの各プラグインが用意されており, アプリケーションがそれぞれのリソース上で動いている場合に, その詳細情報をセグメントに含めて送ってくれるようになっています. 例えば, EC2プラグインであればセグメントが処理されたEC2インスタンスのIDと, それが所属するAvailability Zoneの情報が追加されるようになっています.

使い方

Plack::Middeware::XRayを使っているのであれば, 次のようにして簡単にEC2プラグインを有効にすることができます.

enable "XRay"
  name => "myApp",
  plugins => ["AWS::XRay::Plugin::EC2"],

あとはX-Rayにデータが送られるのを待つだけです. ブラウザでX-Rayの各セグメントの詳細を見る時に,

f:id:papix:20190902203156p:plain
「Origin」を見ると, EC2インスタンス上で処理されたことがわかる

f:id:papix:20190902203159p:plain
そのセグメントが処理されたEC2インスタンスのIDやAZがわかる

...という感じで, EC2の詳細な情報も見れるようになります.

あるセグメントがどのEC2インスタンスで実行されたかがわかれば, 例えば何かしらの問題が発生した時, 実際にそのインスタンスにある各種ログを調査するといった作業が手軽に出来るようになり, 問題に関連した情報が更に得やすくなるはずです. 是非使ってみて下さい.