StatsCollector 政策

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

内容

使您能够收集消息中数据的统计信息,例如产品 ID、价格、REST 操作、客户端和目标网址以及消息长度。数据可以来自流变量 或您定义的自定义变量的值

统计信息数据传递到分析服务器,由分析服务器对统计信息进行 生成报告。您可以使用 Edge 管理界面或 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。针对每个请求, 统计信息收集器政策会将这两个变量的值写入分析中 服务器。

本示例还为每个变量设置了可选的默认值,即默认值 product.id 的值是 999999 以及默认的 product.price 为 0。如果某个变量未定义,且您未指定默认值,则系统不会定义任何数据 所记录的值如果您指定默认值,则默认值为 在变量未定义时记录。

收集统计数据后,您可以使用 Edge 管理界面或 API 检索统计信息。检索统计信息时,您可以引用为 作为 productIDprice

访问统计信息

在此示例中,您将使用 Edge Management API 查看 名为 productID 的集合。此请求为 根据为每个商品 ID 提交的消息总数计算而来的商品 ID 。将变量 {org_name} 替换为您的组织名称,然后 请将您在 Apigee Edge 上的电子邮件地址和密码替换为 Apigee Edge 的电子邮件地址和密码 email:password

设置 timeRange 参数,以包含相应数据的时间间隔 。默认情况下,您无法访问自当前日期起 6 个月以前的数据。如果 如果您想访问保留时长超过 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 的变量

然后,您可以使用统计信息收集器政策收集 变量,如下所示:

<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 管理界面例如,您可以使用 Edge 管理界面创建一个自定义报告, 以各种格式显示收集的数据

如需查看使用统计信息收集器政策的完整教程,请参阅分析 API 对消息内容进行自定义

政策的放置位置

您可以在 API 的请求或响应流中加入统计信息收集器政策 代理。不过,如果您在一个代理中放置了多个 Statistics Collector 政策,则最后一个 可以确定写入分析服务器的数据,以及由任何 先前的 Statistics Collector 政策丢失。

一种 API 代理中可能有多个统计信息收集器政策的情况是 。如果发生故障, 事件,则故障处理程序中的统计信息收集器会确定 。您可以使用该 Statistics Collector 来记录有关故障的信息,或者 记录您认为必要的任何其他信息。故障中的统计信息收集器 处理程序将决定收集的数据,而不管 Statistics Collector 是否 。

如需了解详情,请参阅处理故障

元素参考

元素参考介绍了 Statistics 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> 元素在管理界面代理编辑器中给政策添加不同的自然语言名称标签。

不适用 必填
continueOnError

设置为 false 可在政策失败时返回错误。这是大多数政策的预期行为。

设置为 true,即使在政策失败后,仍可以继续执行流。

false 可选
enabled

设置为 true 可强制执行政策。

设为 false关闭政策。即使政策仍附加到某个流,也不会强制执行该政策。

可选
async

此特性已弃用。

false 已弃用

<DisplayName> 元素

除了用于 name 属性之外,还可以用于在管理界面代理编辑器中给政策添加不同的自然语言名称标签。

<DisplayName>Policy Display Name</DisplayName>
默认

不适用

如果省略此元素,则会使用政策的 name 属性的值。

状态 可选
类型 字符串

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

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
属性 说明 默认 状态
name

用于引用为指定变量收集的数据的名称。查看 Google Analytics 数据,请使用此名称引用收集的变量相关数据 由 ref 指定 属性。

如果 ref 指定的变量在请求中未定义,或者 则 defaultStatValue 会指定 所收集的值如果您省略默认值,则系统不会为 。

命名限制

以下命名限制适用于自定义分析变量:

不适用 必填
ref

您要收集其统计信息的 flow 变量。此变量可以是 变量或您在 API 代理中定义的自定义变量。

ref 属性通常引用“提取变量”定义的自定义变量 政策。请参阅提取变量 政策

不适用 必填
类型

指定 ref 属性指定的变量的数据类型。有效值包括: string/integer/float/long/double/boolean.

对于字符串类型的数据,请以维度 来生成自定义报表对于数值数据类型(整数/浮点数/长/双精度),请参考 作为维度指标在自定义报告中的统计数据。如需了解详情,请参阅管理自定义报告

type 的值 只有在 ref 引用预定义的 Apigee 流变量或类型在“Extract Variables”的 XML 载荷中声明 政策。

字符串 可选

错误参考信息

本部分介绍当此政策触发错误时所设置的错误消息和流变量。在为代理开发故障规则时,请务必了解此信息。如需了解详情,请参阅您需要了解的有关政策错误的信息处理故障

运行时错误

无。

部署错误

错误名称 原因 修复
UnsupportedDatatype 如果统计信息收集器政策的 <Statistic> 元素中的 ref 属性指定的变量类型不受支持,则 API 代理的部署会失败。支持的数据类型包括 stringintegerfloatlongdoubleboolean
InvalidName 如果用于引用为统计信息收集器政策的 <Statistic> 元素中定义的指定变量收集的数据的名称与系统定义的变量冲突,则 API 代理的部署将失败。一些已知的系统定义变量包括 organizationenvironment
DatatypeMissing 如果缺少统计信息收集器政策的 <Statistic> 元素中的 ref 属性指定的变量类型,则表示 API 代理的部署会失败。

故障变量

无。

架构

每种政策类型均由 XML 架构 (.xsd) 定义。GitHub 提供了政策架构作为参考。

相关主题

如需了解详情,请参阅: