<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Symptôme
La variable personnalisée créée à l'aide de la variable La stratégie StatisticsCollector est non visible sous Dimensions personnalisées dans les rapports personnalisés Analytics dans 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 transférée vers le serveur Postgres | Utilisateurs de cloud privé Edge |
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 respecter les consignes standards (voir ), elle 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, afin qu'elle n'apparaisse pas dans la dimension personnalisée du rapport personnalisé.
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product id" type="string">999999</Statistic> </Statistics> </StatisticsCollector>
Solution
Noms de variables personnalisées utilisés dans la stratégie StatisticsCollector au sein de l'API le proxy doit respecter les directives suivantes:
- Il peut s'agir de [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 répertoriés dans le tableau à l'adresse suivante ne sont pas autorisé. Exemple : "utilisateur" 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 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 met en œuvre StatisticsCollector , la variable personnalisée n'apparaîtra pas dans les rapports personnalisés.
Solution
Effectuer des appels vers le proxy d'API qui implémente l'API StatisticsCollector .
Attendez un peu et vérifiez si les variables personnalisées apparaissent dans les dimensions personnalisées de Rapport personnalisé.
Si le problème persiste, passez à la section Variable personnalisée non transmise à Serveur Postgres
Variable personnalisée non transférée vers le 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 est d'abord stockée en mémoire sur le processeur de messages. Le message Le processeur envoie ensuite les informations sur la nouvelle variable à ZooKeeper, qui et l'envoie à son tour au serveur Postgres pour qu'il l'ajoute en tant que colonne dans le base de données.
Il peut arriver que la notification de ZooKeeper n'atteigne pas le serveur Postgres en raison des les problèmes de performances. En raison de cette erreur, il est possible que la variable personnalisée n'apparaisse pas dans le champ Rapport personnalisé.
Pour déterminer 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 la commande
suivantes pour vérifier si la variable personnalisée est ajoutée au
base de données:
<ph type="x-smartling-placeholder">
- </ph>
- 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 constaterez très probablement que la colonne de variable personnalisée n'apparaît pas tableau de faits. C'est pourquoi elle n'apparaît pas dans les dimensions personnalisées.
Solution
Solution n° 1: redémarrer le serveur Postgres
- Redémarrez le serveur Postgres pour le forcer à lire toutes les informations pertinentes
Analyse de Zookeeper:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
Si le problème persiste, appliquez la solution n° 2.
Solution n° 2: activer la propriété "forceonboard"
Activez la propriété forceonboard en procédant comme suit:
- Créer le fichier
/opt/apigee/customer/application/postgres-server.properties
sur la machine serveur Postgres, si elle n'existe pas déjà. - Ajoutez la ligne suivante à ce fichier:
conf_pg-agent_forceonboard=true
- Vérifiez 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 disposez de plusieurs serveurs Postgres, répétez les étapes ci-dessus sur toutes les Serveurs Postgres.
- Annuler le déploiement de votre proxy d'API qui utilise StatisticsCollector .
- Exécutez les appels d'API.
- Vérifier si les variables personnalisées apparaissent dans les dimensions personnalisées de l'onglet personnalisé Rapport.
Si le problème persiste, contactez l'assistance Apigee Edge.