Résoudre les erreurs de déploiement de la règle StatisticsCollector

Vous consultez la documentation d'Apigee X.
Consultez la documentation d'Apigee Edge.

UnsupportedDatatype

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

Error Deploying Revision [revision_number]
StatisticsCollection [datatype]: Datatype Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is unsupported . Context [context].

Exemple de message d'erreur

Error Saving Revision 1
StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.

Exemple de capture d'écran

Message d'erreur indiquant que le type de données n'est pas compatible.

Cause

Si le type de la variable spécifiée par l'attribut ref dans l'élément <Statistic> de la règle StatisticsCollector n'est pas compatible, le déploiement du proxy d'API échoue.

Les types de données compatibles sont string, integer, float, long, double et boolean.

Par exemple, si le type de la variable est spécifié en tant que char dans l'élément <Statistic> de la règle StatisticsCollector, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle StatisticsCollector dans le proxy d'API spécifique où l'échec a eu lieu.
  2. Identifiez le type de données non compatible utilisé dans la règle StatisticsCollector. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le type de données non compatible est char :

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. Vérifiez que l'attribut "type" utilisé dans la règle StatisticsCollector ayant échoué correspond au type de données identifié dans le message d'erreur (étape 2 ci-dessus). Par exemple, la règle suivante spécifie le type de données char, ce qui correspond au contenu du message d'erreur :

    <StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
      <DisplayName>Statistics Collector 1</DisplayName>
      <Statistics>
          <Statistic name="statName" ref="varName" type="char">defaultStatValue</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  4. Si l'attribut "type" ne correspond pas à un type de données compatible, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle StatisticsCollector présenté ci-dessus, n'oubliez pas que l'attribut type est défini sur char, ce qui n'est pas accepté. Par conséquent, le déploiement du proxy d'API échoue avec l'erreur suivante :

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    

Solution

Assurez-vous que le type de données des variables spécifiées par les attributs "ref" dans les éléments <Statistic> de la règle StatisticsCollector est compatible et valide. Exemple :

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="string">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

InvalidName

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

Error Deploying Revision [revision_number]
StatisticsCollection: Name: [name] conflicts with system defined variables. Context policy: [policy_name]

Exemple de message d'erreur

Error Saving Revision 1
StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Exemple de capture d'écran

Message d'erreur indiquant que le nom n'est pas valide.

Cause

Si le nom utilisé pour référencer les données collectées pour la variable spécifiée dans l'élément <Statistic> de la règle StatisticsCollector est en conflit avec une variable définie par le système, le déploiement du proxy d'API échoue.

Voici quelques-unes des variables définies par le système connues : organization et environment.

Par exemple, si l'attribut "name" est spécifié en tant que organization dans l'élément <Statistic> de la règle StatisticsCollector, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle StatisticsCollector où l'erreur s'est produite, et le nom de l'élément <Statistic> qui est en conflit avec une variable définie par le système. Vous trouverez ces deux éléments dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est StatCollector et le nom de l'élément <Statistic> qui est en conflit avec la variable définie par le système est organization :

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. Vérifiez que le nom de l'élément <Statistic> utilisé dans le fichier XML de la règle StatisticsCollector défaillante correspond au nom identifié dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie le nom organization dans l'élément <Statistic>, ce qui correspond au contenu du message d'erreur :

    <StatisticsCollector name="StatCollector">
      <Statistics>
          <Statistic name="organization" ref="organization" type="string">myorg</Statistic>
          <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  3. Examinez la définition de chacun des éléments <Statistic>. S'il existe un élément <Statistic> où l'attribut name est en conflit avec une variable système, il s'agit de la cause de l'erreur.

Dans l'exemple de règle StatisticsCollector présenté ci-dessus, n'oubliez pas que l'attribut "name" de l'élément <Statistic> utilisé est organization, qui est un nom de variable système. Par conséquent, le déploiement du proxy d'API échoue avec l'erreur suivante :

StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Solution

Vérifiez que le nom de l'élément <Statistic> utilisé pour référencer les données collectées pour la variable spécifiée dans l'élément <Statistic> de la règle StatisticsCollector n'est pas le même que les variables définies par le système. Exemple :

<StatisticsCollector name="StatCollector">
    <Statistics>
        <Statistic name="org" ref="org" type="string">myorg</Statistic>
        <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
    </Statistics>
</StatisticsCollector>

DatatypeMissing

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

Error Deploying Revision [revision_number]
StatisticsCollection [ref]: Datatype of Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is missing . Context [context].

Exemple de message d'erreur

Error Deploying Revision 2 to test
StatisticsCollection product.id: Datatype of Revision:2;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is missing. Context {2}.

Exemple de capture d'écran

Message d'erreur indiquant que le type de données est manquant.

Cause

Si le type de la variable spécifiée par l'attribut ref dans l'élément <Statistic> de la règle StatisticsCollector est manquant, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle StatisticsCollector dans le proxy d'API spécifique où l'échec a eu lieu.
  2. Examinez la définition de chacun des éléments <Statistic> dans le fichier XML de la règle StatisticsCollector défaillante. S'il existe des éléments <Statistic> où l'attribut "type" est manquant, il s'agit de la cause de l'erreur.

Voici un exemple de règle StatisticsCollector :

  <StatisticsCollector name="publishPurchaseDetails"
      <Statistics>
          <Statistic name="productID" ref="product.id">999999</Statistic>
          <Statistic name="price" ref="product.price" type="string">1000</Statistic>
      </Statistics>
  </StatisticsCollector>
  

Dans l'exemple de règle StatisticsCollector présenté ci-dessus, vous remarquerez que l'attribut "type" est manquant pour les deux éléments <Statistic>. Par conséquent, le déploiement du proxy d'API échoue.

Solution

Assurez-vous que l'attribut "type" de la variable spécifiée par l'attribut ref dans l'élément <Statistic> de la règle StatisticsCollector est toujours spécifié et que son type de données est compatible.

Les types de données compatibles sont string, integer, float, long, double et boolean.

Exemple :

<StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
        <Statistic name="productID" ref="product.id" type="string">999999</Statistic>
        <Statistic name="price" ref="product.price"  type="string">1000</Statistic>
    </Statistics>
</StatisticsCollector>