Apigee Analytics の概要

Apigee X のドキュメントを表示中。
Apigee Edge のドキュメントを表示する。

このトピックでは、Apigee Analytics について説明します。

動画: Apigee API Analytics サービスの概要を説明する短い動画をご覧ください。

分析を通じて API を強化する

Apigee Analytics では、API プロキシを介して送受信される多くの情報を収集して計算します。このデータは、Apigee UI のグラフやチャートを使用して可視化できます。また、元データをダウンロードし、Apigee API を使用してオフラインで分析することもできます。

Analytics は、次のような一般的なことを調べる際に役立ちます。

  • API トラフィックの経時的な傾向
  • 最もよく使用されている API メソッド
  • トラフィックが最も多いデベロッパー
  • API レスポンスの最短時間最長時間
  • API トラフィックの多い地理的な場所
  • トランザクションはどのくらいの収益を生み出していますか?

特定のホスト名または環境全体のデータを分析できます。

このような情報は、API の強化、問題のトラブルシューティング、API プログラムに関連するビジネス上の意思決定の向上に役立ちます。

API Analytics による全体的な改善

Apigee API Analytics でデータの収集、分析、可視化を継続的に行うことで、API チームは API を改善し、アプリ デベロッパーはアプリの改善を行うことができます。

API プロキシを経由してアプリからデータが伝送されます。そのデータの分析結果はアプリ デベロッパー、API チーム、運用チーム、ビジネス オーナーの判断に役立ちます。
  • API チーム - API チームは、内部システムを活用して独自の API を作成します。API チームは、API プログラムの全体的な動作と個々の API の動作を把握し、API の改善方法を知りたいと考えています。
  • アプリ デベロッパー - 分析情報をアプリ デベロッパーと共有することで、アプリの品質が向上します。デベロッパーが API を使用して創造的なアプリを作成することで、会社の収益向上につなげることができます。Analytics は、アプリ デベロッパーがアプリの動作を把握するだけでなく、収益に対するデベロッパーの貢献度を評価する際にも役立ちます。アプリ デベロッパーはアプリの改善方法を知りたいと考えています。
  • 運用チーム - 運用チームは、トラフィック パターンを理解し、バックエンド リソースを追加するときやその他の重要な調整を実施するときに参加したいと考えています。
  • 事業主 - 事業主は、現在の API 投資がどのように利益をもたらし、今後は API のどの部分に投資すると効果的かを知りたいと考えています。

収集されて分析されるデータの種類

Apigee API Analytics は、API プロキシを介して送受信されるさまざまなデータを収集して、分析します。たとえば、次のようなデータを収集します。

  • 応答時間
  • リクエストのレイテンシ
  • リクエスト サイズ
  • ターゲット エラー
  • API プロダクト名
  • デベロッパーのメールアドレス
  • アプリ名
  • トランザクション収益

API Analytics によって収集されるデータの詳細については、アナリティクス指標、ディメンション、フィルタのリファレンスをご覧ください。

カスタム分析データを収集する方法

Apigee は大量のデータを収集しますが、API プロキシ、アプリ、プロダクト、デベロッパーに固有のカスタム分析データを収集することもできます。たとえば、クエリ パラメータ、リクエスト ヘッダー、リクエストとレスポンスの本文、API で定義した変数などから分析データを収集できます。

DataCapture ポリシーを使用してカスタム分析データを収集し、分析 UI または API を使用して収集したデータを検査できます。

分析データが使用できるタイミングと期間

分析データを表示できるタイミングと期間は、次の 2 つの時間間隔で制御できます。

  • データ遅延間隔 - API プロキシに API 呼び出しが行われてからデータを表示、または API 呼び出し経由でアクセスできるようになるまでに、最大で 10 分ほどかかることがあります。
  • 分析データの可用性 - 分析データ(Monetization と Sense のデータを含む)を Apigee で利用できる期間は、プランによって異なります。ご利用のプランに応じて、過去 30 日間、90 日間、または 14 か月間の分析データを使用できます。

分析データの保存と処理が行われる場所

分析データの保存と処理が行われる場所は、Apigee のインストール時に指定した分析リージョンによって決まります。

  • プロビジョニング ウィザードを使用して Apigee をインストールした場合は、アナリティクス ホスティング リージョンを設定するときに、組織を作成するの手順 1 で分析リージョンを指定しています。
  • コマンドラインから Apigee をインストールした場合は、環境変数 ANALYTICS_REGION を定義したときに分析リージョンを指定しています。

分析用データは次のように保存され、処理されます。

  • 分析リージョンが米国または EU にない場合、分析データは分析リージョンで保存と処理が行われます。
  • 米国または EU の分析リージョンの場合、可用性を高めるためにデータは米国または EU マルチリージョンにそれぞれ保存されます。

分析データにアクセスする方法

Apigee UI で、Apigee Analytics のデータ可視化ツールを利用できます。たとえば、事前定義の Analytics ダッシュボードや、データをグラフやチャートで表示するカスタム レポートを使用できます。ドリルダウンしてデータをさまざまなディメンション(API プロキシ、IP アドレス、HTTP ステータス コードなど)にグループ化して表示することもできます。

また、Apigee API を使用して分析データをダウンロードできます。ダウンロードしたデータは、独自のデータ可視化ツールや分析システムにインポートできます。

Analytics ダッシュボード

Apigee UI には、事前定義のダッシュボードが用意されています。これらのダッシュボードを使用して分析データを表示できます。たとえば、次の図は API Proxy Performance ダッシュボードを示しています。

このダッシュボードには次のチャートが含まれています。

  • Total Traffic - 組織内の API 環境について Apigee で受信された API リクエストの合計数。
  • Traffic Success - レスポンスに成功したリクエストの合計数。エラー レスポンスはカウントされません。
  • Traffic Errors - 失敗したすべての API リクエスト、つまり、レスポンスを送信しないリクエストの合計数。このカウントには、プロキシ(Apigee 側)とターゲット(バックエンド サービス)の両方のエラーが含まれます。
  • Average TPS - 1 秒あたりの API リクエストと結果のレスポンスの平均数。

この他にも次のようなダッシュボードが事前に定義されています。

これらの事前定義ダッシュボードの詳細については、Analytics ダッシュボードの使用をご覧ください。

カスタム レポート

カスタム レポートを使用すると、特定の API 指標にドリルダウンして正確なデータを確認できます。Apigee に組み込まれた分析データを使用して、カスタム レポートを作成できます。

カスタム レポートを作成する場合、確認するデータ(指標)を選択し、意味のある方法(ディメンション)でデータをグループ化します。必要であれば、データの特定の特性に基づいて返されるデータを制限(フィルタリング)します。

カスタム レポートに表示されるグラフの種類(棒グラフや折れ線グラフなど)を設定することもできます。次の画像は、API プロキシごとにグループ化された 1 秒あたりのトランザクション数のチャートを示しています。

  • 棒グラフ - API プロキシがそれぞれ異なる棒で表されています。

    カスタム棒グラフ

  • 折れ線グラフ - 各 API プロキシがそれぞれの折れ線で表されています。

    カスタム折れ線グラフ

詳細については、カスタム レポートの作成と管理をご覧ください。

Analytics API

Apigee API を使用して、分析データのダウンロードを行います。たとえば、API を使用して、ポータルまたはカスタムアプリに組み込む独自の可視化ツールを作成できます。

次に、API プロキシの分析データを取得する API 呼び出しの例を示します。

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/stats/apiproxy?"select=sum(message_count)&timeRange=6/24/20120%2000:00~6/24/2020%2023:59&timeUnit=hour" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

この呼び出しは以下を返します。

  • API プロキシごとのリクエストの合計(メッセージ数)
  • 24 時間分
  • 時間ごとにグループ分け

timeRange クエリ パラメータには、次の形式で期間を指定します。

?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

HH:MM の前にある %20 に注意してください。MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM と同様に、timeRange パラメータには HH:MM の前に URL エンコードの空白文字、または + 文字が必要です。

詳細については、指標 API の使用をご覧ください。

分析データを GCP にエクスポートする

Apigee API を使用して、丸 1 日分のすべての分析データを Apigee から独自のデータ リポジトリ(Google Cloud StorageBigQuery など)のにエクスポートできます。その後、Google Cloud BigQuery と TensorFlow が提供する強力なクエリ機能と機械学習機能を利用して、独自のデータ分析を行うことができます。

詳細については、分析データのエクスポートをご覧ください。

アプリ デベロッパーとデータを共有する方法

アプリ デベロッパーを顧客と考えると、彼らが API を最大限に活用するためのツールと情報が公開されている必要があります。

アプリが API プロキシを介してデータを送信します。そのデータの分析結果はアプリ デベロッパーがアプリの動作を把握するのに役立ちます。

アプリ デベロッパーは、アプリの品質だけでなく、使用する API にも高い関心を持っています。Drupal ベースのデベロッパー ポータルには、アプリ デベロッパーがアプリに関する重要な指標にアクセスできるように設計された [App Performance] ページがあります。デベロッパーは、このページから次の情報を得ることができます。

  • Errors: アプリでどのような API エラーが確認されているか。
  • Performance: 現在 API のレスポンスが遅いかどうか。API メソッドのうち、常時またはその時点でレスポンスの遅いものはどれか。
  • Availability: 現在 API が稼働しているか、停止しているか。
  • Quota: API に対する割り当て量は設定されているか。アプリ デベロッパーとして、その割り当てにどのように対応しているか。

詳細については、Drupal 8 のドキュメントの Monitor apps をご覧ください。

また、次の方法でデベロッパーと分析情報を共有できます。

  • カスタム レポートを作成してアプリ デベロッパーと共有する。詳細については、カスタム レポートの作成と管理をご覧ください。
  • 指標 API を使用して長期間にわたってデータをキャプチャし、アプリ デベロッパーとオフラインで共有する。詳細については、指標 API の使用をご覧ください。

完全な分析データを生成する方法

完全な分析とは、どのようなものなのでしょうか。たとえば、API プロキシを作成すると、Apigee でそのプロキシに関する分析データを収集できます。では、その API プロキシを呼び出したデベロッパーまたはアプリの指標はどうでしょうか。Apigee で API 呼び出しを行ったユーザーがわからなければ、そのデータを収集することはできません。

Apigee を使用して、どのデベロッパーとデベロッパー アプリが API プロキシを呼び出しているのかを確認できるようにするには、いくつかの操作が必要になります。以下に、これらの手順のリストと、より詳細な情報へのリンクを示します。

  1. 1 つ以上の API プロダクトを作成する。サービスプランと一緒に API プロキシをまとめます。API プロダクトを管理するをご覧ください。
  2. Apigee でアプリ デベロッパーを登録するアプリ デベロッパーの登録をご覧ください。
  3. アプリを登録し、デベロッパーの API キーを管理する。アプリを登録して API キーを管理するをご覧ください。
  4. API キーまたはセキュリティ トークン(あるいはその両方)を検証するセキュリティ ポリシーを API プロキシに追加するVerifyAPIKey ポリシーOAuthV2 ポリシーVerifyJWT ポリシーのトピックをご覧ください。

API キーを要求して API を保護するOAuth で API を保護するのチュートリアルでは、デベロッパーとアプリの分析結果を参照するために必要な手順について説明しています。

詳細