Datos de Analytics atascados en la cola de mensajes no entregados por QPIdd

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Síntoma

Faltan datos de Analytics en la IU de Edge porque el servidor de Qpidd no transfiere mensajes de Analytics a PostgreSQL. En Edge, el componente edge-qpid-server corresponde al servidor de Qpidd.

Qpidd mantiene dos colas para cada grupo de análisis:

  • ax-q-axgroup001-consumer-group-001

    Esta cola contiene los mensajes de estadísticas enviados desde los Message Processors y los Routers. El edge-qpid-server extrae los mensajes de aquí, los analiza y los inserta en PostgreSQL. Una vez que los mensajes se procesan correctamente, se quitan de la cola.

  • ax-q-axgroup001-consumer-group-001-dl

    Esta cola es la cola de mensajes no entregados. Actúa como destino de los mensajes que edge-qpid-server no pudo procesar y, por lo tanto, ya no desea recibir. Por lo general, este campo se completa cuando se supera el recuento máximo de entregas o si PostgreSQL rechazó la inserción de datos nuevos debido a errores de tiempo de ejecución.

Mensaje de error

La causa raíz podría deberse a varios errores de tiempo de ejecución del componente edge-qpid-server. Por lo general, si edge-qpid-server recibe un error de tiempo de ejecución de PostgreSQL, crea la cola de mensajes no entregados si aún no existe y, luego, envía el siguiente mensaje allí:

yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.

Causas posibles

Causa Descripción Instrucciones de solución de problemas aplicables para
Mensajes atascados en la cola de mensajes no entregados de qpidd edge-qpid-server no pudo comprender los mensajes que leyó del agente de Qpidd o no pudo conservar los mensajes en PostgreSQL. Usuarios de Edge Private Cloud

Pasos comunes de diagnóstico

Ejecuta el siguiente comando para ver las estadísticas de la cola de Qpidd:

qpid-stat -q

El resultado muestra el conjunto de colas registradas en el agente. Si la cola con el nombre que termina en "-dl" tiene mensajes, significa que hay mensajes atascados en la cola de mensajes no entregados.

Queues
  queue                                     dur  autoDel  excl  msg   msgIn  msgOut  bytes  bytesIn  bytesOut   cons  bind
  ========================================================================================================================
  ax-q-axgroup-001-consumer-group-001       Y                   0     185    185     0       13.8m   13.8m      6      2
  ax-q-axgroup-001-consumer-group-001-dl    Y                   0     70     70      0        3.9m    3.9m      0      2

Causa: Los mensajes están atascados en la cola de mensajes no entregados de qpidd

Diagnóstico

Esta condición puede ocurrir en las siguientes situaciones:

  1. En el pasado, se produjo una actualización durante la cual PostgreSQL estuvo inactivo.
  2. Una interrupción temporal de PostgreSQL debido a problemas de red
  3. edge-qpid-server intentó enviar un mensaje a PostgreSQL, pero PostgreSQL devolvió un error de tiempo de ejecución.

Solución

  1. Anota los nombres de las colas en Pasos comunes de diagnóstico. Por ejemplo:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. Ejecuta el comando qpid-tool para ingresar a un mensaje interactivo de qpid:

    qpid-tool

    Este comando devuelve lo siguiente:

    Management Tool for QPID
    qpid:
  3. Ejecuta list broker para obtener una lista de los agentes activos:

    list broker

    Este comando devuelve lo siguiente:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    La columna ID especifica el ID del corredor.

  4. Anota el ID del corredor. En el ejemplo, es 125.

  5. Ejecuta el siguiente comando para volver a colocar los mensajes de la cola de mensajes no entregados en la cola real:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    Este comando devuelve lo siguiente:

    OK (0) - {}

    Si no hay ningún resultado, significa que no había nada que hacer, es decir, no había mensajes para mover. Si no ves OK(0), debes comunicarte con el equipo de asistencia de Apigee Edge.

  6. Sal de la terminal de qpid-tool.

    quit
  7. Espera 5 minutos y, luego, vuelve a ejecutar los pasos de diagnóstico de Pasos comunes de diagnóstico. Verifica que los mensajes de la cola real se estén procesando y asegúrate de que el recuento de mensajes de la cola de mensajes no entregados permanezca en 0.

Si el problema persiste, ve a la siguiente secció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 comparte la siguiente información:

  • Registros de Qpidd: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Registros de PostgreSQL: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • Registros de edge-qpid-server: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • Registros de edge-postgres-server:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Estadísticas de la cola de Qpidd:

    qpid-stat -q
  • Grupo de Analytics que devuelve el siguiente comando curl:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax