Vous consultez la documentation Apigee Edge.
Accédez à la
documentation**Apigee X**. info
Problème constaté
La variable personnalisée créée à l'aide de la règle StatisticsCollector n'est pas visible sous "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 |
|---|---|
| Variable personnalisée ne respectant pas les consignes standards | Utilisateurs du cloud privé et public Edge |
| Aucun trafic sur le proxy d'API implémentant la règle StatisticsCollector | Utilisateurs du cloud privé et public Edge |
| Variable personnalisée non envoyée au serveur Postgres | Utilisateurs du cloud privé Edge |
Cliquez sur un lien du tableau pour afficher les solutions possibles à cette cause.
Variable personnalisée ne respectant pas les consignes standards
Diagnostic
Si le nom de la variable personnalisée utilisée dans la règle StatisticsCollector ne respecte pas les consignes standards (voir Solution), il n'apparaît pas dans les rapports personnalisés.
L'extrait de code ci-dessous montre que le nom de la variable "product id" contient un espace. Il n'apparaît donc pas sous "Dimension personnalisée" dans le rapport personnalisé.
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product id" type="string">999999</Statistic> </Statistics> </StatisticsCollector>
Solution
Les noms de variables personnalisées utilisés dans la règle StatisticsCollector du proxy d'API doivent respecter les consignes suivantes :
- Les noms peuvent inclure [a-z][0-9] et "_".
- Les noms ne peuvent pas comporter d'espaces. Par exemple, 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 du lien suivant ne sont pas autorisés. Par exemple, "user" n'est pas autorisé. Pour en savoir plus, consultez Mots clés SQL.
Si le problème persiste, passez à Aucun trafic sur le proxy d'API implémentant la règle StatisticsCollector.
Aucun trafic sur le proxy d'API implémentant la règle StatisticsCollector
Diagnostic
S'il n'y a pas de trafic sur le proxy d'API qui implémente la règle StatisticsCollector, la variable personnalisée n'apparaît pas dans les rapports personnalisés.
Solution
Effectuez quelques appels au proxy d'API qui implémente la règle 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 à Variable personnalisée non envoyée au serveur Postgres.
Variable personnalisée non envoyée 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 à son tour les envoie au serveur Postgres pour l'ajouter en tant que colonne dans la base de données Postgres.
Parfois, la notification de ZooKeeper peut ne pas atteindre le serveur Postgres en raison de problèmes réseau. En raison de cette erreur, la variable personnalisée peut ne pas apparaître dans le rapport personnalisé.
Pour identifier où la variable personnalisée est manquante :
- Générez l'arborescence ZooKeeper à l'aide de la commande suivante :
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- Recherchez la variable personnalisée dans la sortie de l'arborescence ZooKeeper.
- Si la variable personnalisée existe dans l'arborescence ZooKeeper, exécutez les
commandes suivantes pour vérifier si elle est ajoutée à la base de données Postgres
:
- Sur le nœud Postgres, connectez-vous à PostgreSQL :
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 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';
- Sur le nœud Postgres, connectez-vous à PostgreSQL :
- Il est fort probable que la colonne de la variable personnalisée soit manquante dans la table de faits, ce qui explique pourquoi elle n'apparaît pas dans les dimensions personnalisées.
Solution
Solution 1 : Redémarrez le serveur Postgres
- Redémarrez le serveur Postgres pour le forcer à 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 2 : Activez la propriété forceonboard
Activez la propriété forceonboard en procédant comme suit :
- Créez le fichier
/opt/apigee/customer/application/postgres-server.propertiessur la machine du serveur Postgres, s'il n'existe pas déjà. - Ajoutez la ligne suivante à ce fichier :
conf_pg-agent_forceonboard=true
- Assurez-vous que ce fichier appartient à Apigee à l'aide de la commande suivante :
chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
- Redémarrez le serveur Postgres :
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Si vous avez plusieurs serveurs Postgres, répétez les étapes ci-dessus sur tous les serveurs Postgres.
- Annulez le déploiement et déployez votre proxy d'API qui utilise la règle StatisticsCollector policy.
- Exécutez les appels d'API.
- Vérifiez si la ou les variables personnalisées apparaissent dans les dimensions personnalisées du rapport personnalisé.
Si le problème persiste, contactez l'assistance Apigee Edge.