このトピックは、アナリティクスの指標、ディメンション、フィルタのリファレンスです。これらの使用方法については、API Analytics の概要をご覧ください。
このトピックでは、指標およびディメンションが UI に表示されるときの名前と、API 呼び出しで使用するときの名前を示します。
- UI 名は、カスタム レポートを作成するときに表示されます。
- API 固有の名前は、指標を取得するとき、レポート定義を作成するとき、またはレポート定義を更新するときに使用します。
指標
以下は、カスタム レポートおよび Management API 呼び出しで取得できる API 指標です。
カスタム レポート名 | Management API で使用する名前 | 関数 | 説明 |
---|---|---|---|
1 秒あたりの平均トランザクション数 | tps | なし |
1 秒あたりの平均トランザクション数(つまり API プロキシ リクエスト数)。期間中のトランザクション数が比較的少ない場合、1 秒あたりの平均トランザクション数が小数第 2 位より小さいと、UI カスタム レポートでゼロと表示されることがあります。 API 構文: |
キャッシュ ヒット | cache_hit | sum |
ターゲット サービスからのレスポンスの代わりに Response Cache を使用する API リクエストが正常に行われた回数。 API 構文: |
L1 キャッシュ要素数 | ax_cache_l1_count | avg、min、max |
指定期間中の 1 トランザクションあたりの L1(メモリ内)キャッシュにある要素数を返します。たとえば、1 日という期間を指定して API 構文: |
ポリシーエラー | policy_error | sum |
指定期間中に発生したポリシーエラーの総数です。 通常、ポリシーエラーの発生は意図されたものです。たとえば、Verify API Key ポリシーは、リクエストで無効な API キーが渡されたときエラーをスローします。Spike Arrest ポリシーがエラーをスローするのは、API 呼び出し数がポリシーで定義された上限を超えた場合です。そのため、この指標は API 内で潜在的に問題が起こりやすい箇所を見つける場合に役立ちます。たとえば、policy_error 指標が developer_app ディメンションでグループ化されている場合は、API キーまたは OAuth トークンが指定のアプリで期限切れになっていることを検出するために役立つ可能性があります。あるいは特定の API プロキシが多数の Spike Arrest エラーをスローしている場合は、そのプロキシの Spike Arrest 上限で休日のトラフィック増加が考慮されていないことを発見できる可能性があります。 ポリシーエラーがアナリティクスに記録されるのは、そのエラーが API プロキシ障害になる場合だけです。たとえば、ポリシーの エラー時のポリシー名(ax_execution_fault_policy_name)ディメンションは、ポリシーエラーをポリシー名別にグループ化する場合に便利です。 ターゲット障害(404 や 503 など)はポリシー障害としてカウントしません。これらは API プロキシ障害(is_error)としてカウントします。 API 構文: |
プロキシエラー | is_error | sum |
指定期間中に API プロキシがエラーとなった回数の合計です。プロキシ障害が発生するのは、ポリシーが失敗したときか、ターゲット サービスからランタイム障害(404 や 503 など)が発生したときです。 プロキシ(apiproxy)ディメンションは、API プロキシ障害をプロキシ別にグループ化する場合に便利です。 API 構文: |
リクエスト処理レイテンシ | request_processing_latency | avg、min、max |
Edge が受信リクエストを処理するのにかかる平均、最小、または最大時間(ミリ秒)。この時間はリクエストが Edge に到達したとき開始し、Edge がリクエストをターゲット サービスに転送したとき終了します。 さまざまなディメンションを使用することで、リクエスト処理レイテンシを API プロキシ別、デベロッパー アプリ別、リージョン別などで調べることができます。 API 構文: |
リクエスト サイズ | request_size | sum、avg、min、max |
Edge により受信されるリクエスト ペイロードのサイズ(バイト単位)。 API 構文: |
Response Cache 実行後 | ax_cache_executed | sum |
Response Cache ポリシーが指定の期間中に実行された総回数。 Response Cache ポリシーは API プロキシの 2 か所で接続されるため(1 回はリクエスト中、もう 1 回はレスポンス中)、通常は 1 回の API 呼び出しで 2 回実行されます。キャッシュ「get」とキャッシュ「put」はそれぞれを 1 回の実行としてカウントします。 ただし、ポリシー内の Trace ツールで、実行された API 呼び出しの [Response Cache] アイコンをクリックし、 API 構文: |
レスポンス処理レイテンシ | response_processing_latency | avg、min、max |
Edge が API レスポンスを処理するのにかかる平均、最小、または最大時間(ミリ秒)。この時間は API プロキシがターゲット サービス レスポンスを受信したとき開始し、Apigee がレスポンスを元の呼び出し元に転送したとき終了します。 さまざまなディメンションを使用することで、レスポンス処理レイテンシを API プロキシ別、リージョン別などで調べることができます。 API 構文: |
レスポンス サイズ | response_size | sum、avg、min、max |
クライアントに返されるレスポンス ペイロードのサイズ(バイト単位)。 API 構文: |
ターゲット エラー | target_error | sum |
ターゲット サービスからの 5xx レスポンスの総数。これらのターゲット サービスエラーは、Apigee に起因するものではありません。 API 構文: |
ターゲット レスポンス時間 | target_response_time | sum、avg、min、max |
ターゲット サーバーが呼び出しに応答する合計時間、平均時間、最小時間、または最大時間(ミリ秒)。この指標により、ターゲット サーバーのパフォーマンスがわかります。この時間は Edge がリクエストをターゲット サービスに転送したとき開始し、Edge がレスポンスを受信したとき終了します。 Response Cache ポリシーなどを使用してキャッシュからレスポンスを返す API 呼び出しは、ターゲット サービスに到達しないため、ターゲット レスポンス時間指標が記録されないことに留意してください。 API 構文: |
合計レスポンス時間 | total_response_time | sum、avg、min、max |
Edge がクライアントからリクエストを受信してからクライアントにレスポンスを返信するまでの合計時間、平均時間、最小時間、または最大時間(ミリ秒単位)。この時間には、ネットワーク オーバーヘッド(たとえばロードバランサやルーターがそれぞれの仕事をするのにかかる時間)、リクエスト処理レイテンシ、レスポンス処理レイテンシ、ターゲット レスポンス時間(レスポンスが、キャッシュではなくターゲット サービスから返される場合)が含まれます。 さまざまなディメンションを使用することで、処理レイテンシを API プロキシ別、デベロッパー アプリ別、リージョン別などで調べることができます。 API 構文: |
トラフィック | message_count | sum |
指定された期間に Edge により処理される API 呼び出しの合計数。 ディメンションを使用することで、トラフィック数を最も有意義な方法でグループ化できます。 API 構文: |
ディメンション
ディメンションにより、指標をわかりやすいグループに分けて見ることができます。たとえば、総トラフィック数を見る際は、デベロッパー アプリごとや API プロキシごとに表示したほうが効果的です。
以下は、そのまま使用できる Apigee のディメンションです。さらに、カスタム分析を使用して API メッセージ コンテンツを分析するの説明に沿って独自のディメンションを作成できます。
カスタム レポート名 | Management API で使用する名前 | 説明 |
---|---|---|
Apigee のエンティティ | ||
アクセス トークン | access_token | アプリのエンドユーザーの OAuth アクセス トークン。 |
API プロダクト | api_product |
呼び出し先の API プロキシを含む API プロダクトの名前。このディメンションを取得するには、呼び出し元のデベロッパー アプリが、API プロキシを含む 1 つ以上の API プロダクトに関連付けられている必要があります。また、呼び出し先のプロキシは、API 呼び出しで送信される API キーまたは OAuth トークンを検証する必要があります。キーまたはトークンは API プロダクトに関連付けられています。詳細については、最初にすべきこと: 完全な分析データを生成する方法をご覧ください。 上記の条件が満たされない場合、「(not set)」の値が表示されます。分析エンティティ値「(not set)」の意味もご覧ください。 |
キャッシュキー | ax_cache_key |
アクセスされた Response Cache 値を含むキー。このキーが Response Cache で構成される方法について詳しくは、Response Cache ポリシーをご覧ください。 Trace ツールで、キャッシュに対して読み書きを行う Response Cache ポリシーを選択すると、この値が |
キャッシュ名 | ax_cache_name |
Response Cache ポリシーが使用する Key-Value を含むキャッシュの名前。接頭辞 orgName__envName__ が付きます。たとえば、組織が「foo」、環境が「test」、キャッシュ名が「myCache」の場合、ax_cache_name は foo__test__myCache です。 Trace ツールで、Response Cache ポリシーを選択すると、この値が |
キャッシュ ソース | ax_cache_source |
Response Cache が取得されたキャッシュ レベル(「L1」メモリ内または「L2」データベース)。このディメンションは、レスポンスがキャッシュではなくターゲットから送られたとき(およびレスポンス キャッシュがターゲット レスポンスでリフレッシュされたとき)、またはリクエスト内のキャッシュキーが無効なときに「CACHE_MISS」も表示します。キャッシュキーはサイズが 2 KB に制限されています。 Trace ツールで、Response Cache ポリシーを選択すると、この値が キャッシュ レベルの詳細については、キャッシュの仕組みをご覧ください。 |
解決済みクライアント IP | ax_resolved_client_ip |
発信側クライアント IP アドレスを含みます。 Akamai などのルーティング プロダクトを使用してクライアントの真の IP アドレスを取得する場合、クライアント IP は Edge の HTTP ヘッダー
|
クライアント ID | client_id |
API 呼び出しを行っているデベロッパー アプリのコンシューマ キー(API キー)。リクエスト内で API キーとして渡されるか、OAuth トークンに含まれます。 このディメンションを取得するには、呼び出し先のプロキシが API キーまたは OAuth トークンの有効性を検証するよう構成する必要があります。デベロッパー アプリが API キーを取得し、アプリが Edge に登録されている場合は、これを使用して OAuth トークンを生成できます。詳細については、最初にすべきこと: 完全な分析データを生成する方法をご覧ください。 上記の条件が満たされない場合、「(not set)」の値が表示されます。分析エンティティ値「(not set)」の意味もご覧ください。 |
デベロッパー アプリ | developer_app |
API 呼び出しを行っている、Edge 登録したデベロッパー アプリ。 このディメンションを取得するには、呼び出し元のデベロッパー アプリが、呼び出し先の API プロキシを含む 1 つ以上の API プロダクトに関連付けられている必要があります。また、このプロキシは、API 呼び出しで送信される API キーまたは OAuth トークンを検証する必要があります。キーまたはトークンは、デベロッパー アプリを識別します。詳細については、最重要ポイント: 完全な分析データを生成する方法をご覧ください。 上記の条件が満たされない場合、「(not set)」の値が表示されます。分析エンティティ値「(not set)」の意味もご覧ください。 |
開発者のメール | developer_email |
API 呼び出し元のアプリを所有する、Edge 登録した開発者のメール。 このディメンションを取得するには、呼び出し先の API プロキシを含む 1 つ以上の API プロダクトに関連付けられたアプリを開発者が所有している必要があります。また、このプロキシは、API 呼び出しで送信される API キーまたは OAuth トークンを検証する必要があります。キーまたはトークンは、デベロッパー アプリを識別します。詳細については、最重要ポイント: 完全な分析データを生成する方法をご覧ください。 上記の条件が満たされない場合、「(not set)」の値が表示されます。分析エンティティ値「(not set)」の意味もご覧ください。 |
開発者 ID | developer |
Edge で生成された一意の開発者 ID。形式は org_name@@@unique_id です。 このディメンションを取得するため、呼び出し先の API プロキシを含む 1 つ以上の API プロダクトに関連付けられたアプリをデベロッパーが所有している必要があります。また、呼び出し先のプロキシは、API 呼び出しで送信される API キーまたは OAuth トークンを検証する必要があります。キーまたはトークンは、デベロッパーを識別します。詳細については、最初にすべきこと: 完全なアナリティクス データを生成する方法をご覧ください。 上記の条件が満たされない場合、「(not set)」の値が表示されます。分析エンティティ値「(not set)」の意味もご覧ください。 |
環境 | environment | API プロキシがデプロイされている Edge 環境。たとえば、「test」または「prod」です。 |
エラー時のフロー名 | ax_execution_fault _flow_name |
エラーが発生した API プロキシ内の名前付きフロー。たとえば、「PreFlow」、「PostFlow」、あるいは作成した条件付きフローの名前などです。 Management API で使用するフルネームは、改行なしの ax_execution_fault_flow_name になることに注意してください。 エラーが発生していない場合は、値「(not set)」が表示されます。 |
フロー リソース | flow_resource | Apigee による使用のみ。興味がある場合は、こちらのコミュニティ投稿をご覧ください。 |
エラー時のフロー状態 | ax_execution_fault _flow_state |
エラーが発生した API プロキシフロー状態の名前。「PROXY_REQ_FLOW」や「TARGET_RESP_FLOW」など。 Management API で使用するフルネームは、改行なしの ax_execution_fault_flow_state になることに注意してください。 |
ゲートウェイ フロー ID | gateway_flow_id | API 呼び出しが Edge 内を移動する際、各呼び出しは独自のゲートウェイ フロー ID を取得します。例: rrt329ea-12575-114653952-1。ゲートウェイ フロー ID は、組織、環境、タイムスタンプなど他のディメンションが呼び出し間で同一である高 TPS 状況において、指標を見分ける場合に便利です。 |
組織 | organization | API プロキシがデプロイされている Edge 組織。 |
エラー時のポリシー名 | ax_execution_fault _policy_name |
エラーをスローして API 呼び出しが失敗する原因となったポリシーの名前。 Management API で使用するフルネームは、改行なしの ax_execution_fault_policy_name になることに注意してください。 ポリシーがエラーをスローしたのにもかかわらずポリシールート属性 |
プロキシ | apiproxy | API プロキシのマシン名(表示名ではない)。 |
プロキシ ベースパス | proxy_basepath |
API プロキシ ProxyEndpoint で構成された BasePath。ベースパスに API プロキシ URL のドメインやポート部分は含まれません。たとえば、API プロキシのベース URL が https://apigeedocs-test.apigee.net/releasenotes/ の場合、ベースパスは /releasenotes です。 値は |
プロキシパス接尾辞 | proxy_pathsuffix |
API プロキシ ベースパスに追加されたリソースパス。たとえば、API プロキシのベース URL が pathsuffix を使用しない場合、値は空となります。 値は |
プロキシ リビジョン | apiproxy_revision | API 呼び出しを処理した API プロキシのリビジョン番号。これは、必ずしも API プロキシの最新リビジョンを意味するわけではありません。API プロキシにリビジョンが 10 個ある場合、8 番目のリビジョンが現在デプロイされている場合があります。また、リビジョンに異なるベースパスがある限り、API に複数のリビジョンがデプロイされている場合があります。これについては、UI でのプロキシのデプロイで説明しています。 |
レスポンス ステータス コード | response_status_code | Apigee からクライアントに転送された HTTP レスポンス ステータス コード(200、404、503 など)。Edge では、ターゲットからのレスポンス ステータス コードは Assign Message や Raise Fault などのポリシーで上書きが可能です。これが、このディメンションがターゲット レスポンス コード(target_response_code)と異なる理由です。 |
仮想ホスト | virtual_host | API 呼び出しが行われた仮想ホストの名前。たとえば、組織にはデフォルトで default (http)と secure (https)の 2 つの仮想ホストがあります。 |
インバウンド / クライアント | ||
クライアント IP アドレス | client_ip | 元のクライアント(proxy_client_ip)やロードバランサなど、ルーターを通過するシステムの IP アドレス。X-Forwarded-For ヘッダーに複数の IP がある場合、これはリストの最後の IP です。 |
デバイス カテゴリ | ax_ua_device_category | API 呼び出しを行ったデバイスのタイプ。「タブレット」や「スマートフォン」など。 |
OS ファミリー | ax_ua_os_family | 呼び出しを行っているデバイスのオペレーティング システム ファミリー(「Android」や「iOS」など)。 |
OS バージョン | ax_ua_os_version |
呼び出しを行っているデバイスのオペレーティング システムのバージョン。 オペレーティング システムのバージョンを調べる場合に、これを OS ファミリー(ax_ua_os_family)と一緒に 2 番目の「ドリルダウン」ディメンションとして使用すると便利です。 |
プロキシ クライアント IP | proxy_client_ip |
呼び出し元クライアントの IP アドレス。 |
参照されるクライアント IP | ax_true_client_ip | Akamai などのルーティング プロダクトを使用してクライアントの真の IP アドレスを取得する場合、クライアント IP は Edge の HTTP ヘッダー
|
リクエスト パス | request_path |
ターゲット サービスへのリソースパス(ドメインを含まない)。クエリ パラメータを除きます。 たとえば、Apigee サンプル ターゲット |
リクエスト URI | request_uri |
ターゲット サービスへのリソースパス(ドメインを含まない)。クエリ パラメータを含みます。 たとえば、Apigee サンプル ターゲット |
リクエスト動詞 | request_verb | API リクエスト内の HTTP リクエスト動詞。GET、POST、PUT、DELETE など。 |
ユーザー エージェント | useragent |
ユーザー エージェントまたはソフトウェア エージェントの名前。API 呼び出しを行うために使用します。次に例を示します。
|
ユーザー エージェント ファミリー | ax_ua_agent_family | ユーザー エージェントのファミリー。「Chrome Mobile」や「cURL」など。 |
ユーザー エージェント タイプ | ax_ua_agent_type | ユーザー エージェントのタイプ。「Browser」、「Mobile Browser」、「Library」など。 |
ユーザー エージェント バージョン | ax_ua_agent_version |
ユーザー エージェントのバージョン。 エージェント ファミリーのバージョンを取得する場合に、これをユーザー エージェント ファミリー(ax_ua_agent_family)と一緒に 2 番目の「ドリルダウン」ディメンションとして使用すると便利です。 |
アウトバウンド / ターゲット | ||
ターゲット ベースパス | target_basepath |
クエリ パラメータを除く、バックエンド サービスへのリソースパス(ドメインは含まれません)。このリソースパスは、プロキシの たとえば、API プロキシが次のターゲットを呼び出すとします。 <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> この例では、target_basepath は ターゲットが次のようになっているとします。 <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> </HTTPTargetConnection> この場合、target_basepath は null になります。 Trace ツールで、フロー図の最後の AX アイコンを選択すると、 |
ターゲット ホスト | target_host | ターゲット サービスのホスト。たとえば、API プロキシが http://mocktarget.apigee.net/help を呼び出す場合、target_host は mocktarget.apigee.net です。 |
ターゲット IP アドレス | target_ip | API プロキシにレスポンスを返しているターゲット サービスの IP アドレス。 |
ターゲット レスポンス コード | target_response_code |
ターゲット サービスにより API プロキシに返された HTTP レスポンス ステータス コード。200、404、503 など。 「null」の値は、リクエストがターゲット サービスに到達しないことを意味します。これは、レスポンスが Response Cache ポリシーにより返されたときや、リクエスト処理にエラーがあるときに発生します。 これは、レスポンス ステータス コード(response_status_code)ディメンションとは異なります。 |
ターゲット URL | target_url |
API プロキシの TargetEndpoint で定義されているターゲット サービスの完全な URL。 <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> この例では、target_url は この URL は、API プロキシ処理中に、 プロキシ チェーンでは、およびスクリプト ターゲット(Node.js)を使用しているときは、呼び出し元プロキシの target_url は null となります。 |
X Forwarded For | x_forwarded_for_ip |
|
時間 | ||
曜日 | ax_day_of_week | API 呼び出しが行われた曜日の 3 文字の省略形。たとえば、Mon、Tue、Wed です。 |
月 | ax_month_of_year | API 呼び出しが行われた月の数値。たとえば、3 月は「03」です。 |
時刻 | ax_hour_of_day |
24 時間制に基づいた、API 呼び出しが行われた 2 桁の時間。たとえば、API 呼び出しが午後 10 時と午後 11 時の間の時間に行われた場合、ax_hour_of_day は 22 になります。 時刻値は UTC です。 |
タイムゾーン | ax_geo_timezone | API 呼び出しが行われた場所のタイムゾーンの共通名。America/New_York や Europe/Dublin など。 |
月の週 | ax_week_of_month | 月の週の数値。たとえば、月の第 3 週に行われた API 呼び出しの場合、ax_week_of_month は 3 です。 |
ロケーション | ||
都市 | ax_geo_city | API 呼び出しが行われた都市。 |
大陸 | ax_geo_continent | API 呼び出しが行われた大陸の 2 文字のコード。たとえば、北米は NA です。 |
国 | ax_geo_country | API 呼び出しが行われた国の 2 文字のコード。たとえば、米国は US です。 |
地理的リージョン | ax_geo_region | STATE-COUNTRY のようにハイフンでつないだ地理的リージョンのコード。たとえば、米国ワシントン州は WA-US です。 |
リージョン | ax_dn_region | API プロキシがデプロイされている Apigee データセンターの名前。us-east-1 などです。 |
フィルタ
フィルタを使用すると、結果を特定の特性を持つ指標に限定できます。いくつかのサンプル フィルタを以下に示します。フィルタを定義するときに指標およびディメンションの API スタイル名を使用します。
名前が books または music の API プロキシの指標を返します。
filter=(apiproxy in 'books','music')
名前が「m」で始まる API プロキシの指標を返します。
filter=(apiproxy like 'm%')
名前が「m」で始まらない API プロキシの指標を返します。
filter=(apiproxy not like 'm%')
レスポンス ステータス コードが 400 と 599 の間の API 呼び出しの指標を返します。
filter=(response_status_code ge 400 and response_status_code le 599)
レスポンス ステータス コードが 200、ターゲット レスポンス コードが 404 の API 呼び出しの指標を返します。
filter=(response_status_code eq 200 and target_response_code eq 404)
レスポンス ステータス コードが 500 の API 呼び出しの指標を返します。
filter=(response_status_code eq 500)
結果がエラーにならなかった API 呼び出しの指標を返します。
filter=(is_error eq 0)
レポート フィルタを構築するために使用できる演算子を以下に示します。
演算子 | 説明 |
---|---|
in |
リストに含む |
notin |
リストから除外する |
eq |
等しい、== |
ne |
等しくない、!= |
gt |
より大きい、> |
lt |
より小さい、< |
ge |
以上、>= |
le |
以下、<= |
like |
文字列パターンが指定したパターンに一致する場合に true を返します。 |
not like |
文字列パターンが指定したパターンに一致する場合に false を返します。 |
similar to |
パターンが指定した文字列に一致するかどうかに応じて true または false を返します。like と似ていますが、SQL 標準の正規表現の定義を使用してパターンを解釈する点が異なります。 |
not similar to |
パターンが指定した文字列に一致するかどうかに応じて false または true を返します。not like と似ていますが、SQL 標準の正規表現の定義を使用してパターンを解釈する点が異なります。 |
and |
「and」ロジックを使用して複数のフィルタ式を含めることができます。フィルタには、すべての条件を満たすデータが含まれます。 |
or |
「or」ロジックを使用して、考えられるさまざまなフィルタ式を評価できます。フィルタには、少なくとも 1 つの条件を満たすデータが含まれます。 |