カスタム レポートの作成

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

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

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

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

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

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

コンポーネント デフォルト
Dimensions リクエスト URI
Metrics
  • 合計レスポンス時間
  • ターゲットのレスポンス時間
  • プロキシのエラー
  • ターゲットのエラー

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

前のセクションで説明したように、カスタム レポートでは、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] ダッシュボードの右ペインで [More] メニュー > [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] でターゲット バージョンをクリックして、ユーザー別のエラーを表示します。