1

API プロキシの各ポリシーに費やされた時間に関するレポートを生成するための推奨/最適な方法はありますか?

現在の私のアプローチは、JS を使用してタイムスタンプを収集し、各ポリシーの遅延を計算してから、統計収集ポリシーを使用して報告することです。

これはパフォーマンス チェックにはあまりにも侵襲的であり、私のデータ収集だけでも全体的な応答に時間がかかります。

多くのリクエストにまたがるデータを分析するときに、各ステップにかかる時間を報告するための侵襲的ではない最良の方法は何ですか (トレースモードの UI は、個々のリクエストベースで各ポリシーの時間を表示します)

ありがとう、

リカルド

4

4 に答える 4

0

デバッグ API の使用を検討しています。http://apigee.com/docs/api/debug-sessions

まず、たとえば次のようにセッションを開始する必要があります。

curl -H "Content-type:application/octet-stream" -X POST https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/apis/{api_name}/revisions/{revision #}/debugsessions?"session=MySession" \ -u $ae_username:$ae_password

セッションから情報を取得:

curl -X GET -H "Accept:application/json" \ https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/apis/{api_name}/revisions/{revision #}/debugsessions/MySession/data \ -u $ae_username:$ae_password

于 2014-02-04T22:56:58.123 に答える
0

リカルド、これが私が提案するものです。

免責事項:非常に細心の注意を払い、時間がかかります。このアプローチは、パフォーマンスの問題で本当にブロックされていて、他に解決策がない場合にのみお勧めします。

プロキシに、外部サービスとバックエンドへのサービス コールアウトというポリシーがほとんどないとします。

したがって、合計レイテンシは、(p1、p2、p3...) にかかった時間の合計 + サービス コールアウト ターゲット + バックエンドにかかった時間になります。

  1. 最初のステップは、外部依存関係をスタブ化することです。これを行うには、null ターゲット(ロジックのない Apigee Edge 上のスタブ プロキシ)を使用できます。
  2. ここで、他のすべてのポリシーを無効にします (ポリシー スキーマで enable = false )。負荷テストを実施し、スタブ化されたエンドポイントに対してプロキシ パフォーマンスのベンチマークを行います。また、現時点ではアクティブなポリシーはありません。
  3. ポリシーのアクティブ化を 1 つずつまたは一度にいくつか開始し、毎回負荷テストを再実行します。
  4. 最後に、実際のバックエンドに対して負荷テストを実行できます (スタブを削除します)

この一連の負荷テストの最後に、どのポリシー、つまりバックエンドがパフォーマンスに最も大きな影響を与えているかがわかります。

于 2014-02-06T02:02:01.553 に答える