Las dimensiones personalizadas no aparecen cuando se configuran varios grupos de ejes

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Síntoma

La variable personalizada que se creó con la política del Recopilador de estadísticas no se puede ver en Dimensiones personalizadas en los Informes personalizados de Analytics en la IU de Edge.

Mensaje de error

El registro del sistema Edge-postgres-server tendrá el siguiente error después de un reinicio para cada combinación de organización y entorno en la que falte la ruta de acceso:

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

Causas posibles

Causa Descripción Instrucciones de solución de problemas aplicables a
Falta la ruta de acceso de las propiedades de Zookeeper para la combinación de organización y entorno. Cuando falta la ruta de acceso /organizations//environments//properties de ZooKeeper, no se pueden crear dimensiones personalizadas. Usuarios de la nube privada perimetral

Causa: Falta la ruta de acceso de las propiedades de ZooKeeper para la combinación de organización y entorno.

Diagnóstico

Analytics está habilitado para una combinación de organización y entorno a través de la opción Habilitar la API de estadísticas, que propaga /organizations//environments//properties en el árbol de ZooKeeper. Cuando esta API falla, el componente Edge-postgres-server no puede crear dimensiones personalizadas, y aparece el siguiente error en su 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

Por lo general, esto sucede cuando una organización se integra en un momento en que existía más de un grupo de estadísticas que usaba los mismos UUIDs de servidor de postgres. Para verificar cuántos grupos de estadísticas existen, ejecuta la siguiente llamada a la API:

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

Si esta API muestra varios grupos, lo más probable es que esa sea la causa del problema. En el siguiente ejemplo, observa que existen dos grupos, diferenciados solo por un guion: axgroup-001 y 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" : {
  }

En particular, el problema se genera si el UUID de postgres-server que se configura para cada axgroup es el mismo. Una forma rápida de determinar esto es ejecutar lo siguiente:

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

En el siguiente resultado de muestra, se comparan con rapidez los UUIDs de postgres-server para determinar que son iguales:

{  "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" ],

Resolución

El mismo conjunto de servidores de PostgreSQL no se puede asignar a dos axgroups. La forma más rápida de establecer una resolución es borrar la información del servidor de postgres de un axgroup y asignar todos los alcances (organización y combinaciones de entorno) al otro grupo. Para hacerlo, sigue estos pasos:

  1. Quita los componentes del servidor de postgres de uno de los dos grupos de ejes con las instrucciones de Agrega y borra componentes de estadísticas en grupos de estadísticas. Si solo ves problemas con permisos que no son de producción, elige el axgroup que NO tenga ningún alcance de producción para este ejercicio. De lo contrario, elige el grupo ax con la menor cantidad de alcances.
  2. Quita todos los alcances del axgroup que ya no tenga servidores postgres y de aquellos para los que veas el problema de dimensión personalizada de su axgroup. Si axgroup-001 del ejemplo anterior es el grupo que quieres usar, deberías usar lo siguiente para quitar el permiso de la organización myorg y el entorno prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Habilita las estadísticas con la Habilita la API de Analytics.
  4. Reinicia el componente Edge-postgres-server en el nodo principal de postgres y todos los componentes perimetrales-qpid-server que puedas tener instalado con los siguientes comandos:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Verifica que el error proporcionado en la sección Mensaje de error anterior ya no se produzca en el archivo de registro del servidor de Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Confirma si las dimensiones personalizadas aparecen en la IU de Edge.

Si el problema persiste, ve a Debes recopilar información de diagnóstico.

Se debe recopilar información de diagnóstico

Si el problema persiste, incluso después de seguir las instrucciones anteriores, recopila la siguiente información de diagnóstico. Comunícate con ellos y compártelos en el equipo de asistencia de Apigee Edge:

  1. El Edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log del momento del último reinicio.
  2. Resultado de la siguiente llamada a la API de Management:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. El resultado del árbol de ZooKeeper que se obtiene con el siguiente comando:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt