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

A tabela a seguir descreve atributos comuns a todos os elementos pai de políticas:

Atributo Descrição Padrão Presença
name

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hifens, sublinhados e pontos. Esse valor não pode exceder 255 caracteres.

Opcionalmente, use o elemento <DisplayName> para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

N/A Obrigatório
continueOnError

Defina como false para retornar um erro quando uma política falhar. Esse é o comportamento esperado na maioria das políticas.

Defina como true para que a execução do fluxo continue, mesmo depois que uma política falhar.

false Opcional
enabled

Defina como true para aplicar a política.

Defina como false para desativar a política. A política não será aplicada mesmo se ela permanecer anexada a um fluxo.

verdadeiro Opcional
async

Esse atributo está obsoleto.

false Descontinuado

Elemento <DisplayName>

Use em conjunto com o atributo name para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

<DisplayName>Policy Display Name</DisplayName>
Padrão

N/A

Se você omitir esse elemento, será usado o valor do atributo name da política.

Presença Opcional
Tipo 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

Nesta seção, descrevemos as mensagens de erro e as variáveis de fluxo que são definidas quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para um proxy. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.

Erros de execução

Nenhum.

Erros de implantação

Nome do erro Causa Corrigir
UnsupportedDatatype Se o tipo da variável especificado pelo atributo de referência no elemento <Statistic> da política do Coletor de estatísticas não for compatível, a implantação do proxy de API falhará. Os tipos de dados compatíveis são string, integer, float, long, double e boolean.
InvalidName Se o nome usado para fazer referência aos dados coletados para a variável especificada definida no elemento <Statistic> da política do Coletor de estatísticas entrar em conflito com uma variável definida pelo sistema, a implantação do proxy de API falhará. Algumas das variáveis definidas pelo sistema conhecidas são organization e environment.
DatatypeMissing Se o tipo da variável especificado pelo atributo ref no elemento <Statistic> da política do Coletor de estatísticas estiver ausente, a implantação do proxy de API falhará.

Variáveis de falha

Nenhum.

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: