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

<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:

  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 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>
    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 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

  1. 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:

  1. Créer le fichier /opt/apigee/customer/application/postgres-server.properties sur la machine serveur Postgres, si elle n'existe pas déjà.
  2. Ajoutez la ligne suivante à ce fichier:
    conf_pg-agent_forceonboard=true
  3. Vérifiez 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 disposez de plusieurs serveurs Postgres, répétez les étapes ci-dessus sur toutes les Serveurs Postgres.
  6. Annuler le déploiement de votre proxy d'API qui utilise StatisticsCollector .
  7. Exécutez les appels d'API.
  8. 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.