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

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.

Message d'erreur

Le journal système edge-postgres-server affiche l'erreur suivante après un redémarrage pour chaque combinaison organisation/environnement où 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 et environnement. Lorsque le chemin d'accès ZooKeeper /organizations//environments//properties est manquant, les dimensions personnalisées ne peuvent pas être créées. Utilisateurs de Cloud privé Edge

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

Diagnostic

Analytics est activé pour une combinaison organisation-environnement via l' API Enable analytics, qui remplit 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 s'affiche 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

En règle générale, cela se produit lorsqu'une organisation a été intégrée à un moment où plusieurs groupes Analytics existaient et utilisaient les mêmes UUID postgres-server. Pour vérifier le nombre de groupes Analytics 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, il s'agit probablement de la cause du problème. Dans l'exemple suivant, notez qu'il existe deux groupes, qui ne se distinguent que par un 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, le problème se produit si l'UUID postgres-server configuré pour chaque axgroup est le même. Pour le déterminer rapidement, 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 pour 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" ],

Solution

Le même ensemble de serveurs PostgreSQL ne peut pas être attribué à deux axgroups. La solution la plus rapide consiste à supprimer les informations du serveur Postgres d'un axgroup et à attribuer toutes les portées (combinaisons organisation/environnement) à l'autre groupe. Pour ce faire, procédez comme suit :

  1. Supprimez les composants du serveur Postgres de l'un des deux axgroups en suivant les instructions de la section Ajouter et supprimer des composants Analytics dans des groupes Analytics. Si vous ne rencontrez des problèmes qu'avec des portées hors production, choisissez l'axgroup qui ne comporte aucune portée de production pour cet exercice. Sinon, choisissez l'axgroup avec le moins de portées.
  2. Supprimez toutes les portées de l'axgroup qui ne comporte plus de serveurs Postgres, ainsi que celles pour lesquelles 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 devez utiliser la commande suivante pour supprimer la portée 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 Analytics à l'aide de l' API Enable analytics.
  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 peut-être 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 fournie dans la section Message d'erreur ci-dessus ne se produit plus dans le fichier journal du serveur Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Vérifiez si les dimensions personnalisées s'affichent dans l'interface utilisateur Edge.

Si le problème persiste, consultez la page Vous devez collecter des informations de diagnostic.

Vous devez collecter des informations de diagnostic

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

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