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

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Síntoma

Faltan datos de estadísticas en la IU de Edge debido a que el servidor Qpidd no transfiere mensajes de estadísticas a PostgreSQL. En Edge, el componente edge-qpid-server corresponde al servidor 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 Enrutadores y Procesadores de mensajes. El edge-qpid-server extrae los mensajes desde aquí, los cuales analiza los mensajes y los inserta en PostgreSQL. Cuando 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, se propaga 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 una 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
Los mensajes quedan atascados en la fila de mensajes no entregados de qpidd edge-qpid-server no pudo comprender los mensajes que leyó del agente Qpidd o no pudo conservar los mensajes en PostgreSQL. Usuarios de la nube privada perimetral

Pasos comunes de diagnóstico

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

qpid-stat -q

El resultado muestra el conjunto de colas registradas con el agente. Si la cola cuyo nombre termina en "-dl" tiene mensajes propagados, quedan 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 fila 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, tiempo durante el cual PostgreSQL no estaba disponible.
  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.

Solució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 qpidinteractivo:

    qpid-tool

    Este comando muestra lo siguiente:

    Management Tool for QPID
    qpid:
  3. Ejecuta list broker para obtener una lista de agentes 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. Anota el ID del agente. En el ejemplo, es 125.

  5. Ejecuta el siguiente comando para devolver 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 resultados, entonces no hay nada que hacer, lo que significa que no hay mensajes para mover. Si no ves OK(0), debes comunicarte con el equipo de asistencia de Apigee Edge.

  6. Sal de la terminal qpid-tool.

    quit
  7. Espera 5 minutos y vuelve a ejecutar los pasos del diagnóstico de Pasos comunes del diagnóstico. Verifique que se estén procesando los mensajes de la cola real y asegúrese de que el recuento 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 ellos y compártelos con el equipo de asistencia de Apigee Edge:

  • Registros 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 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