Les dimensions personnalisées ne s'affichent pas lorsque plusieurs axes sont configurés

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 du collecteur de statistiques n'est pas visible sous les dimensions personnalisées dans les rapports personnalisés Analytics de l'interface utilisateur Edge.

Message d'erreur

Après un redémarrage, le journal système "edge-postgres-server" renverra l'erreur suivante pour chaque combinaison organisation/environnement pour laquelle le chemin d'accès est manquant:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

Causes possibles :

Cause Description Instructions de dépannage applicables à
Le chemin d'accès aux propriétés Zookeeper est manquant pour la combinaison organisation/environnement. Si le chemin ZooKeeper /organizations//environments//properties est manquant, il est impossible de créer des dimensions personnalisées. Utilisateurs de cloud privé périphérique

Cause: le chemin d'accès aux propriétés ZooKeeper est manquant pour la combinaison organisation/environnement

Diagnostic

Analytics est activé pour une combinaison organisation/environnement via l' API d'analyse, qui renseigne le /organizations//environments//properties dans l'arborescence ZooKeeper. Lorsque cette API échoue, le composant Edge-postgres-server ne peut pas créer de dimensions personnalisées et l'erreur suivante apparaît dans son fichier system.log:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

Cela se produit généralement lorsqu'une organisation a été intégrée à un moment où plusieurs groupes d'analyse utilisaient les mêmes UUID postgres-server. Pour vérifier le nombre de groupes d'analyse existants, exécutez l'appel d'API suivant:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

Si cette API renvoie plusieurs groupes, le problème est probablement la cause du problème. Dans l'exemple suivant, vous remarquerez l'existence de deux groupes, différenciés par un seul trait d'union : axgroup-001 et axgroup001.

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

Plus précisément, ce problème survient si l'UUID postgres-server configuré pour chaque axgroup est le même. Pour cela, exécutez la commande suivante:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

L'exemple de résultat suivant compare rapidement les UUID postgres-server afin de déterminer qu'ils sont identiques:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

Résolution

Le même ensemble de serveurs PostgreSQL ne peut pas être attribué à deux axgroups. Le moyen le plus rapide de résoudre le problème consiste à supprimer les informations du serveur postgres d'un groupe axgroup et à attribuer tous les champs d'application (combinaisons d'organisation et d'environnement) à l'autre groupe. Pour ce faire, procédez comme suit:

  1. Supprimez les composants de serveur postgres de l'un des deux groupes d'analyse en suivant les instructions de la section Ajouter et supprimer des composants d'analyse dans des groupes d'analyse. Si vous rencontrez des problèmes uniquement avec des champs d'application hors production, choisissez le groupe axgroup qui n'a PAS de champ d'application en production pour cet exercice. Sinon, choisissez le groupe axgroup ayant le plus petit nombre de champs d'application.
  2. Supprimez de l'axgroup tous les champs d'application de l'axgroup qui ne comportent plus de serveurs postgres, ainsi que ceux pour lesquels vous rencontrez le problème de dimension personnalisée. En supposant que axgroup-001 de l'exemple ci-dessus soit le groupe que vous souhaitez utiliser, vous devriez utiliser ce qui suit pour supprimer le champ d'application de l'organisation myorg et de l'environnement prod :
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Activez les analyses à l'aide de l' API d'analyse.
  4. Redémarrez le composant Edge-postgres-server sur le nœud maître postgres et tous les composants Edge-qpid-server que vous avez éventuellement installés, à l'aide des commandes suivantes :
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Vérifiez que l'erreur indiquée dans la section Message d'erreur ci-dessus ne se produit plus dans le fichier journal /opt/apigee/var/log/edge-postgres-server/logs/system.log du serveur Postgres.
  6. Vérifiez si les dimensions personnalisées s'affichent dans l'interface utilisateur Edge.

Si le problème persiste, consultez Obtention des informations de diagnostic nécessaires.

Doit recueillir des informations de diagnostic

Si le problème persiste même après avoir suivi les instructions précédentes, veuillez rassembler les informations de diagnostic suivantes. Contactez-les et partagez-les avec l'assistance Apigee Edge:

  1. Le /opt/apigee/var/log/edge-postgres-server/logs/system.log Edge-postgres-server à partir du dernier redémarrage.
  2. Résultat de l'appel d'API Management suivant :
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. La sortie de l'arborescence ZooKeeper obtenue à l'aide de la commande suivante :
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt