Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Sintomo
L'immagine seguente mostra che le richieste API non vengono acquisite nella UI Edge quando viene avviata una sessione di traccia:
Messaggio di errore
Quando si verifica questo problema, nella UI di Edge non verrà visualizzato nessun messaggio di errore.
Possibili cause
La tabella seguente mostra le possibili cause di un errore di acquisizione delle richieste API in Edge UI Trace:
Causa | Descrizione | Istruzioni per la risoluzione dei problemi applicabili per |
---|---|---|
Richieste non elaborate dal processore di messaggi | Per poter acquisire la traccia, le richieste API devono essere elaborate dal processore di messaggi dei componenti di Edge. Se una richiesta API non riesce a raggiungere Apigee Edge, si verifica un errore nel punto di ingresso a Edge (ad esempio router) o non riesce prima di essere elaborato dal processore di messaggi, la traccia non può essere acquisita. | Utenti perimetrali di cloud pubblici e privati |
Proxy API non trovato nell'albero di classificazione | I processori di messaggi Apigee utilizzano una definizione di regola di routing denominata Albero di classificazione per inviare le richieste in base a nome host, percorso di base, revisione e ambiente della richiesta in entrata. Se per qualche motivo il proxy API pertinente viene rimosso dall'albero di classificazione, le transazioni di traccia potrebbero non essere completate. | Utenti Edge Private Cloud |
Causa: richieste non elaborate dal processore di messaggi
Diagnosi
Per acquisire una richiesta API in una sessione di Trace, questa deve essere elaborata dal componente di elaborazione di messaggi di Edge. Esistono diversi motivi per cui una richiesta API potrebbe non essere acquisita in una transazione Trace.
Ad esempio, se una richiesta API non riesce a raggiungere Apigee Edge, ha esito negativo nel punto di ingresso a Edge (ovvero router) o non riesce prima di essere elaborato dal processore di messaggi, la traccia non può essere acquisita. Ciascuno di questi scenari è descritto più dettagliatamente di seguito.
Scenario 1: le richieste non raggiungono Apigee Edge
Causa
In questo scenario, l'errore potrebbe essere causato da un problema di risoluzione DNS o di connettività di rete. In questo caso, potresti visualizzare il seguente errore durante l'esecuzione di questo comando:
curl https://hostName:port/apiProxyBasePath/requestPath
curl: (6) Could not resolve host: hostName
Risoluzione
Puoi verificare la configurazione DNS con il seguente comando:
dig hostName
Puoi verificare la connettività di rete con il seguente comando:
telnet hostName port
Scenario 2: richieste non riuscite sul router Apigee Edge
Causa
In questo scenario, l'errore può essere causato da un errore dell'handshake TLS/SSL. In questo caso, potresti visualizzare uno dei seguenti errori:
Received fatal alert: handshake_failure
HTTP/1.1 400 Bad Request
Potresti anche visualizzare un errore relativo al certificato SSL.
Risoluzione
Per risolvere questi problemi, consulta i seguenti playbook:
Scenario 3: le richieste non possono essere elaborate dal processore di messaggi
Causa
In questo scenario, il processore di messaggi Apigee non riesce a trovare il proxy API per l'host virtuale e il percorso specificati. Di conseguenza, potresti vedere uno dei seguenti i seguenti errori:
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" } } }
Risoluzione
Per risolvere e risolvere il problema, fai riferimento a questo playbook: 404 missing to unlock proxy for host (Impossibile identificare il proxy per l'host).
Causa: proxy API non trovato nell'albero di classificazione
Diagnosi
Se un processore di messaggi non riesce a trovare un proxy API nell'albero di classificazione, le richieste API inviate a quel proxy specifico non verranno mostrate nelle sessioni di traccia dell'interfaccia utente di Edge.
Per determinare se è il tuo caso:
Accedi a ciascuno dei processori di messaggi e verifica che il deployment della revisione specifica dell'API richiesta sia stato eseguito nell'ambiente pertinente del processore di messaggi utilizzando il seguente comando:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Output di esempio:
Il comando riportato sopra restituirà un elenco delle revisioni di cui è stato eseguito il deployment. Ad esempio, se viene eseguito il deployment della revisione 12, vedrai l'output seguente:
[ "12" ]
A meno che non si verifichino errori HTTP 404 intermittenti, probabilmente noterai che è stato eseguito il deployment della revisione specifica.
Leggi l'albero di classificazione e verifica l'esistenza del nome del proxy API utilizzando il seguente comando:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
Ripeti i passaggi 1 e 2 per ciascun processore di messaggi. Se il nome proxy API fornito non è presente nell'albero di classificazione di uno dei processori di messaggi, segui la risoluzione fornita di seguito.
Risoluzione
Per risolvere il problema, procedi nel seguente modo. Assicurati di prendere tutte le precauzioni necessarie per evitare interruzioni della produzione che possono verificarsi dopo il riavvio dei processori di messaggi durante il caricamento di richieste elevate.
Accedi a ciascuno degli host dell'elaboratore di messaggi a cui manca il proxy API specifico nell'albero di classificazione e utilizza il comando seguente per riavviare il processore di messaggi:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Dopo il riavvio, utilizza il comando seguente per attendere che diventi attivo:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
Quando il processore di messaggi è pronto, verifica la disponibilità del proxy API utilizzando il seguente comando:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Output di esempio:
Il comando riportato sopra restituirà un elenco delle revisioni di cui è stato eseguito il deployment. Ad esempio, se viene eseguito il deployment della revisione 12, vedrai l'output seguente:
[ "12" ]
A meno che non si verifichino errori HTTP 404 intermittenti, probabilmente noterai che è stato eseguito il deployment della revisione specifica.
Leggi l'albero di classificazione e verifica l'esistenza del nome del proxy API utilizzando il seguente comando:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
Se il problema persiste, vai alla pagina Raccogliere dati diagnostici.
Raccogliere informazioni diagnostiche
Se il problema persiste dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni diagnostiche e condividile con il supporto Apigee Edge:
Informazioni di diagnostica Tipo | Comando |
---|---|
Output del comando di sessione traccia | curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user |
Log del server di gestione | /opt/apigee/var/log/edge-management-server/logs/system.log |
Log del elaboratore dei messaggi | /opt/apigee/var/log/edge-message-processor/logs/system.log |
Output dei comandi telnet /netcat dal server di gestione al processore di messaggi |
telnet MessageProcessor_IP 8082 nc -vz MessageProcessor_IP 8082 |
Output del comando netstat sui processori di messaggi | netstat -an > netstat.txt |
Elenco di output delle revisioni implementate per lo specifico proxy API su tutti i processori di messaggi | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
Output dell'albero di classificazione su tutti i processori di messaggi | curl -i http://localhost:8082/v1/classification/tree |