👻

Azure AI ServiceのレスポンスログをHTTPステータスコードを基準にフィルタリングする

2024/05/07に公開

概要

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以上になってるので無事解決

脚注
  1. AzureDiagnnoticsのテーブルリファレンスは下記を参照
    https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/azurediagnostics#columns ↩︎

  2. toint関数のリファレンスは下記を参照
    https://learn.microsoft.com/ja-jp/azure/data-explorer/kusto/query/toint-function ↩︎

ヘッドウォータース

Discussion