Variable personnalisée non visible dans les rapports personnalisés Analytics

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

Problème constaté

La variable personnalisée créée à l'aide de la stratégie StatisticsCollector n'est pas visible sous les dimensions personnalisées dans les rapports personnalisés Analytics de l'interface utilisateur Edge.

Messages d'erreur

Aucune erreur n'est observée.

Causes possibles

Le tableau suivant répertorie les causes possibles de ce problème:

Cause Pour
La variable personnalisée ne respecte pas les consignes standards Utilisateurs de cloud privé et public Edge
Aucun trafic sur le proxy d'API mettant en œuvre la stratégie StatisticsCollector Utilisateurs de cloud privé et public Edge
Variable personnalisée non transmise au serveur Postgres Utilisateurs de cloud privé périphérique

Cliquez sur un lien du tableau pour afficher les solutions possibles à cette cause.

La variable personnalisée ne respecte pas les consignes standards

Diagnostic

Si le nom de la variable personnalisée utilisé dans la stratégie StatisticsCollector ne respecte pas les directives standards (voir Résolution), il n'apparaîtra pas dans les rapports personnalisés.

L'extrait de code ci-dessous montre que le nom de la variable "product id" comporte un espace. Elle n'apparaîtra donc pas sous la dimension personnalisée dans le rapport personnalisé.

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

Résolution

Les noms de variables personnalisées utilisés dans la stratégie StatisticsCollector dans le proxy d'API doivent respecter les directives suivantes:

  • Ces noms peuvent inclure les caractères [a-z][0-9] et "_".
  • Les noms ne peuvent pas comporter d'espaces. Ainsi, dans l'exemple de code ci-dessus, le nom de la variable doit être remplacé par "product_id".
  • Ne tient pas compte de la casse.
  • Les mots clés réservés listés dans le tableau accessible via le lien suivant ne sont pas autorisés. Par exemple, "utilisateur" n'est pas autorisé. Pour en savoir plus, consultez la section Mots clés SQL.

Si le problème persiste, passez à Aucun trafic sur le proxy d'API mettant en œuvre la stratégie StatisticsCollector.

Aucun trafic sur le proxy d'API mettant en œuvre la stratégie StatisticsCollector

Diagnostic

S'il n'y a pas de trafic sur le proxy d'API qui implémente la stratégie StatisticsCollector, la variable personnalisée n'apparaîtra pas dans les rapports personnalisés.

Résolution

Effectuez des appels au proxy d'API qui implémente la stratégie StatisticsCollector.

Attendez un certain temps et vérifiez si la ou les variables personnalisées apparaissent dans les dimensions personnalisées du rapport personnalisé.

Si le problème persiste, passez à la section Variable personnalisée non transmise au serveur Postgres.

Variable personnalisée non transmise au serveur Postgres

Diagnostic

Lorsqu'une variable personnalisée est créée dans le proxy d'API et que des appels d'API sont effectués, la variable est d'abord stockée en mémoire sur le processeur de messages. Le processeur de messages envoie ensuite les informations sur la nouvelle variable à ZooKeeper, qui les envoie à son tour au serveur Postgres pour l'ajouter en tant que colonne dans la base de données Postgres.

Il peut arriver que la notification de ZooKeeper n'atteigne pas le serveur Postgres en raison de problèmes de réseau. En raison de cette erreur, la variable personnalisée peut ne pas apparaître dans le rapport personnalisé.

Pour identifier l'endroit où la variable personnalisée est manquante:

  1. Générez l'arborescence ZooKeeper à l'aide de la commande suivante :
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. Recherchez la variable personnalisée dans le résultat de l'arborescence ZooKeeper.
  3. Si la variable personnalisée existe dans l'arborescence ZooKeeper, exécutez les commandes suivantes pour vérifier si la variable personnalisée a été ajoutée à la base de données Postgres :
    1. Sur le nœud Postgres, connectez-vous à PostgreSQL :
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Exécutez la requête SQL suivante :
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. Vous remarquerez très probablement que la colonne des variables personnalisées n'apparaîtra pas dans le tableau de faits, ce qui explique pourquoi elle n'apparaît pas dans les dimensions personnalisées.

Résolution

Solution n° 1: Redémarrer le serveur Postgres

  1. Redémarrez le serveur Postgres pour l'obliger à lire toutes les informations pertinentes pour Analytics à partir de Zookeeper :
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    Si le problème persiste, appliquez la solution 2.

Solution n° 2: Activer la propriété forceonboard

Activez la propriété forceonboard en procédant comme suit:

  1. Si ce n'est pas déjà fait, créez un fichier /opt/apigee/customer/application/postgres-server.properties sur la machine serveur Postgres.
  2. Ajoutez la ligne suivante à ce fichier :
    conf_pg-agent_forceonboard=true
  3. Assurez-vous que ce fichier appartient à Apigee à l'aide de la commande suivante :
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Redémarrez le serveur Postgres :
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. Si vous avez plusieurs serveurs Postgres, répétez les étapes ci-dessus sur tous les serveurs Postgres.
  6. Annulez et déployez votre proxy d'API qui utilise la stratégie StatisticsCollector.
  7. Exécutez les appels d'API.
  8. Vérifiez si les variables personnalisées apparaissent dans les dimensions personnalisées du rapport personnalisé.

Si le problème persiste, contactez l'assistance Apigee Edge.