Política do StatisticsCollector

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

O que

Permite coletar estatísticas de dados em uma mensagem, como ID do produto, preço, ação REST, URL de destino e cliente e tamanho da mensagem. Os dados podem vir de variáveis de fluxo predefinidas pela Apigee ou variáveis personalizadas definidas por você.

Os dados estatísticos são transmitidos para o servidor de análise, que analisa as estatísticas e gera relatórios. Para conferir os relatórios, use a IU de gerenciamento do Edge ou a API Edge.

Exemplos

Exemplo básico

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

Neste exemplo, você coleta informações estatísticas sobre duas variáveis personalizadas: product.id e product.price. Em cada solicitação, a política do coletor de estatísticas grava o valor dessas duas variáveis no servidor de análise.

Este exemplo também define um valor padrão opcional para cada variável, em que o valor padrão de product.id é 999999 e o product.price padrão é 0. Se uma variável não for definida e você não especificar um valor padrão, nenhum dado será registrado para ela. Se você especificar um valor padrão, ele será registrado quando a variável for indefinida.

Depois de coletar dados estatísticos, use a API ou a IU de gerenciamento do Edge para recuperar as estatísticas. Ao recuperar estatísticas, faça referência aos dados coletados para essas variáveis como productID e price, respectivamente.

Como acessar estatísticas

Neste exemplo, você usa a API Edge Management para visualizar os dados estatísticos da coleção chamada productID. Essa solicitação cria um relatório personalizado para IDs de produto com base na soma das contagens de mensagens enviadas para cada ID de produto em cada dia. Substitua o nome da sua organização pela variável {org_name} e o e-mail e a senha da sua conta no Apigee Edge por email:password.

Defina o parâmetro timeRange para incluir o intervalo de tempo em que os dados foram coletados. Dados anteriores a seis meses antes da data atual não podem ser acessados por padrão. Se você quiser acessar dados com mais de seis meses, entre em contato com o suporte do 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

Na resposta, o campo name contém o ID do produto e o valor mostra o número de solicitações de cada dia:

{
  "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"
  }
}

Extraindo dados para coleta

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

A política do Coletor de estatísticas exige que os dados coletados sejam armazenados em variáveis. Essas variáveis podem ser predefinidas pela Apigee ou por variáveis personalizadas definidas por você.

Neste exemplo, você usa a política "Extract Variables" para extrair dados de um payload XML que contém informações meteorológicas. Ela serve para:

  • Extrai o nome da cidade e o grava em uma variável chamada weather.location
  • Extrai as condições atuais e as grava em uma variável chamada weather.condition

Em seguida, use a política do coletor de estatísticas para coletar informações sobre as variáveis, conforme mostrado abaixo:

<StatisticsCollector name="publishPurchaseDetails">
  <Statistics>
    <Statistic name="weatherLocation" ref="weather.location" type="string"></Statistic>
    <Statistic name="weatherCondition" ref="weather.condition" type="string"></Statistic>
  </Statistics>
</StatisticsCollector>

Para ver um tutorial completo que mostra como extrair dados de um payload XML para a política do Coletor de estatísticas, consulte Analisar o conteúdo da mensagem da API usando análises personalizadas.


Sobre a política do Coletor de estatísticas

Quando executada, a política do coletor de estatísticas registra o valor atual de uma ou mais variáveis. Elas podem ser variáveis de fluxo predefinidas pela Apigee ou variáveis personalizadas que você define. Esses dados são gravados no servidor de análise de borda.

Para acessar os dados estatísticos coletados pela política, use a API Edge ou a interface de gerenciamento do Edge. Por exemplo, é possível usar a IU de gerenciamento do Edge para criar um relatório personalizado que mostre os dados coletados em vários formatos.

Para ver um tutorial completo usando a política do coletor de estatísticas, consulte Analisar o conteúdo da mensagem da API usando análises personalizadas.

Onde colocar a política

É possível colocar uma política do coletor de estatísticas no fluxo de solicitação ou resposta de um proxy de API. No entanto, se você colocar várias políticas do Coletor de estatísticas em um proxy, a última a ser executada determinará que os dados gravados no servidor de análise e os dados gravados por qualquer política anterior do Coletor de estatísticas serão perdidos.

Um cenário em que você pode ter várias políticas do coletor de estatísticas em um proxy de API é quando há uma no fluxo de solicitação ou resposta e outra em um gerenciador de falhas. Se ocorrer uma falha no proxy de API, o coletor de estatísticas no gerenciador de falhas determinará os dados coletados. É possível usar esse coletor de estatísticas para registrar informações sobre a falha ou registrar qualquer outra informação que você considere necessária. O Coletor de estatísticas no gerenciador de falhas determina os dados coletados, independentemente de já ter sido executado ou não o Coletor de estatísticas na solicitação/resposta.

Para mais informações, consulte Como lidar com falhas.

Referência de elemento

A referência do elemento descreve os elementos e atributos da política do Coletor de estatísticas.

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

Atributos <Statisticscollector>

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

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

Elemento <Statistics>/<Statistic>

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
Atributo Descrição Padrão Presença
name

O nome usado para fazer referência aos dados coletados para a variável especificada. Ao visualizar dados de análise, use esse nome para fazer referência aos dados coletados sobre a variável especificada pelo atributo ref.

Se a variável especificada por ref estiver indefinida em uma solicitação ou resposta, defaultStatValue especificará o valor coletado para a variável. Se você omitir o valor padrão, nenhum dado será coletado para a variável quando ela estiver indefinida.

Restrições de nomenclatura

As seguintes restrições de nomenclatura se aplicam a variáveis de análise personalizadas:

N/A Obrigatório
ref

A variável de fluxo para a qual você está coletando estatísticas. Essa variável pode ser uma variável de fluxo predefinida pela Apigee ou uma variável personalizada que você define no proxy de API.

O atributo "ref" geralmente faz referência a uma variável personalizada definida pela política "Extract Variables". Consulte a política de extração de variáveis para saber mais.

N/A Obrigatório
digitar

Define o tipo de dados da variável especificada pelo atributo ref. Os valores válidos são: string/integer/float/long/double/boolean.

Para dados do tipo string, faça referência aos dados estatísticos como uma Dimensão em um relatório personalizado. Para tipos de dados numéricos (número inteiro/flutuante/longo/duplo), faça referência aos dados estatísticos em um relatório personalizado como uma Dimensão ou uma Métrica. Consulte Gerenciar relatórios personalizados para saber mais.

O valor de type só pode ser omitido se ref se referir a uma variável de fluxo predefinida da Apigee ou se o tipo for declarado no payload XML da política "Extract Variables".

string Opcional

Referência de erros

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.

Esquema

Cada tipo de política é definido por um esquema XML (.xsd). Para referência, os esquemas de política estão disponíveis no GitHub.

Temas relacionados

Veja mais informações nos links abaixo: