SCAPI ログの表示とリクエストの追跡

Log Center は、B2C Commerce API (SCAPI) 操作のための包括的なロギング記録とモニタリング機能を提供します。Log Center を使用すると、B2C Commerce インスタンス全体にわたって、問題のトラブルシューティング、パフォーマンスのモニタリング、API の動作の分析を行うことができます。

Log Center へのアクセス 

  1. Business Manager にログインします。
  2. アプリケーションランチャー アプリケーションランチャー をクリックし、管理 > サイトの開発 > 開発セットアップを選択します。Progressive Web App (PWA) Kit を使用してサイトを構築した場合は、まず Log Center を使用したデバッグに記載されている前提条件を完了してください。

Log Center に関する一般的な情報については、一元管理 Log Center を参照してください。

SCAPI ログの検索 

Log Center で、Logs (ログ) > Search (検索) に移動します。

SCAPI ログが Log Center に表示されるまで、最大 5 分かかる場合があります。

Note

相関 ID による調査 

相関 ID を使用して特定のリクエストと特定のレスポンスを照合することで、内部サーバーエラーなど予期せぬ問題のトラブルシューティングを簡単に行えるようになります。

SCAPI エンドポイントへのリクエストで correlation-id ヘッダーが渡された場合、レスポンスには correlation-id の値を含む correlation-id ヘッダーが含められます。また、API によって、各レスポンスのための独自の相関 ID が生成されます。この生成された ID は、sfdc_correlation_id レスポンスヘッダーで提供されます。

ヘッダーの例:

1# Request
2correlation-id: 40e1feef-c454-49cd-9abc-cc995e1f960e
3
4# Response header - DEPRECATED, will be removed
5x-correlation-id: 40e1feef-c454-49cd-9abc-cc995e1f960e,7672402e9add1b37
6
7# Response header - replacement for x-correlation-id
8sfdc_correlation_id: 7672402e9add1b37

correlation-id の値には、単語文字、ハイフン (-)、およびコンマ (,) のみを含める必要があります。これ以外の文字が含まれていると、Log Center でその相関 ID 文字列を検索できなくなる場合があります。

大部分の Commerce API エンドポイントで、correlation-id はフックとともにログメッセージに自動的に追加されます。これらのメッセージは、Log Center で、externalID フィールドに基いてメッセージをフィルターする LCQL (Log Center Query Language) 式でクエリできます。externalID フィールドには correlation-id レスポンスヘッダーの値が含まれているため、ユーザーが指定した相関 ID、SCAPI によって生成された相関 ID、または組み合わせ文字列をクエリできます。

問題を再現できる場合は、独自の相関 ID を付加するか、レスポンス内で自動生成された相関 ID を確認することで、問題を特定できる可能性があります。

この相関 ID を使用して、特定のリクエストを追跡できます。

  1. Log Center の検索で、検索フィールドに相関 ID を入力するか、externalID フィールドに対して Log Center Query Language (LCQL) 式を使用します。例: externalID:(9527f1869f95a32d)
  2. より絞り込んだ結果を得るために、関連するサービスタイプでフィルタリングできます。ただし、これは結果セットが非常に大きい場合にのみ推奨されます。
1const Logger = require("dw/system/Logger");
2
3exports.beforeGET = function () {
4  // When you log, correlation IDs are automatically associated with your message, so you don't need to provide the correlation ID to the log function.
5  Logger.log("Hello!");
6  return new Status(Status.OK);
7};

Commerce API エンドポイントの一部のグループは B2C Commerce 専用ではないため、リクエストとレスポンスを Log Center に記録できません。これらの API グループには、CDN Zones、Inventory Availability、Inventory Impex、Inventory Reservation、Shopper Context、および Shopper Login が含まれます。

Note

エラーパターンの特定 

Log Center の SCAPI ログを使用して、頻繁に発生するエラーのパターンを調査することもできます。

  1. ドロップダウンメニューから、SCAPI カテゴリを選択します。
    • 特定のエラーレスポンスコードを含むリクエストを特定するには、scapi-http を選択します。
    • SCAPI リクエストの処理方法に関するエラーメッセージを見つけるには、scapi を選択します。たとえば、不正なリクエスト、認証の失敗、ルーティングの問題などです。
  2. 検索を実行して、発生しているエラーステータスタイプを特定します。
  3. 特定のエラーをさらに詳しく調査するには、結果から 1 つまたは複数の相関 ID を取得し、同じ相関 ID を持つエントリを検索します。詳細については、相関 ID による調査を参照してください。

詳細なリクエスト情報の収集 

B2C Commerce バージョン 24.7 では、リクエストに関する包括的な情報を含む JSON ドキュメントを生成できます。この JSON ドキュメントは、リクエストの認可、フックの実行、リクエストクエリパラメーター、ヘッダー、ボディなど、標準のログ記録には含まれていない詳細情報を提供するため、トラブルシューティングに役立ちます。

潜在的なパフォーマンスの問題を軽減するために、ヘッダーの使用にはレート制限が適用されます。ヘッダーは、詳細な調査が必要な場合にのみ、個々のテストリクエストに使用する必要があります。

Important

この機能を有効にするには、リクエストに次のヘッダーを含めます。

  • ヘッダー: sfdc_verbose: true

リクエストが完了すると、JSON ドキュメントが作成され、そのリクエストの相関 ID に関連付けられた INFO ログに記録されます。

sfdc_verbose ヘッダーを correlation-id と組み合わせて使用すると、Log Center で詳細ログ出力を生成および検索できます。

詳細ログエントリの検索 

  1. Log Center の開始の説明に従って Log Center にログインします。
  2. 相関 ID またはカテゴリ scapi.verboseLog Center 検索と組み合わせて使用して、対応するログエントリを検索します。

詳細ログエントリのスキーマ 

次の例は、詳細ログエントリに存在できるオブジェクト (authrequestresponsecustomApihooks) を示しています。

1{
2    "auth": {
3        "clientId": "<client-id>",
4        "customer": {
5            "customerId": "<customer-id>",
6            "customerIdp": "slas",
7            "customerLogin": "Guest",
8            "customerType": "guest",
9            "sessionBridgeToken": false
10        },
11        "grantedScopes": [
12            "c_loyaltyInfo_rw"
13        ],
14        "tokenType": "ShopperToken",
15        "user": {
16            "agentOnBehalfOfUser": "<user-id>",
17            "taobToken": false
18        },
19    },
20    "request": {
21        "encodedQueryString": "siteId=RefArch",
22        "headers":{
23           "sfdc_verbose" : "true"
24        },
25        "httpMethod": "GET",
26        "queryParameters": {
27            "siteId" : "TestWapi-Customization",
28           "c_responseHeader" : "correct"
29        },
30        "requestUrl": "<request-url>",
31        "runtimeInMillis": 124,
32        "type": "on-request"
33    },
34    "response": {
35        "headers": {
36           "c_ResponseHeader": "test"
37        },
38        "httpStatus": "OK",
39        "httpStatusCode": 200,
40    },
41    "customApi": {
42        "implementation": "test_bc_wapi/cartridge/rest-apis/sample/Sample.js#sampleFunction",
43        "locale": "default",
44        "mapping": "test_bc_wapi/cartridge/rest-apis/sample/api.json"
45    },
46    "hooks": {
47        [
48            {
49                "name": "dw.ocapi.shop.store.beforeGET",
50                "result": "OK",
51                "runtimeInMillis": 10,
52                "scripts": [
53                    "test_bc_wapi/cartridge/scripts/store_shop_script.js"
54                ]
55            },
56            {
57                "name": "dw.ocapi.shop.store.modifyGETResponse",
58                "result": "OK",
59                "runtimeInMillis": 4,
60                "scripts": [
61                    "test_bc_wapi/cartridge/scripts/store_shop_script.js"
62                ]
63            }
64        ]
65    }
66}

SCAPI メトリクスの確認 

SCAPI と SCAPI フックのメトリクスは、Metrics (メトリクス) ダッシュボードで確認できます。メトリクスを表示するには、Log Center で Metrics をクリックし、次に SCAPI または SCAPI Hooks をクリックします。詳細は、Metrics ダッシュボードを参照してください。

追加の SCAPI メトリクスは、CCAC SCAPI ダッシュボードで提供されます

詳細については、Log Center メトリクスのドキュメントを参照してください。

関連資料