Dati di analisi bloccati nella coda dei messaggi non recapitabili Qpidd

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Sintomo

I dati di Analytics non sono presenti nell'interfaccia utente Edge perché il server Qpidd non trasferisce i messaggi di Analytics a PostgreSQL. In Edge, il componente edge-qpid-server corrisponde al server Qpidd.

Qpidd gestisce due code per ogni gruppo di analisi:

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

    Questa coda contiene i messaggi di analisi inviati dai router e dai processori di messaggi. I messaggi vengono estratti da qui da edge-qpid-server, che li analizza e li inserisce in PostgreSQL. Una volta elaborati correttamente, i messaggi vengono rimossi dalla coda.

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

    Questa coda è la coda dei messaggi non recapitabili. Funge da destinazione per i messaggi che edge-qpid-server non è riuscito a elaborare e che quindi non vuole più ricevere. Questo campo viene in genere compilato quando viene superato il conteggio massimo di tentativi di pubblicazione o se PostgreSQL ha rifiutato l'inserimento di nuovi dati a causa di errori di runtime.

Messaggio di errore

La causa principale potrebbe essere dovuta a vari errori di runtime del componente edge-qpid-server. In genere, se edge-qpid-server riceve un errore di runtime da PostgreSQL, crea la coda di messaggi non recapitabili se non esiste già e poi invia il seguente messaggio:

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.

Possibili cause

Causa Descrizione Istruzioni per la risoluzione dei problemi applicabili a
Messaggi bloccati nella coda di messaggi non recapitabili di qpidd edge-qpid-server non è riuscito a comprendere i messaggi letti dal broker Qpidd o non è riuscito a renderli persistenti in PostgreSQL. Utenti di Edge Private Cloud

Passaggi di diagnostica comuni

Esegui questo comando per visualizzare le statistiche della coda Qpidd:

qpid-stat -q

L'output restituisce l'insieme di code registrate con il broker. Se la coda con il nome che termina con "-dl" contiene messaggi, significa che ci sono messaggi bloccati nella coda dei messaggi non recapitabili.

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: messaggi bloccati nella coda messaggi non recapitabili di qpidd

Diagnosi

Questa condizione può verificarsi nei seguenti scenari:

  1. In passato è stato eseguito un upgrade durante il quale PostgreSQL non era disponibile.
  2. Un'interruzione temporanea di PostgreSQL dovuta a problemi di rete.
  3. edge-qpid-server ha tentato di inviare un messaggio a PostgreSQL, ma PostgreSQL ha restituito un errore di runtime.

Risoluzione

  1. Prendi nota del nome delle code dai passaggi di diagnostica comuni. Ad esempio:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. Esegui il comando qpid-tool per inserire un prompt qpid interattivo:

    qpid-tool

    Questo comando restituisce quanto segue:

    Management Tool for QPID
    qpid:
  3. Esegui list broker per ottenere un elenco dei broker attivi:

    list broker

    Questo comando restituisce quanto segue:

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

    Dove la colonna ID specifica l'ID del broker.

  4. Prendi nota dell'ID del broker. Nell'esempio è 125.

  5. Esegui questo comando per spostare i messaggi dalla coda di messaggi non recapitabili alla coda effettiva:

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

    Questo comando restituisce quanto segue:

    OK (0) - {}

    Se non viene visualizzato alcun output, non è stato eseguito alcun passaggio, il che significa che non ci sono messaggi da spostare. Se non vedi OK(0), devi contattare l'assistenza Apigee Edge.

  6. Esci dal terminale qpid-tool.

    quit
  7. Attendi 5 minuti e poi esegui di nuovo i passaggi di diagnostica dalla sezione Passaggi di diagnostica comuni. Verifica che i messaggi nella coda effettiva vengano elaborati e assicurati che il conteggio dei messaggi di coda non elaborabile rimanga a 0.

Se il problema persiste, vai alla sezione successiva.

Must Gather Diagnostic Information

Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni diagnostiche. Contattali e condividili con l'assistenza Apigee Edge:

  • Log di Qpidd: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Log PostgreSQL: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • Log di Edge-qpid-server: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • Log di edge-postgres-server:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Statistiche della coda Qpidd:

    qpid-stat -q
  • Gruppo Analytics restituito dal seguente comando curl:

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