Политика сбора статистики

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Что

Позволяет собирать статистику данных в сообщении, таких как идентификатор продукта, цена, действие REST, клиентский и целевой URL-адрес, а также длина сообщения. Данные могут поступать из переменных потока, предварительно определенных Apigee, или из пользовательских переменных, которые вы определяете.

Статистические данные передаются на аналитический сервер, который анализирует статистику и формирует отчеты. Вы можете просмотреть отчеты с помощью пользовательского интерфейса управления Edge или API Edge.

Образцы

Базовый пример

<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. Если переменная не определена и вы не указываете значение по умолчанию, данные не записываются. для переменной. Если вы указываете значение по умолчанию, то значение по умолчанию записывается, когда переменная не определена.

После сбора статистических данных вы можете использовать пользовательский интерфейс или API управления Edge для получения статистики. При получении статистики вы ссылаетесь на данные, собранные для этих переменных, как ProductID и Price соответственно.

Доступ к статистике

В этом примере вы используете API управления Edge для просмотра статистических данных для коллекции под названием productID . Этот запрос создает специальный отчет для идентификаторов продуктов на основе суммы количества сообщений, отправленных для каждого идентификатора продукта за каждый день. Замените название своей организации на переменную {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

В ответе поле имени содержит идентификатор продукта, а значение показывает количество запросов за каждый день:

{
  "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 Analytics.

Для доступа к статистическим данным, собранным политикой, вы используете Edge API или пользовательский интерфейс управления Edge. Например, вы можете использовать пользовательский интерфейс управления Edge для создания настраиваемого отчета, в котором отображаются собранные данные в различных форматах.

Полное руководство по использованию политики сборщика статистики см. в разделе Анализ содержимого сообщений API с помощью пользовательской аналитики .

Где разместить политику

Вы можете поместить политику сборщика статистики в поток запросов или ответов прокси-сервера API. Однако если вы поместите несколько политик сборщика статистики в прокси-сервер, то последняя из выполняемых политик будет определять данные, записываемые на сервер аналитики, и данные, записанные предыдущими политиками сборщика статистики, будут потеряны.

Один из сценариев, в котором у вас может быть несколько политик сборщика статистики в прокси-сервере API, — это когда одна из них находится в потоке запросов или ответов, а другая — в обработчике ошибок. Если в прокси-сервере API возникает ошибка, сборщик статистики в обработчике ошибок определяет собранные данные. Вы можете использовать этот сборщик статистики для записи информации об ошибке или любой другой информации, которую вы считаете необходимой. Сборщик статистики в обработчике ошибок определяет собранные данные независимо от того, выполнен ли сборщик статистики в запросе/ответе или нет.

Дополнительную информацию см. в разделе Обработка ошибок .

Ссылка на элемент

Ссылка на элемент описывает элементы и атрибуты политики сборщика статистики.

<?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

Внутреннее имя политики. Значение атрибута name может содержать буквы, цифры, пробелы, дефисы, подчеркивания и точки. Это значение не может превышать 255 символов.

При необходимости используйте элемент <DisplayName> , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.

Н/Д Необходимый
continueOnError

Установите значение false , чтобы возвращать ошибку в случае сбоя политики. Это ожидаемое поведение для большинства политик.

Установите значение true , чтобы выполнение потока продолжалось даже после сбоя политики.

ЛОЖЬ Необязательный
enabled

Установите значение true , чтобы обеспечить соблюдение политики.

Установите значение false , чтобы отключить политику. Политика не будет применена, даже если она останется привязанной к потоку.

истинный Необязательный
async

Этот атрибут устарел.

ЛОЖЬ Устарело

Элемент <DisplayName>

Используйте в дополнение к атрибуту name , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.

<DisplayName>Policy Display Name</DisplayName>
По умолчанию

Н/Д

Если вы опустите этот элемент, будет использовано значение атрибута name политики.

Присутствие Необязательный
Тип Нить

Элемент <Статистика>/<Статистика>

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
Атрибут Описание По умолчанию Присутствие
имя

Имя, используемое для ссылки на данные, собранные для указанной переменной. При просмотре аналитических данных используйте это имя для ссылки на данные, собранные о переменной, указанной атрибутом ref .

Если переменная, указанная в ref , не определена в запросе или ответе, то defaultStatValue указывает значение, собранное для этой переменной. Если вы опустите значение по умолчанию, данные для переменной не будут собираться, если переменная не определена.

Ограничения на именование

К пользовательским переменным аналитики применяются следующие ограничения на именование:

  • Имена могут включать следующие символы: az, 0–9, _ (подчеркивание).
  • Имена не могут содержать пробелы.
  • Имена не могут быть dsi , response_time , timekey или timestamp .
  • Случай игнорируется.
  • Вы не можете использовать имя какой-либо предопределенной метрики, параметра или фильтра аналитики, перечисленных в справочнике по метрикам, измерениям и фильтрам Analytics .
  • Помимо вышеперечисленного, ключевые слова, перечисленные на следующей странице, не допускаются:
    https://www.postgresql.org/docs/8.1/static/sql-keywords-appendix.html
Н/Д Необходимый
ссылка

Переменная потока, для которой вы собираете статистику. Эта переменная может быть переменной потока, предопределенной Apigee, или пользовательской переменной, которую вы определяете в своем прокси API.

Атрибут ref часто ссылается на пользовательскую переменную, определенную политикой извлечения переменных. Дополнительную информацию см. в разделе Политика извлечения переменных .

Н/Д Необходимый
тип

Указывает тип данных переменной, указанной атрибутом ref . Допустимые значения: string/integer/float/long/double/boolean.

Для данных строкового типа ссылайтесь на статистические данные как на измерение в пользовательском отчете. Для числовых типов данных (целое/с плавающей запятой/длинное/двойное число) ссылайтесь на статистические данные в пользовательском отчете как параметр или показатель . Дополнительные сведения см. в разделе «Управление пользовательскими отчетами» .

Значение type можно опустить, только если ref ссылается на предопределенную переменную потока Apigee или тип объявлен в полезных данных XML политики извлечения переменных.

нить Необязательный

Ссылка на ошибку

This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

None.

Deployment errors

Error name Cause Fix
UnsupportedDatatype If the type of the variable specified by the ref attribute in the <Statistic> element of the Statistics Collector policy is unsupported, then the deployment of the API proxy fails. The supported data types are string, integer, float, long, double, and boolean.
InvalidName If the name used to reference the data collected for the specified variable defined within the <Statistic> element of the Statistics Collector policy conflicts with a system-defined variable, then the deployment of the API proxy fails. Some of the known system-defined variables are organization and environment.
DatatypeMissing If the type of the variable specified by the ref attribute in the <Statistic> element of the Statistics Collector policy is missing, then the deployment of the API proxy fails.

Fault variables

None.

Схема

Каждый тип политики определяется схемой XML ( .xsd ). Для справки: схемы политик доступны на GitHub.

Связанные темы

Для получения дополнительной информации см.: