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

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

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 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