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

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

Síntoma

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

Qpidd mantiene dos colas para cada grupo de estadísticas:

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

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

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

    Esta es la cola de mensajes no entregados. Funciona como el destino de los mensajes que edge-qpid-server no pudo procesar y, por lo tanto, ya no desea recibir. Por lo general, se completa cuando se supera el recuento máximo de entregas o si PostgreSQL rechazó la inserción de datos nuevos debido a errores en el entorno 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 entorno 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 a
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 la nube privada perimetral

Pasos comunes del 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 con el agente. Si los mensajes de la cola cuyo nombre termina en "-dl" se propagaron, 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: Mensajes atascados en la cola de mensajes no entregados de qpidd

Diagnóstico

Esta condición puede ocurrir en las siguientes situaciones:

  1. Se había realizado una actualización en el pasado, durante el cual PostgreSQL estaba inactivo.
  2. Una interrupción temporal de PostgreSQL debido a problemas de red.
  3. El edge-qpid-server intentó enviar un mensaje a PostgreSQL, pero PostgreSQL mostró un error de entorno de ejecución.

Resolución

  1. Anota el nombre de las colas de los Pasos comunes del 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 un mensaje qpid interactivo:

    qpid-tool

    Este comando muestra lo siguiente:

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

    list broker

    Este comando muestra lo siguiente:

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

    En la columna ID, se especifica el ID del agente.

  4. Toma nota del ID del corredor. En el ejemplo, es 125.

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

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

    Este comando muestra lo siguiente:

    OK (0) - {}

    Si no hay ningún resultado, no hay nada que hacer, lo que significa que no hay mensajes para mover. Si no ves OK(0), comunícate con el equipo de asistencia de Apigee Edge.

  6. Cierra la terminal qpid-tool.

    quit
  7. Espere 5 minutos y, luego, vuelva a ejecutar los pasos de diagnóstico desde Pasos comunes del diagnóstico. Verifica que los mensajes de la cola se estén procesando y asegúrate de que el recuento de mensajes no entregados siga siendo 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 ellos y compártelos con el equipo de asistencia de Apigee Edge:

  • 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 estadísticas que muestra el siguiente comando curl:

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