カスタム レポートを作成する

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動
情報

カスタム レポートを使用すると、特定の API 指標を掘り下げて、確認したい正確なデータを表示できます。API Monitoring ダッシュボードから、フィルタと指標のプリセットを使用してカスタム レポートを作成できます。このプリセットは、作成時に構成した条件に基づきます。また、レポートでは、デフォルトのディメンションと指標のセットがユーザーのために構成されます。

コンテキストに基づいたカスタム レポートを作成する

次のテーブルにまとめられているように、コンテキストに基づいたカスタム レポートを素早く作成できます。カスタム レポートページでは、次の表に示されているように、API Monitoring を使用して作成されたカスタム レポートに(デフォルトでは)固有の名前が付けられます。この名前は、カスタム レポートを編集するときに変更できます。

カスタム レポートのコンテキスト カスタム レポートのデフォルトの命名規則
[Recent] ダッシュボード API Monitoring Recent Generated
[タイムライン] ダッシュボード API Monitoring Timeline Generated
[Investigate] ダッシュボード API Monitoring Investigate Generated
アラートの条件 API Monitoring Generated: alert-name

デフォルトのディメンションと指標

カスタム レポートには、次のテーブルにリストされているディメンションと指標がデフォルトで含まれます。次のテーブルは、API Monitoring によって生成されるすべてのレポートについてのテーブルです。

コンポーネント デフォルト
ディメンション リクエスト URI
指標
  • レスポンスの合計時間
  • ターゲット レスポンス タイム
  • プロキシエラー
  • ターゲット エラー

カスタム レポートを編集する

前のセクションで説明したように、カスタム レポートでは、API Monitoring のデフォルトのディメンションと指標の定義済みセットが事前構成されています。カスタム レポートが作成された後、必要に応じて、そのカスタム レポートを編集して指標とディメンションを追加または削除できます。たとえば、調査対象を特定のアクセス トークン、デベロッパー アプリ、API プロキシ、またはリクエスト ID に絞り込むことができます。

次のカスタム レポートでは、定義済みの Gateway Flow ID ディメンションを追加しています。Gateway Flow ID には、Edge に対して行われた各 API リクエストの固有の UUID が含まれます。レポートには Request URI ディメンションがすでに使用されている点に注意してください。

次の例では、カスタム レポートに Client ID ディメンションを追加しています。Client ID ディメンションには、API 呼び出しを行ったデベロッパーのコンシューマ キー(API キー)が含まれます。このコンシューマ キーは、API キーとしてリクエストに渡される場合、または OAuth トークンに含まれる場合があります。

このカスタム レポートには、すべての Client ID 値に関する情報が含まれます。次の例では、特定の Client ID に関するカスタム レポートを作成できるようにするために、フィルタを追加しています。

レポートに追加できるすべての定義済みディメンションと指標について詳しくは、アナリティクス指標、ディメンション、フィルタのリファレンスをご覧ください。

次の例では、policies.ratelimit.QuotaViolation 障害コードと 5xx ステータス コードのデフォルトの指標とディメンションをキャプチャするカスタム レポートにフィルタを追加します。

カスタム レポートの編集方法について詳しくは、カスタム レポートの管理をご覧ください。

例: カスタム レポートを使用してデプロイメントの問題を診断する

StatisticsCollector ポリシーを API プロキシに接続して、ユーザー ID またはプロダクト ID、料金、REST アクション、ターゲット バージョン、ターゲット URL、メッセージ長などのカスタム分析データを収集します。データは、Apigee で事前定義されているフロー変数、リクエスト ヘッダー、クエリ パラメータ、または定義したカスタム変数から取得できます。

たとえば、API プロキシに対するリクエストには、商品 ID、ユーザー ID、ターゲット サーバー バージョンのヘッダーが含まれます。このリクエストは次の形式で指定できます。

curl -H "prodid:123456" -H "userid:98765" -H "targetversion:beta" http://myapi.com/myapi

その後、ヘッダーの情報を使用して API プロキシのランタイム問題を診断します。

ヘッダーのカスタム レポートを作成するには:

  1. StatisticsCollector ポリシーを API に追加して、カスタム ヘッダーの値をキャプチャします。

    <StatisticsCollector name="publishPurchaseDetails">
      <Statistics>
        <Statistic name="prodid" ref="request.header.prodid" type="integer">0</Statistic>
        <Statistic name="userid" ref="request.header.userid" type="integer">0</Statistic>
        <Statistic name="targetversion" ref="request.header.targetversion" type="string">alpha</Statistic>
      </Statistics>
    </StatisticsCollector>
  2. プロキシをデプロイし、アクセスされるまで待機します。

  3. Edge UI で [Analyze] > [API Monitoring] > [Recent] をクリックして、API の問題を確認します。myapi プロキシの 4xx エラーと 5xx エラーが表示されます。

  4. myapi プロキシの行を選択すると、[Recent] ダッシュボードの右ペインに詳細が表示されます。

  5. [Recent] ダッシュボードの右ペインで その他のメニュー > [View in Investigate] を選択して、[Investigate] ダッシュボードにアクセスします。

  6. [Investigate] ダッシュボードを myapi プロキシでフィルタし、[Status Code] のランキングを表示します。403 エラーと 501 エラーが表示されます。

  7. Edge UI で [Analytics] > [Custom Reports] > [Reports] を選択して、これらのカスタム指標の値をディメンションとして含むカスタム レポートを作成します。

  8. [+ Custom Report] を選択して、myapi_errors という名前のカスタム レポートを作成します。

  9. [Metric] の [Proxy Errors] を選択して、[Aggregate Function] を [Sum] に設定します。必要に応じて、さらに指標を追加できます。

  10. 事前定義された [Response Status Code] ディメンションを選択し、3 つのカスタム統計情報 [prodid]、[targetersion]、[userid] を [Dimensions] に追加します。

  11. myapi API プロキシ (apiproxy eq 'myapi') のデータのみを含めるように [Filter] を設定します。

  12. レポートを保存します。

  13. 過去 24 時間のレポートを実行します。レポートが最初に開くと、HTTP 403 エラーと 501 エラーのチャートが表示されます。

  14. [Summary] で [403] または [510] をクリックして、エラーを生成しているプロダクトを確認します。たとえば、[403] を選択します。

  15. [Summary] でプロダクト ID をクリックして、ターゲット バージョン(アルファ版かベータ版)別のエラーを確認します。

  16. [Summary] でターゲット バージョンをクリックして、ユーザー別のエラーを表示します。