Vous consultez la documentation d'Apigee Edge.
Consultez la
documentation Apigee X. en savoir plus
Problème constaté
Les données d'analyse sont manquantes dans l'interface utilisateur Edge car le serveur Qpidd ne transfère pas les messages d'analyse vers PostgreSQL. Dans Edge, le composant edge-qpid-server
correspond au serveur Qpidd.
Qpidd gère deux files d'attente pour chaque groupe d'analyse:
ax-q-axgroup001-consumer-group-001
Cette file d'attente contient les messages d'analyse envoyés à partir des routeurs et processeurs de messages. Les messages sont extraits d'ici par le
edge-qpid-server
, qui analyse les messages et les insère dans PostgreSQL. Une fois traités, les messages sont supprimés de la file d'attente.ax-q-axgroup001-consumer-group-001-dl
Cette file d'attente est la file d'attente de lettres mortes. Il sert de destination pour les messages que
edge-qpid-server
n'a pas réussi à traiter et qu'il ne souhaite donc plus recevoir. Ce champ est généralement renseigné lorsque le nombre maximal de diffusions est dépassé ou si PostgreSQL a refusé l'insertion de nouvelles données en raison d'erreurs d'exécution.
Message d'erreur
La cause du problème peut être due à différentes erreurs d'exécution du composant edge-qpid-server
. En règle générale, si edge-qpid-server
reçoit une erreur d'exécution de PostgreSQL, il crée la file d'attente de lettres mortes si elle n'existe pas déjà, puis y envoie le message suivant:
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.
Causes possibles :
Cause | Description | Instructions de dépannage applicables à |
---|---|---|
Messages bloqués dans la file d'attente de lettres mortes de qpidd | edge-qpid-server n'a pas pu interpréter les messages lus depuis le courtier Qpidd ou n'a pas pu conserver les messages adressés à PostgreSQL.
|
Utilisateurs de cloud privé périphérique |
Étapes de diagnostic courantes
Exécutez la commande suivante pour afficher les statistiques de la file d'attente Qpidd:
qpid-stat -q
La sortie renvoie l'ensemble des files d'attente enregistrées auprès de l'agent. Si des messages se terminent dans la file d'attente dont le nom se termine par "-dl", cela signifie que des messages sont bloqués dans la file d'attente de lettres mortes.
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
Cause: messages bloqués dans la file d'attente de lettres mortes de qpidd
Diagnostic
Cette situation peut se produire dans les cas suivants:
- Une mise à niveau avait eu lieu par le passé, au cours de laquelle PostgreSQL était hors service.
- Interruption temporaire de PostgreSQL en raison de problèmes de réseau.
edge-qpid-server
a tenté d'envoyer un message à PostgreSQL, mais PostgreSQL a renvoyé une erreur d'exécution.
Résolution
Notez le nom des files d'attente à partir de la page Procédure de diagnostic commune. Exemple :
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
Exécutez la commande
qpid-tool
pour saisir une inviteqpid
interactive:qpid-tool
Cette commande renvoie ce qui suit:
Management Tool for QPID qpid:
Exécutez
list broker
pour obtenir la liste des courtiers actifs:list broker
Cette commande renvoie ce qui suit:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
Où la colonne
ID
spécifie l'ID de l'agent.Notez l'ID de l'agent. Dans l'exemple, il s'agit de 125.
Exécutez la commande suivante pour déplacer les messages de la file d'attente des lettres mortes vers la file d'attente:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
Cette commande renvoie ce qui suit:
OK (0) - {}
S'il n'y a pas de sortie, cela signifie qu'il n'y a rien à faire, ce qui signifie qu'il n'y a aucun message à déplacer. Si vous ne voyez pas
OK(0)
, contactez l'assistance Apigee Edge.Quittez le terminal qpid-tool.
quit
Patientez cinq minutes, puis exécutez à nouveau les étapes du diagnostic depuis les Étapes de diagnostic courantes. Vérifiez que les messages de la file d'attente sont traités et que le nombre de messages de lettres mortes reste à 0.
Si le problème persiste, passez à la section suivante.
Doit recueillir des informations de diagnostic
Si le problème persiste même après avoir suivi les instructions ci-dessus, veuillez rassembler les informations de diagnostic suivantes. Contactez-les et partagez-les avec l'assistance Apigee Edge:
- Journaux Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Journaux Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Journaux Edge-qpid-server:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Journaux Edge-postgres-server:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
Statistiques de la file d'attente Qpidd:
qpid-stat -q
Groupe d'analyse renvoyé par la commande curl suivante:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax