このトピックでは、Edge API Analytics について紹介します。
動画: Edge API Analytics サービスの概要に関する短い動画をご覧ください。
分析を通じて API を改善する
Edge API Analytics は、API プロキシを介して流れる豊富な情報を収集して計算します。Edge UI のグラフとチャートでこのデータを可視化することも、Edge 管理 API を使用してオフライン分析用の元データをダウンロードすることもできます。
分析は、次のような一般的な質問に答えるのに役立ちます。
- API トラフィックは経時的にどのような傾向があるでしょうか。
- 最もよく使用されている API メソッドは何でしょうか。
- トラフィックが最も多いデベロッパーは誰ですか。
- API のレスポンス時間が最も速いのはいつでしょうか。最も遅いのはいつでしょうか。
- 地理的に API トラフィックが最も多いのはどこでしょうか。
このような質問への回答は、API の改善、問題のトラブルシューティング、および API プログラムに関連するビジネス上の意思決定の改善に役立ちます。
API Analytics がすべての人の改善を支援する
Edge API Analytics は、データの収集、分析、可視化の継続的なプロセスを通じて、API チームが API を改善し、アプリ デベロッパーがアプリを改善するのを支援します。
- API チーム - API チームは、内部システムを活用して独自の API を作成します。API チームは、API プログラムの全体的な動作および個々の API の動作を把握し、API の改善方法を検討したいと考えています。
- アプリ デベロッパー - 分析情報をアプリ デベロッパーと共有することで、アプリの品質が向上します。デベロッパーが API を使用して創造的なアプリを作成することで、自社の収益増加が促進されます。分析は、アプリ デベロッパーがアプリの動作を把握し、API を作成した企業の収益に対する貢献度を理解するために役立ちます。アプリ デベロッパーは、アプリをどのように改善できるかを知りたいと考えています。
- 運用チーム - 運用チームは、トラフィック パターンを理解し、バックエンド リソースを追加するときやその他の重要な調整を実施するときに参加したいと考えています。
- 事業主 - 事業主は、現在の API 投資がどのように利益をもたらし、今後は API のどの部分に投資すると効果的かを知りたいと考えています。
収集および分析されるデータの種類
Edge API Analytics は、次のような API プロキシを介して送受信されるさまざまなデータを収集して分析します。
- 応答時間
- リクエストのレイテンシ
- リクエスト サイズ
- ターゲット エラー
- API プロダクト名
- デベロッパー メールアドレス
- アプリ名
- その他
API Analytics によって収集されたデータの完全なリストについては、アナリティクス指標、ディメンション、フィルタのリファレンスをご覧ください。
カスタム分析データを収集するにはどうすればよいですか?
Edge は、さまざまなデータをネイティブに収集します。API プロキシ、アプリ、プロダクト、またはデベロッパーに固有のカスタム分析データを収集することもできます。たとえば、クエリ パラメータ、リクエスト ヘッダー、リクエスト本文とレスポンス本文、または API で定義した変数から分析データを収集することもできます。
Statistics Collector ポリシーを使用してカスタム分析データを収集します。カスタムデータが抽出されたら、分析 UI または API を使用してデータを検査できます。カスタム分析データを収集する方法を示す完全な例については、カスタム分析を使用して API メッセージ コンテンツを分析するをご覧ください。
分析データはいつ、どのくらいの期間利用できますか?
分析データを表示できるタイミングと期間を制御する 2 つの時間間隔があります。
- データ遅延間隔 - API プロキシへの呼び出しが行われてから、表示のためまたは Management API 呼び出しを介してデータにアクセスできるようになるまでに最大 10 分かかります。
- データ保持 - Edge での分析データの保持期間はプランによって異なります。プランによっては、過去 30、60、90、または 365 日間の分析データを利用できる場合があります。
分析データにアクセスするにはどうすればよいですか?
Edge API Analytics は、Edge UI に組み込まれたデータ可視化ツールを提供します。このツールには、事前に定義された分析ダッシュボードと、グラフやチャートでデータを表示するカスタム レポートが含まれており、さまざまなディメンション(API プロキシ、IP アドレス、HTTP ステータス コードなど)にグループ分けされたデータを表示するためにドリルダウンできます。
加えて、Edge Management API を使用して分析データをダウンロードできます。ダウンロードしたら、そのデータを独自のデータ可視化ツールまたは分析システムにインポートできます。
Analytics ダッシュボード
Edge UI は、分析データを表示するために使用可能な事前に定義されたダッシュボードのセットを提供します。たとえば、次の図はプロキシ パフォーマンス ダッシュボードを示しています。
このダッシュボードには、次のチャートが含まれています。
- Total Traffic - 組織内の API 環境について Edge で受信された API リクエストの合計数。
- Traffic Success - レスポンスに成功したリクエストの合計数。エラー レスポンスはカウントされません。
- Traffic Errors - 失敗したすべての API リクエスト、つまり、レスポンスを送信しないリクエストの合計数。このカウントには、プロキシ(Apigee 側)とターゲット(バックエンド サービス)の両方のエラーが含まれます。
- Average TPS - 1 秒あたりの API リクエストと結果のレスポンスの平均数。
その他の事前に定義されたダッシュボードを以下に示します。
これらの事前に定義されたダッシュボードの詳細については、Analytics ダッシュボードの使用をご覧ください。
カスタム レポート
カスタム レポートを使用すると、特定の API 指標にドリルダウンして正確なデータを見ることができます。Edge に組み込まれた分析データまたは StatisticsCollector ポリシーによって収集されたカスタム分析データを使用して、カスタム レポートを作成できます。
カスタム レポートを作成するときは、表示するデータ(指標)を選択し、意味のある方法(ディメンション)でデータをグループ化します。また、必要に応じて、取得するデータを特定の条件に基づいて絞り込みます(フィルタリング)。
カスタム レポートに表示されるグラフのタイプを縦棒グラフまたは折れ線グラフとして設定することもできます。次の画像は、API プロキシごとにグループ分けされた 1 秒あたりのトランザクション数のチャート例を示しています。
縦棒グラフ - 各 API プロキシは、それぞれの縦棒で表されています。
折れ線グラフ - 各 API プロキシは、それぞれの折れ線で表されています。
詳細については、カスタム レポートの作成と管理をご覧ください。
Analytics API
Edge Management API を使用して、分析データをダウンロードします。たとえば、API を使用して、ポータルまたはカスタムアプリに埋め込むことができる独自の可視化ツールを構築できます。
API プロキシの分析データを取得する API 呼び出しの例を次に示します。
curl https://api.enterprise.apigee.com/v1/o/org_name/environments/test/stats/apiproxy?"select=sum(message_count)&timeRange=6/24/2018%2000:00~6/24/2018%2023:59&timeUnit=hour" \ -u email:password
この呼び出しは以下を返します。
- API プロキシごとのリクエストの合計(メッセージ数)
- 24 時間分
- 時間でグループ分け
timeRange
クエリ パラメータは、次の形式で期間を指定します。
?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
HH:MM
の前にある %20
に注意してください。timeRange
パラメータでは、MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
のように、HH:MM
の前に URL エンコードされたスペース文字(+
文字)を入れる必要があります。
詳細については、指標 API を使用して API プログラムのパフォーマンスを評価するをご覧ください。
分析データを GCP にエクスポートする
Edge Management API を使用して、丸 1 日のすべての分析データを Edge から Google Cloud Storage や BigQuery などの独自のデータ リポジトリにエクスポートできます。これにより、Google Cloud BigQuery と TensorFlow が提供する強力なクエリと機械学習の機能を活用し、独自のデータ分析を行うことができます。
詳細については、分析からデータをエクスポートするをご覧ください。
アプリ デベロッパーとデータを共有するにはどうすればよいですか?
アプリ デベロッパーを顧客と考えると、彼らが API を最大限に活用するためのツールと情報を利用できるようにする必要があります。
アプリ デベロッパーは、アプリの品質に配慮するだけでなく、使用する API にも高い関心があります。Drupal ベースのデベロッパー ポータルには、アプリ デベロッパーがアプリに関する重要な指標にアクセスできるように設計されたオプションの [App Performance] ページが含まれています。デベロッパーは、このページから次の情報を得ることができます。
- Errors: アプリでどのような API エラーが確認されているか。
- Performance: 現在 API のレスポンスが遅いか。API メソッドのうち、一般的にレスポンスが遅いものや、その時点でレスポンスが遅いものはどれか。
- Availability: 現在 API が稼働しているか、停止しているか。
- Quota: API に対する割り当て量は設定されているか。アプリ デベロッパーとして、その割り当て量に対してどのように対応しているか。
詳細については、以下をご覧ください。
- Drupal 7: アプリ使用状況の分析の表示
- Drupal 8: アプリのモニタリング
- 統合ポータル: 利用不可
加えて、次の方法でデベロッパーと分析を共有できます。
- カスタム レポートを作成し、アプリ デベロッパーと共有します。詳細については、カスタム レポートを作成するをご覧ください。
- Edge Management API を使用して、長期間にわたってデータをキャプチャし、アプリ デベロッパーとオフラインで共有します。詳細については、指標 API を使用して API プログラムのパフォーマンスを評価するをご覧ください。
完全な分析データを生成するにはどうすればよいですか?
完全な分析とはどのようなものでしょうか。たとえば、API プロキシを作成すると、Edge はそのプロキシに関する分析データを収集します。では、その API プロキシを呼び出したデベロッパーまたはアプリの指標はどうでしょうか。Edge は、API 呼び出しを行ったユーザーを認識していなければ、そのデータを収集できません。
Edge に API プロキシを呼び出しているデベロッパーとデベロッパー アプリを認識させるには、いくつかの手順が必要です。これらの手順のリストと詳細情報へのリンクを以下に示します。
- 1 つ以上の API プロダクトを作成します。これは、サービスプランと一緒に API プロキシをグループ分けしたものです。API プロダクトの作成をご覧ください。
- Edge にアプリ デベロッパーを登録します。アプリ デベロッパーの管理をご覧ください。
- アプリを登録して、デベロッパー用の API キーを生成します。アプリの登録と API キーの管理をご覧ください。
- API キーまたはセキュリティ トークン(あるいはその両方)を検証するセキュリティ ポリシーを API プロキシに追加します。トピックの Verify API Key ポリシー、OAuthV2 ポリシー、および Verify JWT ポリシーをご覧ください。
- Edge Microgateway を使用している場合は、分析プラグインが有効になっていることを確認します(デフォルトで有効になります)。分析プラグインが無効になっている場合は、Edge Microgateway から Edge Analytics に分析データが送信されることはありません。
次のチュートリアルでは、デベロッパーとアプリに関する分析を表示するために必要な手順 API キーを要求することで API を保護すると OAuth で API を保護するについて説明します。
API Analytics と API Monitoring を比較する
Edge API Monitoring と API Analytics の両方を利用できます。API Monitoring は、分析データを調べて、API パフォーマンスに関するリアルタイムのコンテキストを反映した分析情報を提供します。これにより、問題を迅速に診断して、ビジネス継続性実現のための是正措置を促進できます。API Monitoring は、API とバックエンドの問題箇所をすばやく見つけるように設計されています。API Analytics は、複数の異なるチームが使用するための幅広い分析データをキャプチャするように設計されていますが、データは、通常、非リアルタイム シナリオでの分析に使用されます。
API Monitoring と API Analytics の主な違いの 1 つは、API Monitoring に組み込まれたアラート メカニズムです。アラートを使用して、HTTP ステータス コード(2xx / 4xx / 5xx)、レイテンシ、または障害コードのしきい値を指定します。これを超えると、運用チームへのアラート通知がトリガーされます。アラート通知は、メール、Slack、ポケットベル、Webhook などのさまざまなチャネルを介して送信できるため、問題にすばやく対応できます。
これらのサービス間の詳細な比較については、API Monitoring と Edge Analytics Services の比較をご覧ください。