503 Service indisponible.

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Vidéos

Regardez les vidéos suivantes pour en savoir plus sur les erreurs 503:

Vidéo Description
Dépanner et résoudre l'erreur 503 Service indisponible en raison d'un problème DNS Apprenez-en plus sur les points suivants: <ph type="x-smartling-placeholder">
    </ph>
  • Erreur 503 Service non disponible causée par la résolution DNS et les problèmes liés au réseau dans Apigee Edge
  • Dépannage et résolution d'une erreur 503 Service indisponible en temps réel causée par un problème de résolution DNS
Dépanner et résoudre l'erreur 503 Service indisponible en raison d'un problème réseau Dépannage et résolution d'une erreur 503 Service indisponible en temps réel causée par un problème réseau dans Apigee Edge

Symptôme

L'application cliente reçoit une réponse HTTP 503 avec le message Service Unavailable. après un appel de proxy d'API.

Messages d'erreur

Le message d'erreur suivant peut s'afficher:

HTTP/1.1 503 Service Unavailable
      

Le message d'erreur suivant peut également s'afficher dans la réponse HTTP:

Service indisponible

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.ServiceUnavailable"
       }
    }
}
      

Causes possibles

La réponse HTTP 503 Service Unavailable avec le code d'erreur messaging.adaptors.http.flow.ServiceUnavailable se produit si le processeur de messages d'Apigee Edge rencontre des erreurs dues à un délai d'attente de connexion, des erreurs le nom d'hôte ou les échecs de handshake SSL lors de la communication avec le serveur backend.

Causes possibles de la réponse 503 Service Unavailable:

Cause Description Qui peut effectuer les étapes de dépannage
Erreurs de connexion dues à une résolution DNS incorrecte La résolution DNS du serveur cible a généré des adresses IP incorrectes entraînant des erreurs de connexion. Utilisateurs de cloud privé Edge
Erreurs de connexion Des problèmes de réseau ou de connectivité empêchent le client de se connecter au serveur. Utilisateurs de cloud privé Edge
Nom d'hôte du serveur cible incorrect L'hôte du serveur cible spécifié est incorrect ou comporte des caractères indésirables (comme un espace). Utilisateurs Edge de cloud public et privé
Échecs du handshake SSL Le handshake TLS/SSL a échoué entre le client et le serveur. (Dépannage pour ce type de est abordé dans une autre section.) Utilisateurs Edge de cloud public et privé

Étapes de diagnostic courantes

Déterminer l'ID de message de la requête en échec

Outil Trace

Pour déterminer l'ID du message de la requête ayant échoué à l'aide de l'outil Trace:

  1. Si le problème est toujours actif, activez la session de trace pour l'API concernée.
  2. Effectuez l'appel d'API et reproduisez le problème. 503 Service non disponible avec le code d'erreur messaging.adaptors.http.flow.ServiceUnavailable..
  3. Sélectionnez l'une des requêtes ayant échoué.
  4. Accédez à la phase AX et déterminez l'ID du message (X-Apigee.Message-ID) de la requête en faisant défiler la section Phase Details (Détails de la phase) vers le bas, comme illustré dans la figure suivante.

    ID du message dans la section &quot;Détails de la phase&quot;

Journaux d'accès NGINX

Pour déterminer l'ID du message de la requête ayant échoué à l'aide des journaux d'accès NGINX:

