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:
- 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 le résultat de l'arborescence ZooKeeper.
- 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 :
- 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 :
- 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
- 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:
- Si ce n'est pas déjà fait, créez un fichier
/opt/apigee/customer/application/postgres-server.properties
sur la machine serveur Postgres. - 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 et déployez votre proxy d'API qui utilise la stratégie StatisticsCollector.
- Exécutez les appels d'API.
- 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.