AI Gateway のログ配信機能は、Alibaba Cloud Simple Log Service (SLS) を使用します。ログ配信を有効にすると、AI Gateway のアクセスログを分析して、トラブルシューティングのためにユーザーの動作や地理的分布を理解できます。このトピックでは、AI Gateway のログ配信を有効にする方法について説明します。
前提条件
Simple Log Service が有効化されていること。サービスが有効化されていない場合は、Alibaba Cloud アカウントで Simple Log Service コンソールにログインして有効化します。
ログ配信を有効にする
AI プロダクトはログに対して料金を請求しません。ただし、Simple Log Service (SLS) は使用量に基づいて課金されます。SLS の課金方法の詳細については、「従量課金」をご参照ください。
AI Gateway では、ログ配信を有効にするための 2 つのメソッドが提供されています。
方法 1: ログセンターを使用する
左側のナビゲーションウィンドウで、 をクリックします。
[ログ配信を有効にする] をクリックします。[ログ配信を有効にする] ダイアログボックスで、SLS プロジェクトに [デフォルトを使用] または [既存のものを使用] を選択し、[OK] をクリックします。
方法 2: パラメーター設定を使用する
左側のナビゲーションウィンドウで、[パラメーター設定] をクリックします。
[可観測性パラメーター] エリアで、[アクセスログ配信設定] の右側にある
アイコンをクリックします。[アクセスログ配信設定] ダイアログボックスで、[ゲートウェイアクセスログ (AccessLog)] をオンにします。[Nginx Ingress フォーマットと互換性のあるログを出力] をオンにします。これにより、出力ログが Nginx Ingress ログと同じフォーマットになり、ログ分析が簡素化され、システム間の互換性が向上します。
SLS プロジェクトに [デフォルトを使用] または [既存のものを使用] を選択し、[OK] をクリックします。
説明[デフォルトを使用] を選択すると、Simple Log Service によってデフォルトのプロジェクトが作成されます。
ログ配信を有効にしたら、[可観測性パラメーター] セクションに移動します。[プロジェクト] の右側にあるリンクをクリックして、ゲートウェイの Logstore に移動します。詳細については、「クエリと分析のクイックスタート」をご参照ください。
ログフィールド
次の表に、ゲートウェイアクセスログのフィールドを示します。
フィールド名 | タイプ | 説明 |
__time__ | long | ログが生成された時間。 |
cluster_id | string | 購入したゲートウェイインスタンス。 |
ai_log | json | Model API、Agent API、および MCP API 用に設計されたログフィールド。フィールドは JSON フォーマットです。このフィールドは、他のタイプの API では空です。
|
authority | string | リクエストメッセージの Host ヘッダー。 |
bytes_received | long | ヘッダーを除くリクエストボディのサイズ。 |
bytes_sent | long | ヘッダーを除く応答本文のサイズ。 |
downstream_local_address | string | ゲートウェイ Pod のアドレス。 |
downstream_remote_address | string | ゲートウェイに接続するクライアントのアドレス。 |
duration | long | リクエストの処理にかかった合計時間。これは、ゲートウェイがダウンストリームサービスから最初のバイトを受信してから、応答の最後のバイトを送信するまでの期間です。単位: ミリ秒。 |
method | string | HTTP メソッド。 |
path | string | HTTP リクエストのパス。 |
protocol | string | HTTP プロトコルのバージョン。 |
request_duration | long | ゲートウェイがダウンストリームサービスから最初のバイトを受信してから、ダウンストリームサービスから最後のバイトを受信するまでの期間。単位: ミリ秒。 |
request_id | string | ゲートウェイは各リクエストの ID を生成し、それを |
requested_server_name | string | SSL 接続に使用されるサーバー名。 |
response_code_details | string | 応答コードに関する追加情報を提供します。たとえば、`via_upstream` は応答コードがバックエンドサービスによって返されたことを示し、`route_not_found` はリクエストに一致するルートが見つからなかったことを示します。 |
response_tx_duration | long | ゲートウェイがアップストリームサービスから最初のバイトを受信してから、ダウンストリームサービスに最後のバイトを送信するまでの期間。単位: ミリ秒。 |
route_name | string | ルート名。 |
start_time | string | リクエストが開始された時間。フォーマット: UTC。 |
trace_id | string | トレース ID。 |
upstream_cluster | string | アップストリームクラスター。 |
upstream_host | string | アップストリーム IP アドレス。 |
upstream_local_address | string | アップストリームサービスへの接続に使用されるローカルアドレス。 |
upstream_service_time | long | アップストリームサービスがリクエストを処理するのにかかった時間 (ミリ秒単位)。これには、ゲートウェイがアップストリームサービスにアクセスするためのネットワーク遅延と、アップストリームサービス自体の処理時間が含まれます。 |
upstream_transport_failure_reason | string | アップストリームサービスへの接続が失敗した理由。 |
user_agent | string | HTTP リクエストの User-Agent ヘッダー。 |
x_forwarded_for | string | HTTP リクエストの |
リクエストの失敗理由
ログの Response_Flag フィールドの値は、リクエストの失敗理由を示します。次のリストは、Response_Flag の可能な値を示しています。
ダウンストリームはクライアントを指し、アップストリームはバックエンドサービスを指します。
UH: アップストリームクラスターに正常なアップストリームホストがありません。
UF: アップストリーム接続が失敗しました。
NR: リクエストにルートが設定されていません。
URX: アップストリームのリトライ制限 (HTTP) または最大接続試行回数 (TCP) に達したため、リクエストは拒否されました。
NC: アップストリームクラスターが見つかりませんでした。
DT: リクエストまたは接続が
max_connection_durationまたはmax_downstream_connection_durationを超えました。DC: ダウンストリーム接続が終了しました。
LH: ローカルサービスがヘルスチェックリクエストに失敗しました。
UT: アップストリームリクエストがタイムアウトしました。
LR: 接続がローカルでリセットされました。
UR: アップストリーム接続がリモートでリセットされました。
UC: アップストリーム接続が終了しました。
DI: エラー注入によって指定された期間、リクエスト処理が遅延しました。
FI: エラー注入によって指定された応答コードでリクエストが中止されました。
RL: リクエストは HTTP レート制限フィルターによってローカルでレート制限されましたが、429 応答コードは返されませんでした。
UAEX: リクエストは外部の権限付与サービスによって拒否されました。
RLSE: レート制限サービスでエラーが発生したため、リクエストは拒否されました。
IH: 厳密にチェックされたヘッダーに無効な値が設定されたため、リクエストは拒否されました。
SI: ストリームのアイドルタイムアウトに達しました。
DPE: ダウンストリームリクエストで HTTP プロトコルエラーが発生しました。
UPE: アップストリーム応答で HTTP プロトコルエラーが発生しました。
UMSDR: アップストリームリクエストが最大ストリーム期間に達しました。
OM: 過負荷マネージャーがリクエストを終了しました。