ログ配信機能は、クラウドネイティブ API ゲートウェイと Alibaba Cloud Simple Log Service (SLS) を統合します。ログ配信を有効にすると、クラウドネイティブ API ゲートウェイのアクセスログを分析して、クライアントの動作を理解し、地理的な分布を特定し、問題をトラブルシューティングできます。このトピックでは、クラウドネイティブ API ゲートウェイのログ配信を有効にする方法について説明します。
前提条件
クラウドネイティブゲートウェイインスタンスを作成済みであること。詳細については、「ゲートウェイインスタンスの作成」をご参照ください。
Simple Log Service を有効化済みであること。このサービスを有効化していない場合は、Alibaba Cloud アカウントで Simple Log Service コンソールにログインして有効化してください。詳細については、「Simple Log Service とは」をご参照ください。
ログ配信を有効にする
クラウドネイティブ API ゲートウェイはログに対して課金しませんが、Simple Log Service (SLS) は使用量に基づいて課金します。SLS の課金方法の詳細については、「従量課金」をご参照ください。
API Gateway コンソールにログインします。
左側のナビゲーションウィンドウで、 をクリックします。上部のナビゲーションバーで、リージョンを選択します。
[インスタンス] ページで、対象インスタンスの ID または名前をクリックします。
左側のナビゲーションウィンドウで、[パラメーター設定] をクリックします。
[可観測性パラメーター] セクションで、[ログ配信] の右側にある
アイコンをクリックします。[ログ配信設定] パネルで、[ゲートウェイアクセスログ (AccessLog)] をオンにします。説明ログ配信を有効にすると、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: 過負荷マネージャーがリクエストを終了しました。