Application Insightsを使ってみる。

MS開発部の 永田 です。
Azureを使っていて、Web Appの作成時等に出てくるApplication Insightsは皆さん使っていますか?
WebAppを作成時に自動で設定する以外にも、独自の.NETのコードや、JavaScriptに埋め込むなど、さまざまなプラットフォームで利用出来るApplication Insightsについて、私は最近まであまり使い方を知りませんでしたが、使ってみたら便利だったので紹介します。
Application Insightsとは
Application Insightsは、Microsoft社の説明では「アプリケーション パフォーマンス管理 (APM) サービス」となっています。
具体的には、サービスの応答時間や、エラーがあったか、どこの国からアクセスされてるか、どのブラウザを利用しているか等をPowerBIのグラフで表示したり、エラー発生時にメールを送信したり、VisualStudioでデバック中に確認したり等サービスの状況確認に役立ちます。
Application Insights のしくみ
分析機能を使ってみる
その中でも、この分析機能は使いこなせると便利なので紹介します。
分析をクリックすると以下のような画面が表示されます。
中にはクエリを記述できるのですが、書き方はSQLが分かれば苦労しないと思います。
左側に出ている項目「pageViews」「requests」等がテーブル名のイメージです。
テーブル名を展開すると、その下に列名も表示されます。
書き方の参考として以下のようなコマンドがあります。
・n 個の行を表示する
テーブル名 | take: n
・n 個の行を指定した順で表示する
テーブル名 | top 10 by 列名 desc
・データを結合
union app('ApplicationInsights1').requests, app('ApplicationInsights2').requests
・条件絞り込み
テーブル名 | where 列名 == "値"
・既定では、クエリは過去 24 時間なので、検索範囲を変更する
3d=3日前まで、時間の場合は1hや1.5hで指定、分はm、秒はsで指定可能です。
テーブル名 | where timestamp > ago(3d)
・列指定
テーブル名 | project 列名1, 列名2
・グループ化
テーブル名 | summarize count()
グループ化はcount以外にもいろいろ用意されてます。
summarize operator
・グラフ表示
テーブル名 | render timechart
テーブル名 | render piechart
render operator
・結合
テーブル名 | join (テーブル名) on 結合キー
クエリ文はパイプ「|」を使いながら繋げて書いていきます。
上記の内容を踏まえて、適当にクエリを書いてみました。
上画像の様に、記録されたログ情報から検索をした状態でテーブル形式の表示を行ったりできるので、書き方さえ分かれば視覚的にエラーが発生しているかや、どこからアクセスされているか、時間帯別のアクセスグラフなどを見ることが出来るようになります。
RestAPIと組み合わせれば日次メールで昨日のアクセス状況のグラフを送ったりもできそうですね。
以上、最後までご愛読いただき
ありがとうございました。
お問い合わせは、
以下のフォームへご連絡ください。