Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Síntoma
La variable personalizada creada con la política del colector de estadísticas no está visible 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 o entorno en la que falta 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 para |
|---|---|---|
| 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 de ZooKeeper /organizations/, no se pueden crear dimensiones personalizadas. |
Usuarios de la nube privada de Edge |
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
API de Enable analytics, que propaga /organizations/
en el árbol de ZooKeeper. Cuando falla esta API, el componente edge-postgres-server no puede crear dimensiones personalizadas y aparecerá 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 se incorporó una organización en un momento en el que existía más de un grupo de estadísticas que usaba los mismos UUID de postgres-server. 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, es muy probable que 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 produce si el UUID de postgres-server que está configurado 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"
El siguiente resultado de muestra compara rápidamente los UUID de postgres-server para determinar que son los mismos:
{ "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" ],Solución
No se puede asignar el mismo conjunto de servidores PostgreSQL a dos axgroups. La forma más rápida de resolver el problema es borrar la información del servidor postgres de un axgroup y asignar todos los alcances (combinaciones de organización y entorno) al otro grupo. Para ello, sigue estos pasos:
- Quita los componentes del servidor postgres de uno de los dos axgroups con las instrucciones que se encuentran en Cómo agregar y borrar componentes de estadísticas en grupos de estadísticas. Si solo tienes problemas con los alcances 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 axgroup con la menor cantidad de alcances.
- Quita todos los alcances del axgroup que ya no tiene servidores postgres y aquellos
para los que ves el problema de dimensión personalizada de su axgroup. Si suponemos que
axgroup-001del ejemplo anterior es el grupo que deseas usar, deberás usar lo siguiente para quitar el alcance 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'
- Habilita Analytics con la API de Enable analytics.
- Reinicia el componente edge-postgres-server en el nodo maestro postgres y todos los
componentes edge-qpid-server que hayas 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
- Verifica que el error que se proporciona en la sección Mensaje de error anterior
ya no ocurra en el archivo de registro del servidor Postgres
/opt/apigee/var/log/edge-postgres-server/logs/system.log. - Confirma si las dimensiones personalizadas aparecen en la IU de Edge.
Si el problema persiste, consulta Recopila información de diagnóstico a continuación.
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 el equipo de asistencia de Apigee Edge y compártela:
- El edge-postgres-server
/opt/apigee/var/log/edge-postgres-server/logs/system.logdesde el momento del reinicio más reciente. - El resultado de la siguiente llamada a la API de administración:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- El resultado del árbol de ZooKeeper obtenido con el siguiente comando:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt