LoginSignup
1
2

More than 5 years have passed since last update.

RackアプリケーションのメトリクスをApplication Insightsで集める。

Posted at

Application InshghtsのRuby SDKに先日出したプルリクエストが取り込まれたことにより、Ruby on RailsなどRackアプリケーションのメトリクスをApplication Insightsで取れるようになりました。

Application Insightsとは?

ウェブアプリやモバイルアプリなどのアプリケーションのパフォーマンスやエラーなどの情報を収集し、アラートや分析をするためのサービスです。

セットアップ

Application Insightsの作成

PortalからApplication Insightsを作成する

Azure Portalから、Application Insightsのブレードを開き、新規作成します。

Application_Insights_-_Microsoft_Azure.png

Rubyの場合、Application TypeはGenralとして作成します。
Locationは、まだ日本が含まれていません(2017年8月1日時点)。どこを選んでも変わりが無いので、好きなところを選びましょう。

Instrumentation Keyを取得

作成したApplication Insights のブレードを開き、Propertiesを選択し、表示されるInstrumentation Keyの値をコピーしましょう。
この後に、Rackミドルウェアをインストールする際のパラメーターとして利用します。

Properties_-_Microsoft_Azure.png

Rackミドルウェアの追加

お使いのRackアプリケーションのgemの依存関係をbundlerで管理している場合、Gemfile

Gemfile
gem 'application_insights', github: 'Microsoft/ApplicationInsights-Ruby'

を追加します。
その後、application_insightsが提供するRackミドルウェアをインストールしましょう。

例えば、Sinatraのアプリケーションの場合は以下のようにします。上でコピーしたInstrumentation Keyは環境変数INSTRUMENTATION_KEYとして定義されているものとします。

app.rb
require 'sinatra'
require 'application_insights'

use ApplicationInsights::Rack::TrackRequest, ENV['INSTRUMENTATION_KEY'], 5

get '/' do
  'Hello, Application Insights!'
end

サンプルコードをGistに置いたので、参考にどうぞ。

ざっくりと使い方

Portalからチャートを見る

ポータルから該当のApplication Insightsのブレードを開くと、収集したリクエストの情報が見れます。

tatz-sample-ai_-_Microsoft_Azure.png

リクエストのパラメーターやブラウザの情報、エラー時のスタックトレースなど細かな情報まで集めており、独自のクエリを書くことで細かな分析もできるようです。
また、PowerBIと連携させたり、REST APIが提供されていたりと、外部で連携させることも可能なようです。Stream Analytics とも連携できるそうなので、機械学習含めAzure上で色々な解析ができそうですね。

参考

1
2
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
1
2