StatsCollector 政策

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

結果

可讓您收集訊息中的資料統計資料,例如產品 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.idproduct.price。在每個要求中, 統計資料收集器政策會將這兩個變數的值寫入 Analytics 伺服器

本例也會為每個變數設定選用的預設值,其中預設的 product.id 的值為 999999 和預設的 product.price 0。如果變數未定義,且未指定預設值,就不會有資料 變數的個別記錄如果您指定預設值,則預設值為 就會記錄下來。

收集統計資料後,您可以使用 Edge 管理 UI 或 API 擷取統計資料。擷取統計資料時,您會參照 將這些變數當做 productIDprice

存取統計資料

在本範例中,您會使用 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>

&lt;StatisticsCollector&gt;屬性

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Stats-1">

下表說明所有政策父項元素的共同屬性:

屬性 說明 預設 存在必要性
name

政策的內部名稱。name 屬性的值可以 包含英文字母、數字、空格、連字號、底線和半形句號。此值不能 超過 255 個半形字元

視需要使用 <DisplayName> 元素,為政策加上標籤: 管理使用者介面 Proxy 編輯器,使用不同的自然語言名稱。

不適用 必填
continueOnError

如果設為「false」,系統會在政策失敗時傳回錯誤。這是可預期的情況 大多數政策的行為

如果設為 true,即使政策已發生,流程執行作業仍會繼續執行 失敗。

false 選用
enabled

如要強制執行政策,請設為 true

設為 false 即可停用政策。這項政策不會 仍會強制執行 政策。

true 選用
async

此屬性已淘汰。

false 已淘汰

&lt;DisplayName&gt;元素

name 屬性外,一併使用 管理 UI Proxy 編輯器,使用不同的自然語言名稱。

<DisplayName>Policy Display Name</DisplayName>
預設

不適用

如果省略這個元素,政策的 name 屬性值會是

存在必要性 選用
類型 字串

&lt;Statistics&gt;/&lt;Statistic&gt;元素

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
屬性 說明 預設 存在必要性
名稱

指定變數收集資料時所用的名稱。查看期間 Analytics 資料,使用這個名稱參照所收集的變數相關資料 由 ref 指定 屬性。

如果要求中 ref 指定的變數未定義,或者 則回應,defaultStatValue 則指定值 變數的資料如果您省略預設值,則系統不會針對 變數。

命名限制

以下命名限制適用於自訂分析變數:

不適用 必填
參考資料

您用來收集統計資料的流程變數。這個變數可以是資料流 或您在 API Proxy 中定義的自訂變數。

參照屬性通常會參照「擷取變數」定義的自訂變數 政策。請參閱擷取變數 政策

不適用 必填
類型

指定 ref 屬性指定的變數資料類型。有效的值包括: string/integer/float/long/double/boolean.

如果是類型字串的資料,請在 自訂報表如果是數值資料類型 (整數/浮點/長/雙精度浮點值),請參照 自訂報表中的統計資料,選項為維度指標。詳情請參閱管理自訂報表

type 值 只有在 ref 參照預先定義值時,才能省略。 Apigee 流程變數或類型是在擷取變數的 XML 酬載中宣告 政策。

字串 選用

錯誤參考資料

本節說明這項政策觸發錯誤時設定的錯誤訊息和流程變數。如果您正在開發 Proxy 的錯誤規則,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。

執行階段錯誤

無。

部署錯誤

錯誤名稱 原因 修正
UnsupportedDatatype 如果統計資料收集器政策的 <Statistic> 元素中的 ref 屬性指定變數類型,則 API Proxy 部署作業會失敗。支援的資料類型為 stringintegerfloatlongdoubleboolean
InvalidName 如果名稱用於參照在統計資料收集器政策 <Statistic> 元素中定義的指定變數收集的資料,則與系統定義的變數發生衝突,API Proxy 部署作業就會失敗。部分已知的系統定義的變數為 organizationenvironment
DatatypeMissing 如果缺少統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型,則 API Proxy 部署作業會失敗。

錯誤變數

無。

結構定義

每種政策類型都是由 XML 架構 (.xsd) 定義。供參考政策結構定義 GitHub 提供許多資源。

相關主題

如需詳細資訊,請參閱: