您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。

優勢
可讓您收集訊息資料,例如產品 ID、價格、REST 動作、用戶端和目標網址,以及訊息長度。資料可能來自您定義的 Apigee 預先定義變數或您定義的自訂變數。
統計資料會傳送至分析伺服器,該伺服器會分析統計資料並產生報表。您可使用 Edge Management UI 或 Edge API 查看報告。
範例
基本範例
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product.id" type="string">999999</Statistic> <Statistic name="price" ref="product.price" type="string">0</Statistic> </Statistics> </StatisticsCollector>
在本範例中,您將收集兩個自訂變數的統計資訊:product.id 和 product.price。對於每個要求,統計資料收集器政策會將這兩個變數的值寫入分析伺服器。
此外,這個範例也為每個變數設定選用的預設值,其中 product.id 的預設值是 999999,而預設的 product.price 為 0。如果變數未定義,而且您未指定預設值,系統就不會針對該變數記錄任何資料。如果指定預設值,系統就會在未定義變數時記錄預設值。
收集統計資料後,您可以使用邊緣管理 UI 或 API 擷取統計資料。擷取統計資料時,請將這些變數收集的資料分別視為 productID 和 price。
存取統計資料
在此範例中,您會使用 Edge Management API 查看名為 productID
的集合統計資料。這項要求會根據每天針對每個產品 ID 提交的訊息數量總和,為產品 ID 建立自訂報表。將變數名稱換成 {org_name}
變數,並在 Apigee Edge 中用 email:password
取代您的帳戶電子郵件地址和密碼。
設定 timeRange
參數,加入系統收集資料的時間間隔。根據預設,系統無法提供目前日期之前六個月內的資料。如要在六個月內存取資料,請與 Apigee Edge 支援團隊聯絡。
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/stats/productID?"select=sum(message_count)&timeRange=1/19/2015%2000:00~6/21/2015%2000:00&timeUnit=day" -u email:password
在回應中,name 欄位包含產品 ID,而值則會顯示每天的要求數:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1353369600000, "value" : "4.0" } ] } ], "name" : "52" }, { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1353369600000, "value" : "19.0" } ] } ], "name" : "14" }, ... } ], "metaData" : { "samplingRate" : "100" } }
正在擷取要收集的資料
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="GetWeatherData"> <VariablePrefix>weather</VariablePrefix> <XMLPayload> <Namespaces> <Namespace prefix="yweather">http://xml.weather.yahoo.com/ns/rss/1.0</Namespace> </Namespaces> <Variable name="location" type="string"> <XPath>/rss/channel/yweather:location/@city</XPath> </Variable> <Variable name="condition" type="string"> <XPath>/rss/channel/item/yweather:condition/@text</XPath> </Variable> </XMLPayload> </ExtractVariables>
統計資料收集器要求收集的資料儲存在變數中。這類變數可由 Apigee 或您定義的自訂變數定義。
在這個範例中,您可以使用「擷取變數」政策,從包含天氣資訊的 XML 酬載擷取資料。本政策可以:
- 擷取城市名稱,並寫入名為 weather.location 的變數
- 擷取目前條件,並寫入名為 weather.condition 的變數
接著,您可以使用「統計資料收集」政策收集關於變數的資訊,如下所示:
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="weatherLocation" ref="weather.location" type="string"></Statistic> <Statistic name="weatherCondition" ref="weather.condition" type="string"></Statistic> </Statistics> </StatisticsCollector>
如需教學課程,瞭解如何從「統計資料收集器」的 XML 酬載擷取資料,請參閱使用自訂分析來分析 API 訊息內容。
關於統計資料收集政策
執行時,統計資料收集器政策會記錄一或多個變數的目前值。這些變數可以是 Apigee 或您定義的自訂變數定義的預先定義變數。這項資料會寫入邊緣分析伺服器。
如要存取政策收集的統計資料,請使用 Edge API 或 Edge 管理 UI。舉例來說,您可以使用邊緣管理 UI 建立自訂報表,以各種格式顯示收集到的資料。
如需使用統計資料收集政策的完整教學課程,請參閱使用自訂分析分析 API 訊息內容。
政策的適用範圍
您可以將 API 收集器政策放在 API Proxy 的要求或回應流程中。不過,如果您在 Proxy 中放置多個統計資料收集器政策,則最後一個執行的資料會決定寫入 Analytics (分析) 伺服器的資料,以及先前的任何 Stats Collector 政策寫入的資料。
如果有一個 API 中的多個 Stats Collector 政策在要求或回應流程中各有一個,如果 API Proxy 發生錯誤,則錯誤處理常式中的「統計資料收集器」會判斷收集的資料。您可以使用「統計資料收集器」記錄錯誤資訊,或記錄您認為任何其他資訊。錯誤處理常式中的「統計資料收集器」會判斷所蒐集的資料,無論要求/要求是否已在要求/回應中執行。
詳情請參閱處理錯誤。
元素參照
元素參考資料會說明統計資料收集器政策的元素和屬性。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1"> <DisplayName>Statistics Collector 1</DisplayName> <Statistics> <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic> </Statistics> </StatisticsCollector>
<StatsCollector> 屬性
<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Stats-1">
下表說明所有政策父項元素通用的屬性:
屬性 | 說明 | 預設 | 存在必要性 |
---|---|---|---|
name |
政策的內部名稱。 或者,您也可以使用 |
無 | 必要 |
continueOnError |
如果設為 即使設為 |
false | 選填 |
enabled |
強制執行 設定 |
true | 選填 |
async |
這項屬性已淘汰。 |
false | 已淘汰 |
<DisplayName> 元素
除了 name
屬性之外,您也可以在管理 UI Proxy 編輯器中,以不同的自然語言名稱將政策加上標籤。
<DisplayName>Policy Display Name</DisplayName>
預設 |
無 如果省略這項元素,系統會使用政策的 |
---|---|
存在必要性 | 選填 |
類型 | 字串 |
<Stats>/<Statistic> 元素
<Statistics> <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic> </Statistics>
屬性 | 說明 | 預設 | 存在必要性 |
---|---|---|---|
名稱 |
用於參照指定變數所收集的資料名稱。查看分析資料時,您可以使用這個名稱參照在 如果在要求或回應中未定義 命名限制 下列命名限制適用於自訂數據分析變數:
|
無 | 必要 |
ref |
要收集統計資料的流程變數。這個變數可以是 Apigee 預先定義的流程變數,或是您在 API Proxy 中定義的自訂變數。 ref 屬性通常會參照「擷取變數」政策定義的自訂變數。詳情請參閱「擷取變數政策」。 |
無 | 必要 |
類型 |
指定 ref 屬性指定的變數資料類型。有效值為:string/integer/float/long/double/boolean。 以資料類型字串來說,請以自訂報表的形式將統計資料參照為維度。若為數值資料類型 (integer/float/long/double),請以自訂報表中的統計資料做為維度或指標。詳情請參閱「管理自訂報表」一文。 只有在 ref 參照預先定義的 Apigee 流程變數,或該類型是「擷取變數」政策的 XML 酬載中宣告時,才能省略 type 的值。 |
字串 | 選填 |
錯誤參考資料
本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。這項資訊有助瞭解您是否需要為 Proxy 建立錯誤規則。詳情請參閱「政策錯誤相關須知」和「處理錯誤」這兩篇文章。
執行階段錯誤
無。
部署錯誤
錯誤名稱 | 原因 | 修正 |
---|---|---|
UnsupportedDatatype |
如果「統計資料收集器」政策的 <Statistic> 元素中,修正屬性指定的變數類型不受支援,API Proxy 部署作業就會失敗。支援的資料類型為 string 、integer 、float 、long 、double 和 boolean 。 |
build |
InvalidName |
如果為參照統計資料收集政策 <Statistic> 元素中定義的指定變數與系統定義的變數發生衝突,則會導致 API Proxy 部署失敗。一些已知的系統定義變數為 organization 和 environment 。 |
build |
DatatypeMissing |
如果統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型遺失,API API 部署作業就會失敗。 |
build |
錯誤變數
無。
結構定義
每項政策類型是由 XML 結構定義 (.xsd
) 定義。如需相關參考資料,請參閱 GitHub 上的政策結構定義。
相關主題
詳情請參閱: