Règle StatisticsCollector

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Quoi

Vous permet de collecter des statistiques sur les données d'un message, telles que l'ID produit, le prix, l'action REST, l'URL du client et de la cible, et la longueur du message. Les données peuvent provenir de variables de flux prédéfinies par Apigee ou de variables personnalisées que vous définissez.

Les données statistiques sont transmises au serveur d'analyse, qui analyse les statistiques et génère des rapports. Vous pouvez afficher les rapports à l'aide de l'interface utilisateur de gestion Edge ou de l'API Edge.

Samples

Exemple de base

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

Dans cet exemple, vous collectez des informations statistiques sur deux variables personnalisées : product.id et product.price. À chaque requête, la stratégie du collecteur de statistiques écrit la valeur de ces deux variables sur le serveur d'analyse.

Cet exemple définit également une valeur par défaut facultative pour chaque variable : la valeur par défaut de product.id est 999999 et celle de product.price par défaut est 0. Si une variable n'est pas définie et que vous ne spécifiez pas de valeur par défaut, aucune donnée n'est enregistrée pour la variable. Si vous spécifiez une valeur par défaut, la valeur par défaut est enregistrée lorsque la variable n'est pas définie.

Après avoir collecté des données statistiques, vous pouvez utiliser l'interface utilisateur ou l'API de gestion Edge pour récupérer les statistiques. Lorsque vous récupérez des statistiques, vous référencez les données collectées pour ces variables en tant que productID et price, respectivement.

Accéder aux statistiques

Dans cet exemple, vous utilisez l'API de gestion Edge pour afficher les données statistiques de la collection appelée productID. Cette demande crée un rapport personnalisé pour les ID produit en fonction de la somme du nombre de messages soumis pour chaque ID produit pour chaque jour. Remplacez le nom de votre organisation par la variable {org_name}, puis remplacez l'adresse e-mail et le mot de passe de votre compte sur Apigee Edge par email:password.

Définissez le paramètre timeRange pour inclure l'intervalle de temps pendant lequel vos données ont été collectées. Les données datant de plus de six mois à compter de la date du jour ne sont pas accessibles par défaut. Si vous souhaitez accéder à des données datant de plus de six mois, contactez l'assistance 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

Dans la réponse, le champ name contient l'ID produit, et la valeur indique le nombre de requêtes pour chaque jour:

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

Extraction des données pour la collecte...

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

La stratégie du collecteur de statistiques exige que les données collectées soient stockées dans des variables. Ces variables peuvent être prédéfinies par Apigee ou des variables personnalisées que vous définissez.

Dans cet exemple, vous utilisez la règle Extract Variables pour extraire les données d'une charge utile XML contenant des informations météorologiques. Il permet de:

  • Extrait le nom de la ville et l'écrit dans une variable nommée weather.location
  • Elle extrait les conditions actuelles et les écrit dans une variable nommée weather.condition

Vous pouvez ensuite utiliser la stratégie du collecteur de statistiques pour recueillir des informations sur les variables, comme indiqué ci-dessous:

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

Pour accéder à un tutoriel complet qui montre comment extraire des données d'une charge utile XML pour la stratégie du collecteur de statistiques, voir Analyser le contenu des messages de l'API à l'aide d'analyses personnalisées.


À propos de la politique du collecteur de statistiques

Lorsqu'elle est exécutée, la stratégie du collecteur de statistiques enregistre la valeur actuelle d'une ou de plusieurs variables. Ces variables peuvent être des variables de flux prédéfinies par Apigee ou des variables personnalisées que vous définissez. Ces données sont écrites sur le serveur d'analyse Edge.

Pour accéder aux données statistiques collectées par la stratégie, utilisez l'API Edge ou l'interface utilisateur de gestion Edge. Par exemple, vous pouvez utiliser l'interface utilisateur de gestion Edge pour créer un rapport personnalisé qui affiche les données collectées dans différents formats.

Pour un tutoriel complet utilisant la stratégie du collecteur de statistiques, voir Analyser le contenu du message de l'API à l'aide d'analyses personnalisées.

Où placer la règle ?

Vous pouvez placer une stratégie du collecteur de statistiques dans le flux de demandes ou de réponses d'un proxy d'API. Cependant, si vous placez plusieurs stratégies du collecteur de statistiques dans un proxy, la dernière à exécuter détermine les données écrites sur le serveur d'analyse et les données écrites par les stratégies précédentes de Statistics Collector sont perdues.

Un scénario où vous pouvez avoir plusieurs stratégies du collecteur de statistiques dans un proxy d'API est lorsque vous en avez une dans le flux de demande ou de réponse et un autre dans un gestionnaire d'erreurs. Si une erreur se produit dans le proxy de l'API, le collecteur de statistiques du gestionnaire d'erreurs détermine les données collectées. Vous pouvez utiliser ce collecteur de statistiques pour enregistrer des informations sur l'erreur ou pour enregistrer toute autre information que vous jugez nécessaire. Le collecteur de statistiques du gestionnaire d'erreurs détermine les données collectées, que le collecteur de statistiques de la requête/réponse ait déjà été exécuté ou non.

Pour en savoir plus, consultez la page Gérer les erreurs.

Documentation de référence des éléments

La référence de l'élément décrit les éléments et les attributs de la stratégie du collecteur de statistiques.

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

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

Élément <Statistics>/<Statistic>

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
Attribut Description Par défaut Présence
name

Nom utilisé pour référencer les données collectées pour la variable spécifiée. Lorsque vous affichez des données d'analyse, utilisez ce nom pour référencer les données collectées concernant la variable spécifiée par l'attribut ref.

Si la variable spécifiée par ref n'est pas définie dans une requête ou une réponse, defaultStatValue spécifie la valeur collectée pour la variable. Si vous omettez la valeur par défaut, aucune donnée n'est collectée pour la variable lorsque celle-ci n'est pas définie.

Restrictions de dénomination

Les restrictions suivantes en termes de dénomination s'appliquent aux variables de données analytiques personnalisées :

N/A Obligatoire
ref

Variable de flux pour laquelle vous collectez des statistiques. Cette variable peut être une variable de flux prédéfinie par Apigee ou une variable personnalisée que vous définissez dans votre proxy d'API.

L'attribut "ref" fait souvent référence à une variable personnalisée définie par la règle Extract Variables. Pour en savoir plus, consultez la section Règle de variables d'extraction.

N/A Obligatoire
type

Spécifie le type de données de la variable spécifiée par l'attribut ref. Les valeurs valides sont les suivantes : string/integer/float/long/double/boolean.

Pour les données de type chaîne, référencez les données statistiques en tant que dimension dans un rapport personnalisé. Pour les types de données numériques (entier/flottant/long/double), référencez les données statistiques dans un rapport personnalisé en tant que dimension ou métrique. Voir Gérer des rapports personnalisés pour plus d'informations.

La valeur de type ne peut être omise que si ref fait référence à une variable de flux Apigee prédéfinie ou si le type est déclaré dans la charge utile XML de la règle Extraire les variables.

chaîne Facultatif

Informations de référence sur les erreurs

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.

Schéma

Chaque type de règle est défini par un schéma XML (.xsd). Pour référence, des schémas de règles sont disponibles sur GitHub.

Articles associés

Pour en savoir plus, consultez :