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

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

Что

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

Статистические данные передаются на аналитический сервер, который анализирует статистику и генерирует отчеты. Вы можете просмотреть отчеты, используя пользовательский интерфейс управления 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.id и product.price . При каждом запросе политика сбора статистики записывает значения этих двух переменных на аналитический сервер.

В этом примере также задается необязательное значение по умолчанию для каждой переменной, где значение по умолчанию для product.id равно 999999, а для product.price — 0. Если переменная не определена и вы не указываете значение по умолчанию, данные для этой переменной не записываются. Если вы указываете значение по умолчанию, то значение по умолчанию записывается, когда переменная не определена.

После сбора статистических данных вы можете использовать пользовательский интерфейс управления Edge или API для получения статистики. При получении статистики вы ссылаетесь на данные, собранные для этих переменных, как 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.

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

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

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