Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
Problème constaté
L'image suivante montre que les requêtes d'API ne sont pas capturées dans l'UI Edge lorsqu'une session de trace est démarrée :

Message d'erreur
Aucun message d'erreur ne s'affiche dans l'interface utilisateur Edge lorsque ce problème se produit.
Causes possibles :
Le tableau suivant présente les causes possibles d'un échec de capture des requêtes API dans la trace de l'UI Edge :
| Cause | Description | Instructions de dépannage applicables |
|---|---|---|
| Demandes non traitées par le processeur de messages | Les requêtes API doivent être traitées par le composant Processeur de messages d'Edge pour capturer la trace. Si une requête API n'atteint pas Apigee Edge ou échoue au point d'entrée d'Edge (c'est-à-dire routeur) ou échoue avant d'être traitée par le processeur de messages, la trace ne peut pas être capturée. | Utilisateurs du cloud public et privé Edge |
| Proxy d'API introuvable dans l'arborescence de classification | Les processeurs de messages Apigee utilisent une définition de règle de routage appelée "arbre de classification" pour distribuer les requêtes en fonction du nom d'hôte, du chemin de base, de la révision et de l'environnement de la requête entrante. Si le proxy d'API concerné est supprimé de l'arborescence de classification pour une raison quelconque, il est possible que les transactions de trace ne s'affichent pas. | Utilisateurs Edge Private Cloud |
Cause : Requêtes non traitées par le processeur de messages
Diagnostic
Pour capturer une requête API dans une session Trace, la requête API doit être traitée par le composant Processeur de messages d'Edge. Plusieurs raisons peuvent expliquer qu'une requête API ne soit pas capturée dans une transaction Trace.
Par exemple, si une requête API n'atteint pas Apigee Edge ou échoue au point d'entrée d'Edge (c'est-à-dire routeur) ou échoue avant d'être traitée par le processeur de messages, la trace ne peut pas être capturée. Chacun de ces scénarios est décrit plus en détail ci-dessous.
Scénario 1 : Les requêtes n'atteignent pas Apigee Edge
Cause
Dans ce cas, l'erreur peut être due à un problème de résolution DNS ou de connectivité réseau. Si c'est le cas, l'erreur suivante peut s'afficher lorsque vous exécutez cette commande :
curl https://hostName:port/apiProxyBasePath/requestPath
curl: (6) Could not resolve host: hostName
Solution
Vous pouvez vérifier la configuration DNS à l'aide de la commande suivante :
dig hostName
Vous pouvez vérifier la connectivité réseau à l'aide de la commande suivante :
telnet hostName port
Scénario 2 : Échec des requêtes au niveau du routeur Apigee Edge
Cause
Dans ce scénario, l'erreur peut être due à un échec du handshake TLS/SSL. Si c'est le cas, l'une des erreurs suivantes peut s'afficher :
Received fatal alert: handshake_failureHTTP/1.1 400 Bad RequestUne erreur de certificat SSL peut également s'afficher.
Solution
Consultez les playbooks suivants pour résoudre ces problèmes :
Scénario 3 : les requêtes ne peuvent pas être traitées par le processeur de messages
Cause
Dans ce scénario, le processeur de messages Apigee ne trouve pas le proxy d'API pour l'hôte virtuel et le chemin d'accès spécifiés. Par conséquent, l'une des erreurs suivantes peut s'afficher :
HTTP/1.1 404 Not Found{ "fault":{ "faultstring":"Unable to identify proxy for host: default and url: \/apiProxyBasePath/requestPath", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }Solution
Consultez ce playbook pour résoudre ce problème : 404 Impossible d'identifier le proxy pour l'hôte.
Cause : Proxy d'API introuvable dans l'arborescence de classification
Diagnostic
Si un processeur de messages ne trouve pas de proxy d'API dans son arbre de classification, les requêtes API adressées à ce proxy spécifique ne s'afficheront pas dans les sessions de trace de l'interface utilisateur Edge.
Pour le savoir, suivez les étapes ci-dessous :
Connectez-vous à chacun des processeurs de messages et vérifiez si la révision spécifique de l'API demandée est déployée dans l'environnement concerné du processeur de messages à l'aide de la commande suivante :
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Exemple de résultat :
La commande ci-dessus génère une liste des révisions déployées. Par exemple, si la révision 12 est déployée, vous verrez le résultat suivant :
[ "12" ]Sauf si vous rencontrez des erreurs HTTP 404 intermittentes, vous verrez probablement que la révision spécifique est déployée.
Lisez l'arborescence de classification et vérifiez l'existence du nom du proxy d'API à l'aide de la commande suivante :
curl -i http://localhost:8082/v1/classification/tree | grep apiName
Répétez les étapes 1 et 2 pour chaque processeur de messages. Si le nom de proxy d'API indiqué est absent de l'arbre de classification de l'un des processeurs de messages, suivez la procédure de résolution ci-dessous.
Solution
Pour résoudre ce problème, veuillez suivre les étapes ci-dessous. Veillez à prendre toutes les précautions nécessaires pour éviter les interruptions de production qui peuvent survenir lors du redémarrage des processeurs de messages en cas de forte charge de requêtes.
Connectez-vous à chacun des hôtes du processeur de messages où le proxy d'API spécifique est manquant dans l'arborescence de classification, puis utilisez la commande ci-dessous pour redémarrer le processeur de messages :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Une fois redémarré, utilisez la commande ci-dessous pour attendre qu'il devienne actif :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
Une fois le processeur de messages prêt, vérifiez la disponibilité du proxy d'API à l'aide de la commande suivante :
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Exemple de résultat :
La commande ci-dessus génère une liste des révisions déployées. Par exemple, si la révision 12 est déployée, vous verrez le résultat suivant :
[ "12" ]Sauf si vous rencontrez des erreurs HTTP 404 intermittentes, vous verrez probablement que la révision spécifique est déployée.
Lisez l'arborescence de classification et vérifiez l'existence du nom du proxy d'API à l'aide de la commande suivante :
curl -i http://localhost:8082/v1/classification/tree | grep apiName
Si le problème persiste, consultez la page Vous devez collecter des informations de diagnostic.
Vous devez collecter des informations de diagnostic
Si le problème persiste après avoir suivi les instructions ci-dessus, veuillez rassembler les informations de diagnostic suivantes et les partager avec l'assistance Apigee Edge :
| Type d'informations de diagnostic | Commande |
|---|---|
| Résultat de la commande de session de trace | curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user |
| Journal du serveur de gestion | /opt/apigee/var/log/edge-management-server/logs/system.log |
| Journaux du processeur de messages | /opt/apigee/var/log/edge-message-processor/logs/system.log |
Résultat des commandes telnet/netcat du serveur de gestion vers le processeur de messages |
telnet MessageProcessor_IP 8082 nc -vz MessageProcessor_IP 8082 |
| Sortie de la commande netstat sur le ou les processeurs de messages | netstat -an > netstat.txt |
| Sortie listant les révisions déployées pour le proxy d'API spécifique sur tous les processeurs de messages | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
| Sortie de l'arborescence de classification sur tous les processeurs de messages | curl -i http://localhost:8082/v1/classification/tree |