概要
Log Analyticsなどで使われているクエリ言語(KQL)を使って
ApplicationInsightsで収集している情報を見える化して解析する方法です。
最後のほうにSQLとKQLの対比で例をあげているので参考にしてください
requests
| where timestamp > ago(3h)
| summarize count() by client_CountryOrRegion
| render piechart
書式として "演算子" を | で区切ります
よく書く流れとしては「テーブル|条件|集計方法|グラフの種類」がわかりやすいと思います
よく使う演算子
| コード | 説明 |
|---|---|
| where | 条件絞り込み.Alias:filter |
| count | 行数 |
| limit [num] | [num]行数制限 |
| order by [Column] [asc,desc] | 並べ替え.Alias:sort |
| render | 表示方法。下記にて説明 |
| summarize [Aggregation] by [Column] | 集計方法。下記にて説明 |
| project [Column] | 表形式で出すときに列名を指定して表示する。 |
※これ以外にもたくさんありますが理解しているものを並べています
summarize
| コード | 説明 |
|---|---|
| summarize count() by [Column] | Column別行数 |
| summarize count([Column1]) by [Column2] | Column2別Column1行数 |
| summarize avg([Column1]) by [Column2] | Column2別Column1平均 |
bin
主にsummarizeの時に使用する。
連続する値の範囲を管理しやすい単位に分割する。
多くのデータをグラフ化する場合には描画が遅くなってしまうので丸めて集計し表示する。
例えば、10分毎の間隔で集計する
bin(timestamp, 10m)
render
集計したテーブルをグラフィカルに表示するときに使用する。
作成後はダッシュボードなどに使用すると便利です。
| コード | 説明 |
|---|---|
| areachart | 面グラフ.kind:stacked,stacked100,unstacked,default |
| barchart | 棒グラフ.kind:stacked,stacked100,unstacked,default |
| timechart | 折れ線グラフ |
| piechart | 円グラフ |
| scatterchart | 散布図 |
例
SQLデータベースの検索方法と比べながら実例を記載します
全検索
SQL Query
Select * From requests
Analytics Query
requests
項目絞り込み
SQL Query
Select url,resultCode From requests
Analytics Query
requests| project url, resultCode
一意検索
SQL Query
Select DISTINCT url From requests
Analytics Query
requests | summarize by url
時系列で集計
リザルトコード別に数えてそれを10分毎にまとめる。
それを積み立て棒グラフで表示する
requests
| summarize count() by resultCode, bin(timestamp, 10m)
| render barchart kind= stacked