Vous pouvez également consulter les journaux d'accès NGINX pour déterminer l'ID de message pour les erreurs 503. Cela est particulièrement utile si le problème s'est produit par le passé ou s'il se produit par intermittence. et vous ne parvenez pas à capturer la trace dans l'UI. Procédez comme suit pour obtenir ces informations à partir des journaux d'accès NGINX:

  1. Vérifiez les journaux d'accès NGINX: (/opt/apigee/var/log/edge-router/nginx/ <org>~ <env>.<port#>_access_log)
  2. Rechercher s'il existe des erreurs 503 pour le proxy d'API spécifique pendant une durée spécifique (si le problème s'est produit dans le passé) ou si des requêtes échouent toujours avec l'erreur 503.
  3. En cas d'erreurs 503 avec X-Apigee-fault-code messages.adaptors.http.flow.ServiceUnavailable, notez l'ID du message pour une ou plusieurs de ces requêtes, comme illustré dans l'exemple suivant:

    Exemple d'entrée affichant l'erreur 503

    Exemple d&#39;entrée affichant le code d&#39;état, l&#39;identifiant du message, la source de l&#39;erreur et le code d&#39;erreur

Erreurs de connexion dues à une résolution DNS incorrecte

Diagnostic

  1. Déterminez l'ID de message de la requête en échec.
  2. Recherchez l'ID du message de requête spécifique dans le journal du processeur de messages (/opt/apigee/var/log/edge-message-processor/logs/system.log). Vous pouvez rencontrer les erreurs suivantes:

    Une erreur onConnectTimeout indique que le processeur de messages n'a pas pu se connecter au serveur backend dans le délai d'expiration de connexion prédéfini (par défaut: 3 secondes).
    2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[Connected:]@164162 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11  resolvedAddress=www.abc.com/22.22.22.22
    
    2019-08-14 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
          
  3. Notez l'adresse IP résolue dans l'erreur onConnectTimeout, puis vérifiez si elle est valide pour votre serveur backend. Si l'adresse IP est valide, consultez la section Erreurs de connexion.
  4. Si l'adresse IP n'est pas valide, le problème est probablement dû à la résolution DNS.
  5. Répétez les étapes 3 et 4 pour quelques requêtes API ayant échoué, et vérifiez si vous voyez des adresses IP identiques ou non valides.
  6. Recherchez les messages contenant le mot clé DNS Refresh dans le journal du processeur de messages (/opt/apigee/var/log/edge-message-processor/logs/system.log). Vérifiez si des adresses IP incorrectes ou incorrectes sont ajoutées de temps en temps au cache DNS sur le processeur de messages.
    2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 INFO c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.reportDifferences() : DNS Refresh for host: apitarget-uat.schemeweb.co.uk:4436. Added 2 IPs [www.abc.com/22.22.22.22, www.abc.com/33.33.33.33] Removed 1 IPs [www.abc.com/11.11.11.11]
          
  7. Ce problème peut se produire en cas de problème avec les serveurs DNS faisant autorité ou les serveurs de noms configurés dans /etc/resolv.conf.

    En règle générale, il peut y avoir un ou plusieurs serveurs DNS faisant autorité configurés pour effectuer la résolution DNS. S'il n'y a pas de serveurs DNS faisant autorité, la configuration est rétablie dans /etc/resolv.conf et la résolution DNS est effectuée le cas échéant. Par exemple, si /etc/resolv.conf est configuré pour utiliser des serveurs de noms spécifiques, ceux-ci seront utilisés pour effectuer la résolution DNS.
  8. En cas de problèmes avec les serveurs DNS faisant autorité ou les serveurs de noms spécifiés dans /etc/resolv.conf, les noms d'hôte du serveur backend seront résolus en adresses IP incorrectes ou non valides. Les adresses IP incorrectes/non valides seront alors stockées dans le cache DNS du processeur de messages.
    1. Si le problème avec les serveurs DNS primaires ou les serveurs de noms spécifiés dans /etc/resolv.conf est persistant, les adresses IP incorrectes/non valides continueront d'être conservées dans le cache DNS du processeur de messages. Tant que les adresses IP incorrectes sont stockées dans le cache DNS du processeur de messages, les requêtes pour toutes ces API utilisant le serveur backend spécifique échoueront avec une erreur 503.
    2. Si le problème avec les serveurs DNS primaires ou les serveurs de noms spécifiés dans /etc/resolv.conf se produit par intermittence, les adresses IP correctes et incorrectes sont stockées par intermittence dans le cache DNS. Dans ce cas, des erreurs 503 s'affichent par intermittence pour toutes les API utilisant le serveur backend concerné.
  9. Si le problème avec les serveurs DNS persiste, vous verrez des échecs continus. Si le problème avec les serveurs DNS est intermittent, vous verrez des échecs intermittents. Autrement dit, chaque fois que le nom d'hôte du serveur backend est résolu en adresses IP incorrectes, vous observez des erreurs 503. Et lorsque les noms d'hôte du serveur backend seront résolus en adresses IP correctes, vous verrez des réponses positives.

Solution

Veuillez contacter l'administrateur de votre système d'exploitation pour résoudre les problèmes liés aux serveurs DNS.

  1. En cas de problème avec vos serveurs DNS faisant autorité ou vos serveurs de noms spécifiés dans /etc/resolv.conf, corrigez le problème avec le serveur approprié.
  2. En cas de problème de configuration dans /etc/resolv.conf sur les systèmes disposant de processeurs de messages, corrigez le problème de configuration.

Erreurs de connexion

Une erreur de connexion se produit lorsqu'un processeur de messages Apigee Edge tente de se connecter à un backend serveur et que l'un des problèmes suivants se produit:

  • Le processeur de messages ne parvient pas à se connecter pendant le délai de connexion prédéfini. (Valeur par défaut: 3 secondes)
  • Le serveur backend refuse la connexion.

Diagnostic

  1. Déterminez l'ID de message de la requête en échec.
  2. Recherchez l'ID du message de requête spécifique dans le journal du processeur de messages (/opt/apigee/var/log/edge-message-processor/logs/system.log). Vous pouvez rencontrer les erreurs suivantes: <ph type="x-smartling-placeholder">
      </ph>
    1. Une erreur onConnectTimeout indique que le processeur de messages n'a pas pu se connecter au serveur backend dans le délai d'expiration de connexion prédéfini.
      2016-06-23 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[C:]@10 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11:80 resolvedAddress=www.abc.com/11.11.11.11
      2016-06-23 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
      
    2. L'erreur java.net.ConnectException: Connection refused indique que la connexion a bien été établie. a été refusée par le serveur backend.
      14:40:16.531 +0530
      2016-06-17 09:10:16,531 org:myorg env:prod api:www.abc.com rev:1 rrt07eadn-22739-40983870-15 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to www.abc.com:11.11.11.11:443 failed with exception {}
      java.net.ConnectException: Connection refused
      at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_75]
      at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_75]
      at com.apigee.nio.ClientChannel.finishConnect(ClientChannel.java:121) ~[nio-1.0.0.jar:na]
      at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:108) ~[nio-1.0.0.jar:na]
      
  3. Vérifiez si vous êtes en mesure de vous connecter au serveur backend spécifique directement depuis chacune des Processeurs de messages à l'aide de la commande telnet: <ph type="x-smartling-placeholder">
      </ph>
    1. Si le serveur backend résout une adresse IP unique, utilisez la commande suivante:
      telnet BackendServer-IPaddress 443
                
    2. Si le serveur backend est associé à plusieurs adresses IP, utilisez le nom d'hôte de serveur backend dans la commande telnet, comme indiqué ci-dessous:
      telnet BackendServer-HostName 443
                
  4. Si vous parvenez à vous connecter au serveur backend, un message du type Connected to backend-server peut s'afficher. Si vous ne parvenez pas à vous connecter au serveur backend, cela peut être dû à car les processeurs de messages Les adresses IP ne sont pas ajoutées à la liste d'autorisation sur le backend concerné Google Cloud.

Solution

Accordez l'accès aux adresses IP du processeur de messages sur le serveur backend spécifique pour autoriser le trafic en provenance des processeurs de messages périphériques pour accéder à votre serveur backend. Par exemple, sous Linux, vous pouvez utiliser iptables pour autoriser le trafic provenant des adresses IP du processeur de messages ; sur le serveur backend.

Si le problème persiste, adressez-vous à votre administrateur réseau pour déterminer et résoudre problème. Si vous avez besoin d'une aide supplémentaire d'Apigee, contactez l'assistance Apigee.

Nom d'hôte du serveur cible incorrect

Diagnostic

Si le nom d'hôte spécifié sur le serveur cible est incorrect, vous pouvez obtenir la réponse 503 Service Unavailable avec le code d'erreur. messaging.adaptors.http.flow.ServiceUnavailable.

Outil Trace

Pour diagnostiquer à l'aide de l'outil Trace:

  1. Si le problème est toujours actif, activez la session de trace pour l'API concernée.
  2. Effectuez l'appel d'API et reproduisez le problème. 503 Service non disponible avec le code d'erreur messaging.adaptors.http.flow.ServiceUnavailable..
  3. Sélectionnez l'une des requêtes ayant échoué.
  4. Parcourez les différentes phases de la trace et localisez l'origine de l'échec.
  5. Sélectionnez le FlowInfo qui contient l'erreur. Vous trouverez peut-être des informations supplémentaires dans le champ error.cause. Elles peuvent vous indiquer la cause de l'échec, comme illustré dans l'exemple suivant:

    Exemple de requête affichant error.cause dans la trace

    Exemple de requête affichant &quot;error.cause&quot; dans la trace
  6. Si vous remarquez que error.cause affiche Hôte inaccessible, il est probable que l'erreur soit l'une des suivantes: <ph type="x-smartling-placeholder">
      </ph>
    • Le nom d'hôte spécifié dans la configuration du serveur/point de terminaison cible est incorrect, ou comporte des espaces ou des caractères spéciaux indésirables.

      Par exemple, le nom d'hôte comporte un espace indésirable, comme illustré ci-dessous:
      "demo-target.apigee.net "
                        
    • Le nom d'hôte est remplacé par la variable target.url dans le proxy d'API à l'aide de la méthode AssignMessage. La règle JavaScript est incorrecte, ou contient un espace ou tout autre caractère spécial indésirable.
  7. Vérifiez la configuration du point de terminaison cible et/ou la définition du serveur cible pour voir si le nom d'hôte du serveur cible est incorrect ou s'il contient des espaces ou des caractères spéciaux indésirables.
  8. Si l'hôte du serveur cible est créé dynamiquement, cochez la règle appropriée (AssignMessage/JavaScript, par exemple) utilisée pour le créer. Chèque à vérifiez si le nom d'hôte du serveur cible est incorrect ou contient des espaces ou des caractères spéciaux indésirables.
  9. Une fois que vous avez déterminé le nom d'hôte du serveur cible, exécutez la commande nslookup/dig sur ce nom pour voir si le problème peut être résolu.

    Par exemple, l'exécution de la commande nslookup sur le nom d'hôte avec un espace indésirable renvoie le résultat suivant:

    nslookup "demo-target.apigee.net "
    Server:	49.205.75.2
    Address:	49.205.75.2#53
    
    ** server can't find demo-target.apigee.net\032: NXDOMAIN
    
  10. Si la commande du système d'exploitation nslookup ne parvient pas non plus à résoudre le nom d'hôte, le nom d'hôte utilisé pour le serveur cible est incorrect.

    Accédez à Résolution.

Journaux du processeur de messages

Pour diagnostiquer l'utilisation des journaux du processeur de messages:

  1. Déterminez l'ID de message de la requête en échec.
  2. Recherchez l'ID du message dans le journal du processeur de messages. (/opt/apigee/var/log/edge-message-processor/logs/system.log)
  3. Si les messages d'avertissement ou d'erreur suivants s'affichent, cela signifie que le processeur de messages n'a pas pu résoudre le nom d'hôte. Comme le message sera mis en attente, il se peut que cette option ne s'affiche pas d'avertissement pour tous les ID/requêtes de message.
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 WARN S.HTTPCLIENTSERVICE - DNSCache$2.failed() : Failed to resolve hostname www.somehost.com . Reason mocktarget.apigee.net : Name or service not known. This log message will snooze for 2 hours
        
  4. Ce message est suivi d'un message d'avertissement indiquant que le processeur de messages supprime l'adresse du cache DNS, car l'hôte du serveur cible n'a pas pu être atteint.
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 WARN  c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.addressNotReachable() : The last address has been removed from Address list null refreshing
        
  5. Un message indiquant que le processeur de messages échoue avec l'exception "Host not accessible" peut alors s'afficher. Le nom d'hôte s'affiche parfois dans le message d'erreur:
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to demo-target.apigee.net  failed with exception {}
    java.lang.RuntimeException: Host not reachable
    	at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704)
    	at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675)
    	at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234)
    	…<snipped>
        
  6. Parfois, il peut afficher la valeur null, car le nom d'hôte ne peut pas être résolu ni accessible, comme indiqué ci-dessous:
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to null failed with exception {}
    java.lang.RuntimeException: Host not reachable
    	at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704)
    	at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675)
    	at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234)
    	…<snipped>
        
  7. L'erreur Host not reachable se produit généralement dans l'un des cas suivants: <ph type="x-smartling-placeholder">
      </ph>
    • Le nom d'hôte spécifié dans la configuration du serveur/point de terminaison cible est incorrect, ou comporte des espaces ou des caractères spéciaux indésirables.

      Par exemple, le nom d'hôte "demo-target.apigee.net " contient un espace indésirable. dans le message d'erreur suivant:
      NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to demo-target.apigee.net  failed with exception
              
    • Le nom d'hôte remplacé par la variable target.url dans le proxy d'API à l'aide de la règle AssignMessage ou JavaScript est incorrect, ou contient un espace ou tout autre caractère spécial indésirable.
  8. Déterminez le nom d'hôte du serveur cible avec lequel le processeur de messages tente de communiquer en utilisant l'une des méthodes suivantes:
    1. Examinez attentivement le message d'erreur contenant Host not reachable .
    2. Si le nom d'hôte s'affiche dans le message d'erreur, copiez le nom d'hôte en incluant les espaces ou les caractères spéciaux.
    3. Si le nom d'hôte affiche null dans le message d'erreur, comme illustré dans le message d'erreur suivant :
      org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to null failed with exception {}
              
      1. Déterminez le nom d'hôte en vérifiant la définition du serveur cible utilisée dans le proxy d'API défaillant.
      2. Si l'hôte du serveur cible est créé dynamiquement, vérifiez la règle appropriée (par exemple, la règle AssignMessage/JavaScript) utilisée pour le créer.
  9. Une fois que vous avez déterminé le nom d'hôte du serveur cible, exécutez la commande nslookup/dig sur le nom d'hôte, puis vérifiez si le problème peut être résolu.

    Par exemple, exécutez la commande nslookup sur le nom d'hôte qui comporte un espace

    nslookup "demo-target.apigee.net "
    Server:	49.205.75.2
    Address:	49.205.75.2#53
    
    ** server can't find demo-target.apigee.net\032: NXDOMAIN
          
  10. Si la commande nslookup du système d'exploitation ne parvient pas non plus à résoudre le nom d'hôte, le problème vient du nom d'hôte incorrect utilisé pour le serveur cible.

Solution

  1. Assurez-vous que le nom d'hôte du serveur cible spécifié dans la configuration du point de terminaison cible ou dans le serveur cible est correcte et ne comporte aucun espace ni caractère spécial superflu.
  2. Si vous utilisez une règle "AssignMessage/JavaScript" pour générer dynamiquement le nom d'hôte du serveur cible, examinez la définition de la règle et le code et assurez-vous que le nom d'hôte du serveur cible est généré correctement.

Échecs de handshake SSL

Un playbook de dépannage complet est consacré aux erreurs de handshake TLS/SSL. Consultez la page Échecs de handshake SSL.

Déterminer la source du problème

Certains types d'erreurs peuvent se produire au niveau du réseau entrant (direction nord) ou sortant (direction sud). . Une erreur entrante (limite nord) se produit entre l'application cliente et Edge. Une une erreur sortante (direction sud) se produit entre Edge et le serveur cible backend. Pour diagnostiquer votre première tâche consiste à déterminer si l'erreur se produit dans la direction nord en direction du sud.

Comprendre les connexions reliant le nord et le sud

Dans Edge, vous pouvez rencontrer une erreur 503 Service non disponible sur la connexion entrante ou sortante:

  • Connexion entrante (ou "limite nord") : connexion entre le client et le routeur Edge. Le routeur est le composant d'Apigee Edge qui gère des requêtes entrantes au système.
  • Connexion sortante (ou direction sud) : connexion entre le périphérique et le serveur backend. Le processeur de messages est un composant d'Apigee Edge qui sert de proxy pour les requêtes API vers les serveurs cibles backend.

Si vous êtes un utilisateur de cloud public Edge, vous ignorez probablement les composants internes tels que le routeur ou le processeur de messages. Ces composants internes ne sont ni visibles, ni accessibles aux Utilisateurs de cloud public. Dans la mesure du possible, nous proposons d'autres méthodes pour étudier le problème n'ont pas besoin d'un accès direct à ces composants.

La figure suivante illustre des connexions direction nord et sud pour Apigee Périphérie.

Flux de l&#39;application cliente (connexion en direction du nord) via le réseau Edge au serveur backend (connexion en direction du sud)

Déterminer où l'erreur 503 Service non disponible s'est produite

Utilisez l'une des procédures suivantes pour déterminer si l'erreur 503 Service indisponible s'est produite. au niveau de la connexion nord ou sud.

Trace UI

Pour déterminer où l'erreur s'est produite à l'aide de UI Trace, procédez comme suit:

  1. Si le problème est toujours actif, activez la trace de l'interface utilisateur pour l'API concernée.
  2. Si la trace de l'interface utilisateur de la requête API ayant échoué indique que l'erreur 503 Service indisponible se produit pendant le flux de requêtes cible ou est envoyée par le serveur backend, le problème est southbound (c'est-à-dire, entre le processeur de messages et le backend serveur).
  3. Si vous n'obtenez pas de trace pour l'appel d'API spécifique, le problème est limite nord, entre l'application cliente et le routeur.

Surveillance des API

La surveillance des API vous permet d'isoler rapidement les zones problématiques pour diagnostiquer les problèmes d'erreur, de performances, de latence et leur source, telles que les applications de développement, les mandataires d'API, les cibles de backend ou la plate-forme d'API.

Passez en revue un exemple de scénario qui montre comment résoudre les problèmes 5xx avec vos API à l'aide de l'API Monitoring. Par exemple, vous pouvez configurer une alerte pour être averti lorsque le nombre d'erreurs messaging.adaptors.http.flow.ServiceUnavailable dépasse un seuil particulier.

Journaux d'accès NGINX

Pour déterminer où l'erreur s'est produite à l'aide de UI Trace, procédez comme suit:

Si le problème s'est produit par le passé ou s'il se produit par intermittence et que vous ne pouvez pas capturer la trace, puis procédez comme suit:

  1. Vérifiez les journaux d'accès NGINX (/opt/apigee/var/log/edge-router/nginx/ org-env.port_access_log).
  2. Recherchez s'il existe des erreurs 503 pour un proxy d'API spécifique.
  3. Si vous pouvez identifier des erreurs 503 pour l'API spécifique à un moment donné, alors le le problème s'est produit au niveau de la connexion southbound (entre le processeur de messages et par le serveur backend).
  4. Si ce n'est pas le cas, le problème s'est produit au niveau de la connexion en direction du nord (entre l'application cliente et le routeur).