查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
![](https://docs.apigee.com/static/api-platform/images/icon_policy_statistics-collector.jpg?authuser=1&hl=zh-tw)
結果
可讓您收集訊息中的資料統計資料,例如產品 ID、價格、REST 動作、用戶端和目標網址,以及訊息長度。資料可能來自流程變數 或由 Apigee 或您定義的自訂變數定義
系統會將統計資料傳送到 Analytics 伺服器 產生報表。您可以使用 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。在每個要求中, 統計資料收集器政策會將這兩個變數的值寫入 Analytics 伺服器
本例也會為每個變數設定選用的預設值,其中預設的 product.id 的值為 999999 和預設的 product.price 0。如果變數未定義,且未指定預設值,就不會有資料 變數的個別記錄如果您指定預設值,則預設值為 就會記錄下來。
收集統計資料後,您可以使用 Edge 管理 UI 或 API 擷取統計資料。擷取統計資料時,您會參照 將這些變數當做 productID 和 price。
存取統計資料
在本範例中,您會使用 Edge Management API 查看
名為「productID
」的集合。這項請求會為
依據各個產品 ID 提交的訊息總數總和
當天。請將 {org_name}
變數換成您的機構名稱,並且
將您在 Apigee Edge 上的帳戶密碼替換成
email:password
。
設定 timeRange
參數,以便納入您資料之前的時間間隔
收集。系統預設無法存取當日算起 6 個月前的資料。如果
如要存取超過六個月的資料,請與 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 的變數
然後您可以使用 Stats Collector 政策來收集 變數,如下所示:
<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 預先定義的流程變數,也可以是 每個 Pod 都有專屬的 IP 位址這項資料會寫入 Edge Analytics 伺服器。
如要存取政策收集的統計資料,請使用 Edge API 或 Edge API 管理 UI舉例來說,您可以使用 Edge 管理 UI 建立自訂報表, 會以多種格式顯示收集到的資料
如需使用統計資料收集器政策的完整教學課程,請參閱分析 API 自訂數據分析訊息內容
政策擺放位置
您可以在 API 的要求或回應流程中加入 Stats Collector 政策 Proxy 上。然而,如果您在 Proxy 中放入多個 Stats Collector 政策,則 的執行指令會決定寫入分析伺服器的資料 與原先的 Stats Collector 政策有關。
如果一個 API Proxy 內有多個 Stats Collector 政策,其中一個情境就是 在要求或回應流程中有一個容器,而另一個故障處理常式時。如果發生問題 發生在 API Proxy 中,錯誤處理常式中的 Stats Collector 就會決定資料 收集。您可以使用 Stats Collector 記錄故障相關資訊,或 記錄您認為必要的任何其他資訊錯誤中的 Statistics Collector 處理常式會判斷所收集的資料,不論是否由 Stats Collector 一視同仁 通訊端。
詳情請參閱處理 錯誤
元素參照
元素參照會說明統計資料收集器的元素和屬性 政策。
<?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>
<StatisticsCollector>屬性
<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>
預設 |
不適用 如果省略這個元素,政策的 |
---|---|
存在必要性 | 選用 |
類型 | 字串 |
<Statistics>/<Statistic>元素
<Statistics> <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic> </Statistics>
屬性 | 說明 | 預設 | 存在必要性 |
---|---|---|---|
名稱 |
指定變數收集資料時所用的名稱。查看期間
Analytics 資料,使用這個名稱參照所收集的變數相關資料
由 如果要求中 命名限制 以下命名限制適用於自訂分析變數:
|
不適用 | 必填 |
參考資料 |
您用來收集統計資料的流程變數。這個變數可以是資料流 或您在 API Proxy 中定義的自訂變數。 參照屬性通常會參照「擷取變數」定義的自訂變數 政策。請參閱擷取變數 政策。 |
不適用 | 必填 |
類型 |
指定 ref 屬性指定的變數資料類型。有效的值包括: string/integer/float/long/double/boolean. 如果是類型字串的資料,請在 自訂報表如果是數值資料類型 (整數/浮點/長/雙精度浮點值),請參照 自訂報表中的統計資料,選項為維度或指標。詳情請參閱管理自訂報表。 type 值 只有在 ref 參照預先定義值時,才能省略。 Apigee 流程變數或類型是在擷取變數的 XML 酬載中宣告 政策。 |
字串 | 選用 |
錯誤參考資料
本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。如果您正在開發 Proxy 的錯誤規則,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。
執行階段錯誤
無。
部署錯誤
錯誤名稱 | 原因 | 修正 |
---|---|---|
UnsupportedDatatype |
如果統計資料收集器政策的 <Statistic> 元素中的 ref 屬性指定變數類型,則 API Proxy 部署作業會失敗。支援的資料類型為 string 、integer 、float 、long 、double 和 boolean 。 |
build |
InvalidName |
如果名稱用於參照在統計資料收集器政策 <Statistic> 元素中定義的指定變數收集的資料,則與系統定義的變數發生衝突,API Proxy 部署作業就會失敗。部分已知的系統定義的變數為 organization 和 environment 。 |
build |
DatatypeMissing |
如果缺少統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型,則 API Proxy 部署作業會失敗。 |
build |
錯誤變數
無。
結構定義
每種政策類型都是由 XML 架構 (.xsd
) 定義。供參考政策結構定義
GitHub 提供許多資源。
相關主題
如需詳細資訊,請參閱: