目次
はじめに
こんにちは、クラウド事業部の菅家です。
この前「Azure Application Insights」を触る機会があり、その中でもクエリを使ってログを探すのがSQLと似ていてとても楽しかったので、忘れないように形に残すことができればと思い記事にします。
本記事では、Application Insightsのざっくりした概要から、クエリの構文までを学べればと思います。
そして机上で学んだ後、別途記事にてFunctionsにApplication Insightsを紐づけて実際の動きを見てみたいと思います。
Javaであれば「com.microsoft.applicationinsights.TelemetryClient」クラスにてログ出力の実装ができそうです。
Azure Application Insightsとは
Azure Monitor Application Insights は、Azure Monitor の機能であり、ライブ Web アプリケーションのアプリケーション パフォーマンス監視 (APM) に優れています。
とのことで、アプリケーションに対して、様々な項目の監視を行うサービスです。
開発におけるソースコードに近い部分として、今回はログにフォーカスを当てていきます。
ログとログ検索
どんなログがあるのかと言うと、
ページ ビュー、アプリケーション要求、例外、トレースなど
があります。
それぞれrequests、dependencies、exceptions、traces、customEventsなどのログテーブルに分かれています。
これをKQLにて検索していくというような形です。
KQL(Kusto Query Language)ですが、SQLを知っていると感覚的に書ける気がします。
Microsoftサービスで使用されている言語とのことです。
KQL側はパイプなので、構文の読み込まれ方は前からなんでしょうか?それとも最適化されている?
この辺確証が得られませんでしたが、前のデータが次の構文に送り込まれるイメージで行くとデータの処理の流れがわかりやすそうです。
次の記事でもパイプ形式で、処理を速くするためにフィルターするならお早めにと書いているので、前から処理を考えていくのは良さそうですね。
よく使ったクエリ
まず、対象リソースのAzure Application Insightsのサービス画面に移動し、左のメニューから「監視>ログ」に移動する。
「Welcome to Log Analytics」「クエリ ハブ」などのメッセージが出た場合は×を押してクエリエディタが表示されるのを待つ。
KQLですが、書き方としてはとっつきやすく、
テーブル名 |[パイプ] その他構文 | ...
という形で書けます。
アプリケーションにてエラーを出力して内容を確認する目的で使っていたため、単純に
exceptions
とテーブル名を指定するだけでも結果を表示できます。
他に「traces」などもあります。
並べ替えるのであればここから、order by句で表示を変更できます。
exceptions | order by timestamp desc
※日付順
複数条件を付けるのであれば、カンマを使用します。
exceptions | order by timestamp desc, severityLevel asc
また、テーブルを統合するunionも使用できます。
union (exceptions), (traces) | order by timestamp desc
Where条件も指定可能。
learn.microsoft.com
文字列の部分一致検索も使用できる。
learn.microsoft.com
おわりに
次回はFunctionsにて、ログ出力のための簡単なアプリケーションをJavaにて作成し、その出力を確認していきます。
お知らせ
私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。
https://www.ap-com.co.jp/service/utilize-aws/
また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。 hrmos.co