👻
Azure AI ServiceのレスポンスログをHTTPステータスコードを基準にフィルタリングする
概要
Azure AI Service(Azure Cognitive Service)のレスポンスログをHTTPステータスコードを基準にフィルタリングする方法を模索したので、備忘録としてまとめる。
経緯
Azure Monitorのアラート設定にあたって、Azure AI ServiceのレスポンスログでresultSignature(HTTPステータスコード)が400以上のレコードを抽出したかったが、AzureDiagnosticsテーブル[1]のresultSignatureカラムはString型のため比較演算子を利用することができなかった。。
エラー画面。
どう見てもint型なのに。。
なので、KQLを駆使してフィルタリングした結果を出力する!
前提
- Log Analyticsワークスペースを作成済みであること。
- 診断設定を有効化済み、かつLog Analyticsワークスペースへ送信済みであること。
解決方法
String型なのであればint型に型キャストしてやればいいのでは?
ということで、以下のKQLで実行。
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.COGNITIVESERVICES"
| where toint(ResultSignature) >= 400
toint関数[2]を利用して、resultSignatureをint型に変換
エラーにもならず、出力結果も400以上になってるので無事解決
-
AzureDiagnnoticsのテーブルリファレンスは下記を参照
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/azurediagnostics#columns ↩︎ -
toint関数のリファレンスは下記を参照
https://learn.microsoft.com/ja-jp/azure/data-explorer/kusto/query/toint-function ↩︎
Discussion