API Gateway は Simple Log Service (SLS) とシームレスに統合されています。SLS を使用して、ログのリアルタイムクエリ、ダウンロード、多次元的な統計分析を実行できます。また、ログを Object Storage Service (OSS) や MaxCompute に転送することもできます。

機能
オンラインログクエリ
これは、トラブルシューティングや統計分析に役立ちます。
詳細な呼び出しログ
ログには次のフィールドが含まれます。なお、requestQueryString、requestHeaders、requestBody、responseHeaders、および responseBody フィールドは専用インスタンスでのみ利用可能であり、グループ詳細ページで有効にする必要があります。
パラメーター | 説明 |
apiGroupUid | API グループの ID。 |
apiGroupName | API グループの名前。 |
apiUid | API の ID。 |
apiName | API の名前。 |
apiStageUid | 環境 ID。 |
apiStageName | 環境名。 |
httpMethod | 呼び出しに使用される HTTP メソッド。 |
path | リクエストパス。 |
domain | 呼び出しに使用されるドメイン名。 |
statusCode | HTTP ステータスコード。 |
errorMessage | エラーメッセージ。 |
appId | 呼び出し元のアプリケーション ID。 |
appName | 呼び出し元のアプリケーション名。 |
clientIp | クライアントの IP アドレス。 |
exception | バックエンドサービスからの特定のエラーメッセージ。 |
exchangeTimestamp | リクエストライフサイクルにおける I/O イベントのタイムスタンプ。
|
providerAliUid | API プロバイダーのアカウント ID。 |
region | リージョン (例: |
requestHandleTime | リクエスト時刻 (UTC)。 |
requestId | グローバルに一意なリクエスト ID。 |
requestSize | リクエストサイズ (バイト)。 |
responseSize | レスポンスサイズ (バイト)。 |
serviceLatency | バックエンドリソースへのアクセスに費やされた合計時間 (接続リソースの割り当て、接続の確立、バックエンドサービスの呼び出しを含む)。単位:ミリ秒。 |
errorCode | エラーコード (例: |
requestProtocol | クライアントリクエストプロトコル。有効な値:HTTP、HTTPS、WS。 |
instanceId | API サービスが実行されるインスタンスの ID。 |
initialRequestId | ある API が別の API を呼び出す場合 (例:API-1 が API-2 を呼び出す)、このフィールドには 2 番目の呼び出し (API-2) のログに最初の呼び出し (API-1) のリクエスト ID が記録されます。 |
clientNonce | クライアントリクエストの X-Ca-Nonce ヘッダー。 |
requestQueryString | クライアントリクエストのクエリ文字列 (専用インスタンスのみ)。 |
requestHeaders | クライアントリクエストのヘッダー (専用インスタンスのみ)。 |
requestBody | クライアントリクエストのボディ、最大 1,024 バイト (専用インスタンスのみ)。 |
responseHeaders | API レスポンスのヘッダー (専用インスタンスのみ)。 |
responseBody | API レスポンスのボディ、最大 1,024 バイト (専用インスタンスのみ)。 |
consumerAppKey | API リクエストの AppKey。 |
totalLatency | API リクエストの合計レイテンシー (ミリ秒)。 |
customTraceId | エンドツーエンドログのトレース ID。 |
jwtClaims | JSON Web Token (JWT) から解析されたクレームです。API グループ設定で設定できます。 |
plugin | API リクエストに一致したプラグインのリストとそれに関連するコンテキスト。 |
Simple Log Service を使用した API ログの表示
設定方法
2 つの設定方法が利用できます:
SLS コンソールのログ監査機能を使用して API Gateway ログを同期します。この方法では、すべてのリージョンのログがログ監査プロジェクトに収集されます。API Gateway での追加設定は不要です。
SLS コンソールで API Gateway のデータインジェストを設定します。この方法では、リージョンごとに同期を 1 回設定する必要があります。
以下のセクションでは、これら 2 つの方法について説明します。
Alibaba Gov Cloud および Alibaba Finance Cloud の場合、最初の方法でのみ SLS ログを同期できます。
ログ監査の使用
ログ監査サービス設定ページを開き、後続のすべての API Gateway ログの配信先となる中央リージョンを選択します。
グローバル設定ページの上部には、中央プロジェクトのリージョンと名前が表示されます。その下には、ActionTrail、Object Storage Service (OSS)、RDS、Virtual Private Cloud (VPC)、DNS、PolarDB、Server Load Balancer (SLB)、Application Load Balancer (ALB) などのクラウド製品の設定項目が表形式で表示されます。項目には、ログ収集スイッチ、[ストレージモード] (中央集約またはリージョン別)、保持期間、[センターに同期]、[N 日後にアーカイブ] が含まれます。必要なクラウド製品のログ収集スイッチを有効にし、右上隅の [保存] をクリックします。[収集と同期の認可] セクションで、アカウントにログの収集と同期の権限がないことを示すメッセージが表示された場合は、[手動認可] または [AccessKey で認可] を使用して認可を完了します。
認可方法を選択し、画面の指示に従います。この例では、手動認可を使用します。
認可が完了すると、API Gateway の呼び出しログは、中央プロジェクト内の
apigateway_logログストアで利用可能になります。API Gateway の呼び出しログには、
apiGroupName、apiGroupUid、apiName、apiStageName、apiStageUid、apiUidなどのフィールドが含まれます。[生ログ] タブで、各ログエントリの詳細なキーと値のペアを表示できます。
API Gateway コンソールでの設定
1) SLS が有効化されていることを確認した後、SLS コンソールにログオンし、対象のリージョンを選択して、プロジェクトと Logstore を作成します。 この例では、中国 (杭州) リージョンを使用します。
[プロジェクトを作成] ダイアログボックスで、[プロジェクト名] (例:gateway-t***) を入力し、デフォルトの [リソースグループ] を保持し、[ログを有効にする] セクションで [操作ログ] や [グローバルログ] などの設定を選択します。次に、[OK] をクリックします。プロジェクトが作成された後、表示されるダイアログボックスで [ログストアを作成] をクリックします。ログストアを作成する際に、その設定を構成します。たとえば、[ログストア名] を gateway_log に、[タイプ] を [Standard] に、[課金モード] を [データ書き込み量課金] に、[データ保持期間] を 30 日に、[シャード数] を 2 に設定します。[シャードの自動分割] (最大 64 シャードまで) と [パブリック IP のログ] を有効にし、[OK] をクリックします。最終確認のダイアログボックスで、[データインポートウィザード] をクリックします。
2) API Gateway のデータインジェストを設定し、API Gateway 製品を選択します。
API Gateway を選択すると、[データソース設定] ページが表示されます。[RAM 認可] が完了していること (ページに "You have authorized Log Service to distribute logs" と表示されます) を確認します。[配信ルールを作成] セクションで、API Gateway のアクセスログが宛先のログストアにインポートされることを確認し、[次へ] をクリックします。残りのステップで [次へ] をクリックし続けて、設定を完了します。
ログの表示
SLS コンソールにログインしてログを表示し、SLS クエリ構文を使用して呼び出しログを検索します。
クエリ結果では、各ログエントリに apiGroupName、apiGroupUid、apiName、__source__、__tag__:__receive_time__、__topic__ などのフィールドが含まれます。左側の [クイック分析] ペインでフィールドでログをフィルタリングするか、上部の検索ボックスでクエリ構文を使用して正確な検索を行うことができます。
カスタムクエリレポート
ビジネスニーズに基づいてクエリレポートをカスタマイズできます。手順については、「ダッシュボードの作成」をご参照ください。