您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本主題提供數據分析指標、維度和篩選器的參考資料。如要進一步瞭解如何使用這些項目,請參閱 API Analytics 總覽。
本主題會顯示指標和維度在使用者介面中的名稱,以及在 API 呼叫中使用的名稱。
指標
您可以在自訂報表和 Management API 呼叫中擷取下列 API 指標。
| 自訂報表名稱 | 管理 API 中使用的名稱 | 函式 | 說明 |
|---|---|---|---|
| 平均每秒交易次數 | tps | 無 |
每秒的平均交易數,也就是 API Proxy 要求數。 請注意,如果時間範圍內的交易次數相對較少,且小於兩位小數,則使用者介面自訂報表中的每秒平均交易次數可能會顯示為零。 API 語法: |
| 快取命中 | cache_hit | 總和 |
使用回應快取而非目標服務回應的成功 API 要求數量。 API 語法: |
| L1 快取元素數量 | ax_cache_l1_count | 平均值、最小值、最大值 |
傳回指定時間範圍內,每筆交易的 L1 (記憶體內) 快取元素數量。舉例來說,如果您選擇 API 語法: |
| 政策錯誤 | policy_error | 總和 |
指定時間範圍內的政策錯誤總數。 政策錯誤通常是設計上的問題。舉例來說,如果要求中傳遞的 API 金鑰無效,Verify API Key 政策就會擲回錯誤;如果 API 呼叫次數超過政策中定義的限制,Spike Arrest 政策就會擲回錯誤。因此,這項指標有助於找出 API 中的潛在問題點。舉例來說,依據 developer_app 維度分組的 policy_error 指標,可能有助於您發現特定應用程式的 API 金鑰或 OAuth 權杖已過期;或者您可能會發現特定 API 代理伺服器會擲回大量 Spike Arrest 錯誤,進而發現代理伺服器的尖峰流量限制未考量到節慶流量增加。 只有在政策錯誤導致 API Proxy 失敗時,系統才會在 Analytics 中記錄這項錯誤。
舉例來說,如果政策的 「發生錯誤時的政策名稱 (ax_execution_fault_policy_name)」維度可依政策名稱分組政策錯誤,非常實用。 目標失敗 (例如 404 或 503) 不算政策失敗。這些都會計為 API Proxy 失敗 (is_error)。 API 語法: |
| Proxy 錯誤 | is_error | 總和 |
指定時間範圍內 API Proxy 失敗的總次數。如果政策失敗或發生執行階段錯誤 (例如目標服務傳回 404 或 503),就可能發生 Proxy 失敗。 Proxy (apiproxy) 維度有助於依 Proxy 將 API Proxy 失敗分組。 API 語法: |
| 要求處理延遲時間 | request_processing_latency | 平均值、最小值、最大值 |
Edge 處理傳入要求所需的時間 (平均、最短或最長),以毫秒為單位。時間從要求抵達 Edge 開始,到 Edge 將要求轉送至目標服務為止。 您可以運用不同維度,依 API Proxy、開發人員應用程式、區域等檢查要求處理延遲時間。 API 語法: |
| 要求大小 | request_size | 總和、平均值、最小值、最大值 |
Edge 收到的要求酬載大小 (以位元組為單位)。 API 語法: |
| 已執行回應快取 | ax_cache_executed | 總和 |
在指定時間範圍內,執行回應快取政策的總次數。 由於 Response Cache 政策會附加至 API Proxy 的兩個位置 (要求和回應各一次),因此通常會在 API 呼叫中執行兩次。快取「get」和快取「put」各算一次執行作業。 不過,如果政策中的 在 追蹤工具 中,您可以點選已執行的 API 呼叫中的「回應快取」圖示,並查看 API 語法: |
| 回應處理延遲時間 | response_processing_latency | 平均值、最小值、最大值 |
Edge 處理 API 回應所需的時間 (平均、最短或最長),以毫秒為單位。時間從 API Proxy 收到目標服務回應開始,到 Apigee 將回應轉送給原始呼叫端為止。 您可以使用不同維度,依 API Proxy、區域等檢查回應處理延遲時間。 API 語法: |
| 回應大小 | response_size | 總和、平均值、最小值、最大值 |
傳回用戶端的回應酬載大小 (以位元組為單位)。 API 語法: |
| 目標錯誤 | target_error | 總和 |
目標服務的 5xx 回應總數。這些是目標服務錯誤,並非由 Apigee 造成。 API 語法: |
| 目標回應時間 | target_response_time | 總和、平均值、最小值、最大值 |
目標伺服器回應呼叫所需的時間量 (總和、平均值、最小值或最大值),以毫秒為單位。這項指標可顯示目標伺服器的效能。時間從 Edge 將要求轉送至目標服務開始,到 Edge 收到回應為止。 請注意,如果 API 呼叫從快取傳回回應 (例如使用「回應快取」政策),呼叫就不會連線至目標服務,也不會記錄任何目標回應時間指標。 API 語法: |
| 總回覆時間 | total_response_time | 總和、平均值、最小值、最大值 |
從 Edge 接收用戶端要求到 Edge 將回應傳回給用戶端之間的時間量 (總和、平均值、最小值或最大值),以毫秒為單位。這段時間包括網路額外負荷 (例如負載平衡器和路由器執行作業所需的時間)、要求處理延遲時間、回應處理延遲時間,以及目標回應時間 (如果回應是從目標服務而非快取提供)。 您可以使用不同維度,依 API Proxy、開發人員應用程式、區域等檢查處理延遲。 API 語法: |
| 流量 | message_count | 總和 |
Edge 在指定時間範圍內處理的 API 呼叫總數。 使用維度,以對您最有意義的方式將流量計數分組。 API 語法: |
尺寸
維度可讓您查看有意義的指標群組。舉例來說,如果查看每個開發人員應用程式或 API Proxy 的總流量計數,就能獲得更實用的資訊。
Apigee 提供下列現成可用的維度。此外,您也可以建立自己的維度,詳情請參閱「使用自訂分析功能分析 API 訊息內容」。
| 自訂報表名稱 | 管理 API 中使用的名稱 | 說明 |
|---|---|---|
| Apigee 實體 | ||
| 存取權杖 | access_token | 應用程式使用者的 OAuth 存取權杖。 |
| API 產品 | api_product |
包含所呼叫 API Proxy 的 API 產品名稱。如要取得這個維度,進行呼叫的開發人員應用程式必須與一或多個包含 API Proxy 的 API 產品建立關聯,且呼叫的 Proxy 必須檢查 API 呼叫傳送的 API 金鑰或 OAuth 權杖。金鑰或權杖與 API 產品相關聯。詳情請參閱「首先:如何產生完整的數據分析資料」。 如未符合上述條件,系統會顯示「(not set)」值。另請參閱「 數據分析實體值『(not set)』代表什麼意義?」。 |
| 快取鍵 | ax_cache_key |
包含所存取 Response Cache 值的鍵。如要進一步瞭解如何建構回應快取的鍵,請參閱「回應快取政策」。 在追蹤工具中,選取從快取讀取或寫入快取的 Response Cache 政策時,您可以在 |
| 快取名稱 | ax_cache_name |
包含 Response Cache 政策所用鍵/值的快取名稱,並以 orgName__envName__ 為前置字元。舉例來說,如果機構是「foo」、環境是「test」,而快取名稱是「myCache」,則 ax_cache_name 為 foo__test__myCache。 在「追蹤工具」中,選取「回應快取」政策時,您可以在 |
| 快取來源 | ax_cache_source |
擷取回應快取的快取層級 (「L1」記憶體內或「L2」資料庫)。如果回應是從目標而非快取 (且回應快取已使用目標回應重新整理) 傳送,或要求中的快取鍵無效,這個維度也會顯示「CACHE_MISS」。快取金鑰大小上限為 2 KB。 在「追蹤工具」中,選取「回應快取」政策時,您可以在 如要進一步瞭解快取層級,請參閱「快取內部機制」。 |
| 用戶端 ID | client_id |
發出 API 呼叫的開發人員應用程式的用戶端金鑰 (API 金鑰),無論是做為 API 金鑰傳遞至要求,還是納入 OAuth 權杖。 如要取得這個維度,接收呼叫的 Proxy 必須設定為檢查有效的 API 金鑰或 OAuth 權杖。在 Edge 中註冊應用程式時,開發人員應用程式會取得 API 金鑰,可用於產生 OAuth 權杖。詳情請參閱「首先:如何產生完整的數據分析資料」。 如未符合上述條件,系統會顯示「(not set)」值。另請參閱「What does an analytics entity value "(not set)" mean?」。 |
| 開發人員應用程式 | developer_app |
發出 API 呼叫的 Edge 註冊開發人員應用程式。 如要取得這個維度,應用程式必須與一或多個 API 產品建立關聯,這些產品包含要呼叫的 API Proxy,且 Proxy 必須檢查 API 呼叫傳送的 API 金鑰或 OAuth 權杖。這個金鑰或權杖會識別開發人員應用程式。詳情請參閱「首要步驟:如何產生完整的數據分析資料」。 如未符合上述條件,系統會顯示「(not set)」值。另請參閱「What does an analytics entity value "(not set)" mean?」。 |
| 開發人員電子郵件地址 | developer_email |
應用程式發出 API 呼叫時,在 Edge 註冊的開發人員電子郵件地址。 如要取得這個維度,開發人員必須將應用程式與一或多個 API 產品建立關聯,這些產品包含要呼叫的 API Proxy,且 Proxy 必須檢查 API 呼叫傳送的 API 金鑰或 OAuth 權杖。這個金鑰或權杖會識別開發人員應用程式。詳情請參閱「第一步:如何產生完整的數據分析資料」。 如未符合上述條件,系統會顯示「(not set)」值。另請參閱「What does an analytics entity value "(not set)" mean?」。 |
| 開發人員 ID | 開發人員 |
Edge 產生的專屬開發人員 ID,格式為 org_name@@@unique_id。 如要取得這個維度,開發人員必須讓應用程式與一或多個 API 產品建立關聯,這些產品包含要呼叫的 API Proxy,且 Proxy 必須檢查 API 呼叫傳送的 API 金鑰或 OAuth 權杖。這個金鑰或權杖是用來識別開發人員。詳情請參閱「第一步:如何產生完整的數據分析資料」。 如未符合上述條件,系統會顯示「(not set)」值。另請參閱「What does an analytics entity value "(not set)" mean?」。 |
| 環境 | 環境 | 部署 API Proxy 的 Edge 環境。例如「test」或「prod」。 |
| 錯誤時的錯誤碼 | ax_edge_execution_fault_code |
錯誤的錯誤代碼。例如:
|
| 發生錯誤時的流程名稱 | ax_execution_fault _flow_name |
API Proxy 中引發錯誤的已命名流程。例如「PreFlow」、「PostFlow」或您建立的條件流程名稱。 請注意,管理 API 中使用的完整名稱為 ax_execution_fault_flow_name, 不含換行符。 如果沒有發生錯誤,您會看到「(not set)」值。 |
| 流程資源 | flow_resource | 僅限 Apigee 使用。如有興趣,請參閱這篇社群貼文。 |
| 發生錯誤時進入精神時光屋 | ax_execution_fault _flow_state |
引發錯誤的 API Proxy 流程名稱,例如「PROXY_REQ_FLOW」或「TARGET_RESP_FLOW」。 請注意,管理 API 中使用的完整名稱是 ax_execution_fault_flow_state,沒有換行符。 |
| 閘道流量 ID | gateway_flow_id | API 呼叫在 Edge 中移動時,每個呼叫都會取得專屬的閘道流程 ID。Example: rrt329ea-12575-114653952-1. 在 TPS 較高的情況下,如果其他維度 (例如機構、環境和時間戳記) 在不同呼叫之間相同,您可以使用閘道流程 ID 區分指標。 |
| 組織 | 組織 | 部署 API Proxy 的 Edge 機構。 |
| 發生錯誤時的政策名稱 | ax_execution_fault _policy_name |
導致 API 呼叫失敗並擲回錯誤的政策名稱。 請注意,管理 API 中使用的完整名稱為 ax_execution_fault_policy_name,沒有換行符。 如果政策擲回錯誤,但政策根屬性 |
| Proxy | apiproxy | API Proxy 的機器名稱 (不是顯示名稱)。 |
| Proxy 底層路徑 | proxy_basepath |
在 API Proxy ProxyEndpoint 上設定的 BasePath。基本路徑不包含 API 代理網址的網域和連接埠部分。舉例來說,如果 API Proxy 的基準網址是 https://apigeedocs-test.apigee.net/releasenotes/,則基準路徑為 /releasenotes。 這個值也會儲存在 |
| Proxy 路徑後置字串 | proxy_pathsuffix |
新增至 API Proxy 底層路徑的資源路徑。舉例來說,如果 API Proxy 的基準網址為 如果未使用任何路徑後置字串,這個值會是空白。 這個值也會儲存在 |
| Proxy 修訂版本 | apiproxy_revision | 處理 API 呼叫的 API Proxy 修訂版本號碼。這不一定代表 API Proxy 的最新修訂版本。如果 API Proxy 有 10 個修訂版本,目前部署的可能是第 8 個版本。此外,只要修訂版本有不同的基本路徑,API 就能部署多個修訂版本,詳情請參閱「在 UI 中部署 Proxy」。 |
| 已解析的用戶端 IP | ax_resolved_client_ip |
內含來源用戶端 IP 位址。 請注意,使用 Akamai 等路由產品擷取用戶端的真實 IP 位址時,用戶端 IP 會在 HTTP 標頭
|
| 回應狀態碼 | response_status_code | 從 Apigee 轉送至用戶端的 HTTP 回應狀態碼,例如 200、404、503 等。在 Edge 中,目標的回應狀態碼可透過「指派訊息」和「引發錯誤」等政策覆寫,因此這個維度可能與「目標回應代碼 (target_response_code)」不同。 |
| 虛擬主機 | virtual_host | API 呼叫的虛擬主機名稱。舉例來說,機構預設有兩個虛擬主機:default (http) 和 secure (https)。 |
| Inbound/Client | ||
| 用戶端 IP 位址 | client_ip | 連線至路由器的系統 IP 位址,例如原始用戶端 (proxy_client_ip) 或負載平衡器。如果 X-Forwarded-For 標頭中有多個 IP,這就是列出的最後一個 IP。 |
| 裝置類別 | ax_ua_device_category | 發出 API 呼叫的裝置類型,例如「平板電腦」或「智慧型手機」。 |
| 作業系統系列 | ax_ua_os_family | 發出呼叫的裝置所屬作業系統系列,例如「Android」或「iOS」。 |
| 作業系統版本 | ax_ua_os_version |
撥號裝置的作業系統版本。 建議您將這個維度與作業系統系列 (ax_ua_os_family) 搭配使用,做為第二個「向下鑽取」維度,查看作業系統版本。 |
| Proxy 用戶端 IP | proxy_client_ip |
呼叫端用戶端的 IP 位址,儲存在 |
| 參照用戶端 IP | ax_true_client_ip | 使用 Akamai 等路由產品擷取用戶端的真實 IP 位址時,用戶端 IP 會在 HTTP 標頭 如要判斷原始用戶端 IP 位址 (透過 |
| 要求路徑 | request_path |
目標服務的資源路徑 (不含網域),不包括查詢參數。 舉例來說,Apigee 範例目標 |
| 要求 URI | request_uri |
目標服務的資源路徑 (不含網域),包括查詢參數。 舉例來說,Apigee 範例目標 |
| 要求動詞 | request_verb | API 要求中的 HTTP 要求動詞,例如 GET、POST、PUT、DELETE。 |
| 使用者代理程式 | 使用者代理程式 |
用於發出 API 呼叫的使用者代理程式或軟體代理程式名稱。 範例:
|
| 使用者代理程式系列 | ax_ua_agent_family | 使用者代理程式系列,例如「Chrome Mobile」或「cURL」。 |
| 使用者代理程式類型 | ax_ua_agent_type | 使用者代理程式類型,例如「瀏覽器」、「行動瀏覽器」、「程式庫」等。 |
| 使用者代理程式版本 | ax_ua_agent_version |
使用者代理程式的版本。 建議您將這個維度與使用者代理程式系列 (ax_ua_agent_family) 搭配使用,做為第二個「向下鑽取」維度,取得代理程式系列的相關版本。 |
| Outbound/Target | ||
| 目標基礎路徑 | target_basepath |
目標服務的資源路徑 (不含網域),不包括查詢參數,也就是在 Proxy 的 舉例來說,假設 API Proxy 呼叫下列目標: <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 會是空值。 在「追蹤工具」中,當您選取流程圖結尾的 AX 圖示時, |
| 目標主機 | target_host | 目標服務的主機。舉例來說,如果 API Proxy 呼叫 http://mocktarget.apigee.net/help,則 target_host 為 mocktarget.apigee.net。 |
| 目標 IP 位址 | target_ip | 將回應傳回 API Proxy 的目標服務 IP 位址。 |
| 目標回應代碼 | target_response_code |
目標服務傳回給 API Proxy 的 HTTP 回應狀態碼,例如 200、404、503 等。 如果值為「null」,表示要求從未送達目標服務。如果回應是由「回應快取」政策提供,或要求處理失敗,就會發生這種情況。 這與回應狀態碼 (response_status_code) 維度不同。 |
| 目標網址 | target_url |
API Proxy TargetEndpoint 中定義的目標服務完整網址。 <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> 在本範例中,target_url 為 請注意,您也可以在 API Proxy 處理期間,使用 在Proxy 鏈結和使用指令碼目標 (Node.js) 時,呼叫 Proxy 中的 target_url 為空值。 |
| X-Forwarded-For | x_forwarded_for_ip |
如要判斷原始用戶端 IP 位址 (透過 |
| 時間 | ||
| 星期幾 | ax_day_of_week | API 呼叫發生當天的星期幾縮寫 (三個字母)。例如:週一、週二、週三。 |
| 月 | ax_month_of_year | API 呼叫發生的月份 (以數字表示)。例如「03」代表三月。 |
| 時段 | ax_hour_of_day |
以 24 小時制為準,API 呼叫發生的時間 (以 2 位數表示)。舉例來說,如果在晚上 10 點到 11 點之間發出 API 呼叫,ax_hour_of_day 會是 22。 時間值以世界標準時間為準。 |
| 時區 | ax_geo_timezone | 發出 API 呼叫的時區通用名稱,例如 America/New_York 和 Europe/Dublin。 |
| 月內的第幾週 | ax_week_of_month | 當月的週數 (以數字表示)。舉例來說,如果 API 呼叫是在某個月的第 3 週發出,ax_week_of_month 就是 3。 |
| 位置 | ||
| 城市 | ax_geo_city | 發出 API 呼叫的城市。 |
| 洲別 | ax_geo_continent | 發出 API 呼叫的洲別雙字母代碼。例如:北美洲為 NA。 |
| 國家/地區 | ax_geo_country | 發出 API 呼叫的國家/地區代碼 (由兩個字母組成)。例如「US」代表美國。 |
| 地理區域 | ax_geo_region | 地理區域的連字號代碼,例如 STATE-COUNTRY。例如,WA-US 代表美國華盛頓州。 |
| 區域 | ax_dn_region | 部署 API Proxy 的 Apigee 資料中心名稱,例如 us-east-1。 |
| 營利 | ||
| 忽略鑄造交易訊息 | x_apigee_mint_tx_ignoreMessage | 此標記可指定是否要忽略與營利相關的訊息。為所有營利機構設定 false。 |
| 鑄造交易狀態 | x_apigee_mint_tx_status | 營利要求的狀態,例如成功、失敗、無效或無。 |
篩選器
篩選器可將結果限制為具有特定特徵的指標。以下是一些篩選器範例。定義篩選器時,請使用指標和維度 API 樣式的名稱。
傳回名稱為 books 或 music 的 API Proxy 指標:
filter=(apiproxy in 'books','music')
傳回名稱開頭為「m」的 API Proxy 指標:
filter=(apiproxy like 'm%')
傳回名稱開頭不是「m」的 API Proxy 指標:
filter=(apiproxy not like 'm%')
傳回回應狀態碼介於 400 到 599 之間的 API 呼叫指標:
filter=(response_status_code ge 400 and response_status_code le 599)
傳回 API 呼叫的指標,這些呼叫的回應狀態碼為 200,目標回應代碼為 404:
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 |
可讓您使用「或」邏輯評估不同的可能篩選運算式。篩選條件會納入符合至少一項條件的資料。 |