Utilizzo del debug

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questa sezione descrive come creare e gestire le sessioni di debug e visualizzare i dati di richiesta e risposta utilizzando l'API e la UI di Apigee.

Utilizza Debug offline per visualizzare e analizzare le sessioni di debug scaricate in precedenza.

Creazione di una sessione di debug

Quando crei una sessione di debug, puoi visualizzare i dati relativi a richieste e risposte nella UI per le richieste create nell'API o in un'altra origine esterna.

Crea una sessione di debug utilizzando l'API o la UI di Apigee, come descritto nelle sezioni seguenti.

Nuovo editor proxy

Per creare una sessione di debug nel nuovo editor proxy:

  1. Se utilizzi l'interfaccia utente di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi l'interfaccia utente di Apigee classica: seleziona Sviluppo > Proxy API e, nel riquadro proxy, seleziona l'ambiente per il proxy di cui vuoi eseguire il debug.

  2. Seleziona il proxy API di cui vuoi eseguire il debug. Viene visualizzata la vista Panoramica dell'editor proxy.

  3. Fai clic sulla scheda Debug in alto a sinistra nella finestra.
  4. Fai clic su Avvia sessione di debug in alto a destra nel riquadro Debug. Viene visualizzata la finestra di dialogo Avvia sessione di debug.

    Finestra di dialogo Avvia sessione di debug.

    Nella finestra di dialogo:

    1. Seleziona l'Ambiente in cui vuoi eseguire la sessione di debug.
    2. (Facoltativo) Dall'elenco a discesa Filtro, seleziona un filtro da applicare a tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None (All transactions), che include tutte le transazioni nei dati di debug.

      Per informazioni sull'utilizzo dei filtri, consulta Utilizzare i filtri in una sessione di debug. Per informazioni sui filtri integrati, consulta la sezione Uso dei filtri predefiniti.

    3. Fai clic su Avvia.

L'interfaccia utente di Apigee ora mostra la visualizzazione Sessione di debug in corso.

Sessione di debug in corso

La sessione di debug registra le richieste per 10 minuti dopo la creazione della sessione. Il campo Termina entro mostra la quantità di tempo restante nella sessione.

Non vedrai alcuna informazione nel riquadro Debug finché non invii una richiesta al proxy di cui esegui il debug nell'ambiente selezionato. per la sessione di debug.

Dopo averla inviata, la richiesta viene visualizzata nella parte inferiore del riquadro a sinistra.

Finestra di dialogo Avvia sessione di debug.

Nota: durante una sessione di debug attiva, puoi avviare un'altra sessione nella UI di Apigee. Per farlo, è sufficiente fare di nuovo clic su Avvia sessione di debug.

Visualizzare il grafico di Gantt per una transazione

Per visualizzare i dettagli di una transazione (richiesta e risposta) nella visualizzazione Debug, fai clic sulla riga relativa alla transazione, come mostrato nell'immagine sopra.

Nel riquadro di destra viene visualizzato un grafico di Gantt che mostra i passaggi nella richiesta e nella risposta.

Grafico di Gantt dei passaggi delle transazioni nel riquadro di destra.

L'asse orizzontale del diagramma indica i momenti in cui si è verificato ogni passaggio, misurato in millisecondi. Ogni passaggio è rappresentato da un rettangolo che si estende dall'ora di inizio a quella di fine.

Puoi eseguire i passaggi di una sessione di debug utilizzando i pulsanti Indietro e Avanti in basso a destra nel riquadro di debug. Fai clic su:

  • Indietro per spostare la riga selezionata al passaggio precedente nel grafico.
  • Avanti per spostare la riga selezionata al passaggio successivo nel grafico.

Nell'esempio sopra, il grafico mostra due criteri eseguiti nella risposta:

  • ResponsePayload
  • Aggiungi CORS

Puoi fare clic su uno di questi passaggi per visualizzarne i dettagli. Ad esempio, se hai fatto clic sul criterio Aggiungi CORS, vedrai dettagli come quelli mostrati di seguito accanto al grafico di Gantt.

Aggiungi dettagli del criterio CORS.

Se decidi di modificare qualcosa nella configurazione dei criteri, puoi fare clic su Sviluppa per passare alla visualizzazione Sviluppo, dove vedresti gli stessi due criteri nel postFlow di risposta.

Visualizzare la scheda Sviluppo in relazione a una sessione di debug.

Condividere una sessione di debug

Puoi condividere una sessione di debug con altri utenti che hanno accesso alla tua organizzazione e con le autorizzazioni necessarie. Per farlo, invia loro l'URL visualizzato nel browser quando visualizzi la sessione di debug. Il link è valido soltanto per 24 ore dalla creazione della sessione di debug.

Scaricare una sessione di debug

Al termine di una sessione di debug, puoi scaricarla in modo da poterla analizzare in un secondo momento nello strumento Debug offline. A tale scopo, fai clic su Scarica sessione nel riquadro a sinistra.

Scaricare una sessione di debug.

Tieni presente che una sessione di debug viene eliminata entro 24 ore dal completamento, quindi se vuoi visualizzare la sessione di debug dopo questo periodo, devi scaricarla prima.

Quando scarichi una sessione di debug, il nome del file di download ha il formato "debug-{session ID}.json", dove {session id} è l'ID della sessione di debug. Tuttavia, se vuoi, puoi rinominare il file.

Editor proxy classico

Per creare una sessione di debug nella versione classica dell'Editor proxy:

  1. Accedi all'interfaccia utente di Apigee.
  2. Seleziona Proxy API dalla visualizzazione principale.
  3. Seleziona il proxy API di cui vuoi eseguire il debug.

    Viene visualizzata la scheda Panoramica.

  4. Fai clic sulla scheda Debug nella parte superiore destra della pagina:

    Schede

    Nella visualizzazione Debug viene mostrato:

    Visualizzazione debug con i riquadri Avvio di una sessione di debug, Sessioni di debug recenti e Invia richieste

  5. Nel riquadro Avvia una sessione di debug:
    1. Nell'elenco a discesa Env, seleziona l'ambiente e il numero di revisione del proxy API di cui vuoi eseguire il debug.
    2. Nell'esempio seguente viene mostrato il riquadro Avvia una sessione di debug:

      Avviare un riquadro della sessione di debug

    3. (Facoltativo) Dall'elenco a discesa Filtro, seleziona un filtro da applicare a tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None, che include tutte le transazioni nei dati di debug.

      Per informazioni sull'utilizzo dei filtri, consulta Utilizzare i filtri in una sessione di debug. Per informazioni sui filtri integrati, consulta la sezione Uso dei filtri predefiniti.

    4. Fai clic su Avvia sessione di debug.

      L'interfaccia utente di Apigee ora mostra i dettagli della sessione di debug corrente, incluso il relativo ID, nel riquadro Dettagli debug.

      Anche se la UI ha creato la sessione di debug, devi comunque inviare la richiesta prima che siano disponibili dati da raccogliere.

      Dal riquadro Dettagli debug, puoi:

      Icona Funzione Descrizione
      Icona Scarica Scarica Scarica i dati di debug della sessione attiva, che potrai poi visualizzare offline.
      Icona Restituisci Restituisci il dispositivo Torna al riquadro precedente, dove puoi avviare un'altra sessione di debug. La sessione di debug attuale continua fino a quando non raggiunge il timeout o il numero di transazioni.
      Icona Elimina Eliminazione Elimina i dati della sessione di debug attualmente selezionata. Questa operazione elimina i dati della sessione, ma non le interrompe.

      Esiste un limite di timeout predefinito di 10 minuti per una sessione di debug che viene avviata nell'interfaccia utente (diverso per una sessione avviata con l'API).

      L'orologio inizia a essere in esecuzione non appena fai clic su Avvia sessione di debug, quindi puoi scegliere di attendere fino al termine del passaggio successivo prima di fare clic su Avvia sessione di debug per massimizzare la quantità di dati raccolti.

  6. Nel riquadro Invia richieste:
    1. Nel campo URL, inserisci l'endpoint a cui vuoi inviare una richiesta. Se vuoi, aggiungi i parametri della stringa di query all'URL. Non puoi inviare richieste diverse da GET.
      Come trovare l'URL dell'endpoint
      1. Vai ad Amministrazione > Ambienti > Gruppi
      2. L'URL è il Nome host del rispettivo ambiente con cui vuoi eseguire la sessione di debug.
    2. Il riquadro Richieste di invio mostra solo i dati per le richieste basate su UI. Tuttavia, tieni presente che il debug registra anche i dati per le richieste che non sono state avviate dalla UI.

    3. Fai clic su Invia.

      Apigee invia una richiesta all'URL specificato. Ogni volta che fai clic su Invia, l'interfaccia utente di Apigee registra la richiesta nel riquadro Dettagli debug.

      L'esempio seguente mostra diverse richieste riuscite (che generano un codice di stato HTTP di 200):

      Richieste di debug acquisite

      Fai clic su Copia per copiare l'ID debug per riferimenti o query futuri.

      Inoltre, l'interfaccia utente visualizza i dati di debug nelle sezioni Mappa transazioni e Dettagli fase del riquadro Invia richieste e compila le sezioni Endpoint proxy, Intestazioni delle richieste, Contenuto della richiesta e Proprietà, come mostra l'esempio seguente:

      Richieste di debug acquisite

      Per maggiori informazioni sulle fasi, sulla mappa delle transazioni e su altre sezioni della visualizzazione Invia richieste, consulta la sezione Come leggere un debug.

    Ora la sessione di debug è attiva e registra i dati di tutte le richieste (a meno che non vengano filtrate). La sessione rimarrà attiva fino al raggiungimento del timeout o al superamento del numero di richieste registrate nella sessione.

  7. Nella UI puoi creare il numero di sessioni di debug che preferisci. Per maggiori informazioni, consulta Avviare un'altra sessione di debug.

Avvio di un'altra sessione di debug nell'interfaccia utente

Durante una sessione di debug attiva, puoi avviare un'altra sessione nell'interfaccia utente di Apigee. A questo scopo, fai clic sull'icona della Freccia indietro () nel riquadro Dettagli debug:

La freccia indietro che ti riporta al riquadro Avvia una sessione di debug

La UI torna al riquadro Avvia una sessione di debug, dove puoi avviare una nuova sessione di debug.

Quando termina una sessione di debug?

Non puoi semplicemente interrompere una sessione di debug attiva. Tuttavia, puoi eliminare i dati di una sessione attiva, come descritto in Eliminazione dei dati delle sessioni di debug.

Quando crei una sessione di debug, sono due proprietà che determinano quando termina:

  • timeout:il periodo di tempo durante il quale raccogli i dati durante una sessione. La lunghezza predefinita dipende da come hai avviato la sessione (tramite la UI o l'API). Il valore massimo è 600 secondi (o 10 minuti).
  • count: il numero massimo di richieste registrate in una singola sessione per processore di messaggi. Poiché il numero di processori di messaggi nella maggior parte dei cluster è variabile, gli effetti del conteggio possono essere imprevedibili. Apigee non consiglia di personalizzare questa impostazione.

Quando viene raggiunto il timeout o il conteggio, la sessione di debug per quel processore di messaggi termina.

Per descrivere lo stato di una sessione di debug vengono utilizzati i termini seguenti:

  • sessione attiva è una sessione di debug che non ha ancora raggiunto o superato il numero di timeout. Una sessione attiva sta ancora registrando i dati per le richieste che non vengono filtrate.
  • sessione completata è una sessione di debug che ha raggiunto il proprio timeout o il numero di sessioni; una sessione completata non registra più dati sulle nuove richieste e i relativi dati vengono eliminati entro 24 ore dal termine della sessione.

Come leggere un debug

Lo strumento di debug ha due parti principali: la mappa delle transazioni e i dettagli della fase:

  • La mappa delle transazioni utilizza icone per contrassegnare ogni passaggio importante che si verifica durante una transazione proxy API, tra cui l'esecuzione dei criteri, i passaggi condizionali e le transizioni. Passa il mouse sopra qualsiasi icona per visualizzare le informazioni di riepilogo. I passaggi del flusso di richiesta vengono visualizzati nella parte superiore della mappa delle transazioni e quelli del flusso di risposta nella parte inferiore.
  • La sezione dei dettagli della fase dello strumento elenca le informazioni sull'elaborazione interna del proxy, tra cui le variabili impostate o lette, le intestazioni di richiesta e risposta e molto altro ancora. Fai clic su un'icona per visualizzare i dettagli della fase per quel passaggio.

Ecco una mappa dello strumento di debug di esempio con i segmenti principali di elaborazione proxy etichettati:

Mappa delle transazioni dello strumento di debug

Diagramma di debug che mostra Inizia richiesta proxy per avviare la richiesta di destinazione per avviare la risposta target e avviare la risposta proxy per avviare il flusso post-client del proxy

Legenda della mappa delle transazioni

La seguente tabella descrive lo scopo delle icone che vedi nella mappa delle transazioni. Queste icone contrassegnano tutti i passaggi di elaborazione importanti del flusso proxy.

Icone della mappa delle transazioni

icona app client L'app client che invia una richiesta al proxyEndpoint del proxy API.
icona endpoint di transizione I cerchi contrassegnano gli endpoint di transizione nel flusso proxy. Si trovano quando una richiesta arriva dal client, quando la richiesta va al target, quando la risposta torna dalla destinazione e quando la risposta torna al client.
icona segmento di flusso

Le barre alte indicano l'inizio di un segmento di flusso nel flusso proxy API. I segmenti di flusso sono: richiesta ProxyEndpoint, richiesta TargetEndpoint, risposta TargetEndpoint e risposta ProxyEndpoint. Un segmento include PreFlow, Flussi condizionali e PostFlow.

Per ulteriori informazioni, consulta Configurazione dei flussi.

icona Analytics

Indica che le azioni di Analytics si sono verificate in background.

icona vera condizione

Un flusso condizionale con valore true. Per un'introduzione ai flussi condizionali, consulta Configurazione dei flussi.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, questa è un'espressione che Apigee utilizza per verificare se si è verificato un errore in ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))
icona false condizione

Un flusso condizionale che restituisce false. Per un'introduzione ai flussi condizionali, consulta Configurare i flussi.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, questa è un'espressione che Apigee utilizza per verificare se si è verificato un errore in TargetEndpoint:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

icona da xml a json

icona quota

Norme. Ogni tipo di criterio ha un'icona univoca. Questo è per il criterio AttributionMessage. Queste icone ti consentono di vedere dove vengono eseguiti i criteri nell'ordine corretto e se l'esito è positivo o negativo. Puoi fare clic sull'icona di un criterio per visualizzare i risultati dell'esecuzione e se sono previsti o meno. Ad esempio, puoi vedere se il messaggio è stato trasformato correttamente o se è stato memorizzato nella cache.

La corretta esecuzione dei criteri è indicata chiaramente da segni di spunta. In caso di errore, sull'icona viene visualizzato un punto esclamativo rosso.

icona server La destinazione del backend chiamata dal proxy API.
icona millisecondi La linea temporale indica il tempo (in millisecondi) necessario per il completamento del tempo di elaborazione. Il confronto dei segmenti di tempo trascorsi consente di isolare i criteri che richiedono più tempo di esecuzione e rallentano le chiamate API.
icona epsilon Epsilon indica un intervallo di tempo inferiore a un millisecondo.
icona disattivata

Disabilitata. Viene visualizzato sull'icona di un criterio quando viene disattivato. Un criterio può essere disabilitato con l'API pubblica. Consulta la documentazione sulla configurazione del proxy API.

icona errore Errore. Viene visualizzato su un'icona del criterio quando la condizione del passaggio del criterio ha valore false (vedi Variabili e condizioni di flusso) o sull'icona del criterio RaiseFault ogni volta che viene eseguito un criterio RaiseFault.
icona saltata Ignorata. Viene visualizzato su un'icona del criterio quando il criterio non è stato eseguito perché la condizione del passaggio è valutata come falsa. Per ulteriori informazioni, consulta Variabili e condizioni di flusso.

Informazioni sui dettagli della fase

La sezione Dettagli fase dello strumento fornisce molte informazioni sullo stato del proxy in ogni fase di elaborazione. Di seguito sono riportati alcuni dettagli forniti in Dettagli fase. Fai clic su qualsiasi icona nello strumento di debug per visualizzare i dettagli del passaggio selezionato oppure utilizza i pulsanti Avanti/Indietro per passare da un passaggio all'altro.

Dettaglio fase Description
Endpoint proxy Indica quale flusso ProxyEndpoint è stato selezionato per l'esecuzione. Un proxy API può avere più endpoint proxy denominati.
Variabili

Elenca le variabili di flusso lette e a cui è stato assegnato un valore da un criterio. Consulta anche Utilizzo delle variabili di flusso.

Nota:

  • Il segno di uguale (=) indica il valore assegnato alla variabile.
  • Un segno di uguale barrato (≠) indica che non è stato possibile assegnare un valore alla variabile perché è di sola lettura oppure si è verificato un errore nell'esecuzione del criterio.
  • Un campo vuoto indica che il valore della variabile è stato letto.
Intestazioni delle richieste Elenca le intestazioni delle richieste HTTP.
Richiedi contenuti Mostra il corpo della richiesta HTTP.
Proprietà Le proprietà rappresentano lo stato interno del proxy API. Questi valori non vengono mostrati per impostazione predefinita.
Endpoint di destinazione Indica quale TargetEndpoint è stato selezionato per l'esecuzione.
Intestazioni delle risposte Elenca le intestazioni della risposta HTTP.
Contenuto della risposta Mostra il corpo della risposta HTTP.
PostClientFlow Mostra le informazioni su PostClientFlow, che viene eseguita dopo che la richiesta viene restituita all'app client richiedente. Solo i criteri MessageLogging possono essere associati a PostClientFlow. PostClientFlow viene attualmente utilizzato principalmente per misurare l'intervallo di tempo tra i timestamp di inizio e fine del messaggio di risposta.

API Apigee

Per creare una sessione di debug utilizzando l'API, invia una richiesta POST alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions

In via facoltativa, puoi:

L'esempio seguente mostra come creare una sessione di debug utilizzando l'API.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

Di seguito è riportato un esempio della risposta:

{
  "name":"56382416-c4ed-4242-6381-591bbf2788cf",
  "validity":300,
  "count":10,
  "tracesize":5120,
  "timeout":"600"
}

Le richieste successive al tuo proxy API (fino al raggiungimento della durata della sessione o del numero massimo di richieste) verranno valutate e potenzialmente archiviate nei dati della sessione di debug.

Per ulteriori informazioni, consulta Creare un'API per le sessioni di debug.

Impostazione della durata di una sessione di debug utilizzando l'API

Per impostare la durata di una sessione di debug utilizzando l'API, includi quanto segue come payload nella richiesta di creazione della sessione di debug:

{
  "timeout":"debug_session_length_in_seconds"
}

Nell'esempio seguente viene creata una sessione di debug di soli 42 secondi:

curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions"
  -X "POST" \
  -H "Authorization: Bearer $TOKEN" \
  -d ' {
    "timeout":"42"
  } '

Puoi impostare il timeout di una sessione solo nelle richieste di creazione di sessioni di debug; non puoi modificare la durata di una sessione dopo averla creata.

Il valore predefinito di timeout è 300 (5 minuti). Il valore massimo è 600 secondi (10 minuti).

Debug con lo strumento di debug

Il debug consente di visualizzare molti dettagli interni su un proxy API. Ad esempio:

  • Puoi vedere rapidamente quali criteri vengono eseguiti correttamente o con errori.
  • Supponiamo che tu abbia notato tramite una delle dashboard di Analytics che una delle tue API sta riscontrando una diminuzione insolita delle prestazioni. Ora puoi utilizzare il debug per identificare dove si verifica il collo di bottiglia. Il debug fornisce il tempo, in millisecondi, necessario per il completamento di ogni passaggio di elaborazione. Se ti accorgi che un passaggio sta richiedendo troppo tempo, puoi adottare misure correttive.
  • Puoi controllare le intestazioni inviate al backend, visualizzare le variabili impostate dai criteri e così via.
  • Se verifichi il percorso di base, puoi assicurarti che un criterio esegua il routing del messaggio al server corretto.

Filtrare i dati in una sessione di debug

Quando crei una sessione di debug, puoi aggiungere un filtro a quella sessione in modo che Apigee restituisca solo i dati che preferisci. Un filtro è un'istruzione condizionale che Apigee valuta in base ai messaggi di richiesta e risposta per determinare se i relativi dati di debug devono essere inclusi nella sessione di debug. Ad esempio, puoi filtrare tutte le richieste con un codice di risposta HTTP inferiore a 599 o confrontare i valori della richiesta con le variabili personalizzate.

Tieni presente quanto segue:

  • Le richieste non incluse in una sessione di debug perché vengono escluse non vengono conteggiate ai fini del numero massimo di transazioni nella sessione di debug.
  • Apigee non supporta l'aggiunta di filtri nella stringa di query.
  • Non puoi aggiungere un filtro a una sessione di debug dopo che la sessione è iniziata. Per aggiungere un filtro, devi creare una sessione di debug.

Utilizzo dei filtri

Utilizza un filtro quando crei una sessione di debug utilizzando l'API o la UI di Apigee, come descritto nelle sezioni seguenti.

Interfaccia utente di Apigee

Quando crei una sessione di debug nell'interfaccia utente, nell'elenco a discesa Filtri puoi scegliere un filtro predefinito da applicare nel riquadro Avvia una sessione di debug oppure scegliere Filtro personalizzato e crearne uno personalizzato con la sintassi del filtro.

API Apigee

Per creare una sessione di debug con un filtro utilizzando l'API, includi quanto segue come payload nella richiesta di creazione della sessione di debug:

{
  "filter":"filter_body"
}

Per informazioni sulla creazione dei filtri, consulta Sintassi dei filtri.

L'esempio seguente crea una sessione di debug che include solo transazioni in cui l'intestazione A è uguale a 42 e l'intestazione B è uguale a 43 oppure il codice di errore è ExpectedEOF:

curl -H "Authorization: Bearer $TOKEN" -X "POST"
  https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions
  -d ' {
    "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'"
  } '

Puoi definire un filtro solo nelle richieste di creazione di sessioni di debug; non puoi aggiungere un filtro a una sessione di debug esistente né rimuovere un filtro da una sessione di debug attiva.

Sintassi filtro

I filtri supportano la stessa sintassi utilizzata dalle condizioni di Apigee, come descritto nella sezione Riferimento alle condizioni. Include:

Inoltre, i filtri possono accedere a tutte le variabili di flusso descritte nel Riferimento alle variabili di flusso e alle variabili personalizzate. I seguenti esempi mostrano solo alcune delle possibili variabili di flusso che puoi utilizzare nei filtri:

# Response codes:
  response.status.code <= 599
  response.status.code >=301 && response.status.code <=420

# Requests/responses:
  request.verb == "GET"
  request.header.A == 'B' || request.queryparam.X == 'Y'

# Query parameters:
  request.queryparam.myparam == 'fish'
  (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z'

# Faults:
  fault.code != 'messaging.runtime.RouteFailed'
  fault.name == 'IPDeniedAccess'

Per informazioni sull'utilizzo delle variabili personalizzate, consulta Come utilizzare gli attributi personalizzati in Apigee nella community Apigee.

Filtri predefiniti dell'interfaccia utente

L'interfaccia utente di Apigee fornisce un set di filtri comuni in modo che non sia necessario scrivere filtri personalizzati. I filtri predefiniti sono riepilogati nella seguente tabella.

Nome filtro Descrizione
Response Time Greater Than

Verifica la presenza di problemi di latenza dove:

  • target.duration è la latenza target o la quantità di tempo, in millisecondi, necessaria per inviare e ricevere una richiesta dalla destinazione (calcolata come differenza tra target.received.end.timestamp e target.sent.start.timestamp)
  • client.duration è la latenza client o la quantità di tempo, in millisecondi, necessaria per inviare e ricevere una richiesta dal client (calcolata come differenza tra client.received.end.timestamp e client.sent.start.timestamp)

Ad esempio:

target.duration > 420 && client.duration > 1000

Per maggiori informazioni, consulta client e target nel riferimento sulle variabili di flusso.

Response Code

Controlla se il codice di risposta HTTP corrisponde al valore specificato, ad esempio:

response.status.code <= 599
Header

Controlla se l'intestazione della richiesta specificata corrisponde al valore specificato; ad esempio:

request.header.cache-control.1 == "16544"
Path

Verifica se la richiesta corrisponde al percorso specificato. Puoi utilizzare la corrispondenza con caratteri jolly nel valore, ad esempio:

request.path == /myproxy/customer/4*
Query Param

Controlla se il parametro di query della richiesta specificato è uguale al valore specificato, ad esempio:

request.queryparam.lang == "language:en-us"
Custom

Consente di inserire espressioni personalizzate. Puoi utilizzare qualsiasi oggetto nel riferimento alle variabili di flusso e la sintassi nel riferimento sulle condizioni. Inoltre, puoi utilizzare variabili personalizzate.

Per saperne di più sulla creazione di filtri personalizzati, consulta Sintassi dei filtri.

 

Visualizzazione delle sessioni di debug

Apigee salva i dati delle sessioni di debug per 24 ore. Non puoi configurare questo valore; dopo 24 ore i dati non saranno più disponibili. Prima di questa data, puoi visualizzare le sessioni di debug.

Visualizza le sessioni di debug recenti utilizzando l'API o la UI di Apigee, come descritto nelle sezioni seguenti.

Nuovo editor proxy

Per visualizzare le sessioni di debug utilizzando il nuovo editor proxy:

  1. Se utilizzi l'interfaccia utente di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi l'interfaccia utente di Apigee classica: seleziona Sviluppo > Proxy API e, nel riquadro proxy, seleziona l'ambiente per il proxy di cui vuoi eseguire il debug.

  2. Seleziona il proxy di cui vuoi eseguire il debug.
  3. Fai clic sulla scheda Debug.
  4. In Sessioni di debug recenti viene visualizzato un elenco delle sessioni di debug disponibili.
  5. Fai clic sul link relativo alla sessione da visualizzare.

Editor proxy classico

Per visualizzare le sessioni di debug utilizzando l'editor proxy classico:

  1. Accedi all'interfaccia utente di Apigee.
  2. Seleziona Proxy API dalla visualizzazione principale.
  3. Seleziona il proxy di cui vuoi eseguire il debug.
  4. Fai clic sulla scheda Debug in alto a destra nella visualizzazione Deployment.
  5. Nel riquadro Sessioni di debug recenti:
    1. Dall'elenco a discesa Env, seleziona l'ambiente del proxy API di cui vuoi visualizzare la sessione di debug.
    2. Nell'elenco a discesa Rev, seleziona il numero di revisione del proxy API di cui vuoi visualizzare la sessione di debug.

    La UI di Apigee mostra un elenco delle sessioni di debug disponibili.

  6. Fai clic sul link relativo alla sessione da visualizzare.

    L'interfaccia utente di Apigee carica la sessione di debug e compila il riquadro Invia richieste con i dati di debug.

Selezione delle opzioni di visualizzazione nell'interfaccia utente

Nella UI di Apigee, puoi scegliere le opzioni di visualizzazione per la sessione di debug.

visualizza elenco opzioni

Opzione Description
Mostra criteri disattivati Mostra tutti i criteri disattivati. Un criterio può essere disabilitato con l'API pubblica. Consulta la pagina Riferimento per la configurazione del proxy API.
Mostra fasi ignorate Mostra le fasi che sono state ignorate. Una fase saltata si verifica quando il criterio non è stato eseguito perché la condizione del passaggio è valutata come falsa. Per ulteriori informazioni, consulta Condizioni con variabili di flusso.
Mostra tutte le FlowInfo Rappresentare le transizioni all'interno di un segmento di flusso.
Confronta automaticamente la fase selezionata Confronta la fase selezionata con quella precedente. Disattiva questa opzione per visualizzare solo la fase selezionata.
Mostra variabili Mostra o nascondi le variabili lette e/o a cui è stato assegnato un valore.
Mostra proprietà Le proprietà rappresentano lo stato interno del proxy API. (Nascosto per impostazione predefinita).

API Apigee

L'API consente di:

Visualizzare tutte le sessioni di debug utilizzando l'API

Per visualizzare tutte le sessioni di debug recenti definite per una revisione del proxy API in un ambiente, invia una richiesta GET alla risorsa seguente:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions

Facoltativamente, puoi specificare uno dei seguenti parametri di ricerca per controllare la quantità di dati restituiti:

  • pageSize: il numero massimo di sessioni di debug da elencare. Le dimensioni predefinite delle pagine sono 25.
  • pageToken: token pagina, restituito da una chiamata precedente, che puoi utilizzare per recuperare la pagina successiva.

L'esempio seguente mostra come visualizzare le sessioni di debug per la revisione 1 del proxy API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

La risposta include un oggetto sessions che contiene un elenco di sessioni di debug attualmente attive, come mostrato nell'esempio seguente:

{
  "sessions": [
    {
      "id": "a423ac73-0902-4cfa-4242-87a353a84d87",
      "timestamp_ms": 1566330186000
    },
    {
      "id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a",
      "timestamp_ms": 1566330286000
    }
  ]
}

Nella risposta vengono incluse solo le sessioni di debug che contengono almeno una transazione. Le sessioni di debug che non contengono transazioni non sono incluse in questo elenco.

Per ulteriori informazioni, consulta Elenco API sessioni di debug.

Visualizzare tutte le transazioni per una sessione di debug utilizzando l'API

Per visualizzare un elenco delle transazioni per una sessione di debug, invia una richiesta GET alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

Dove debugsession è l'ID di una sessione di debug restituita quando vengono visualizzate le sessioni di debug.

L'esempio seguente mostra come visualizzare le transazioni di una sessione di debug per la revisione 1 dell'API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

La risposta include un array di ID transazione, come mostrato nell'esempio seguente:

[
  "myorg-test-ver-5qxdb-64",
  "myorg-test-ver-5qxdb-65",
  "myorg-test-ver-5qxdb-66",
  "myorg-test-ver-5qxdb-67",
  "myorg-test-ver-5qxdb-68",
  "myorg-test-ver-5qxdb-69",
  "myorg-test-ver-5qxdb-70",
  "myorg-test-ver-5qxdb-71",
  "myorg-test-ver-5qxdb-72"
]

Per saperne di più, consulta Elenco dell'API di dati della sessione di debug.

Visualizzazione dei dati delle transazioni per una sessione di debug utilizzando l'API

Per visualizzare i dati delle transazioni per una sessione di debug, invia una richiesta GET alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}

Dove debugsession è l'ID di una sessione di debug restituita quando Visualizzi le sessioni di debug e transactionId è l'ID transazione restituito quando Visualizzi un elenco di transazioni per una sessione di debug.

I dati delle transazioni salvati durante una sessione di debug sono formattati in formato JSON. Puoi caricare questi dati nello strumento di debug offline.

L'esempio seguente mostra come scaricare i dati delle transazioni per una sessione di debug per la revisione 1 dell'API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

La risposta consiste in un payload JSON contenente i dati per la transazione specificata, come descritto in Scaricare la struttura dei dati.

I dati di debug contengono tutte le informazioni sulla richiesta e sulla risposta per ogni parte del flusso in un formato JSON proprietario. Puoi salvare questi dati e utilizzarli in un secondo momento nello strumento di debug offline.

Se prima del termine non è stata aggiunta alcuna richiesta alla sessione, la risposta sarà simile alla seguente:

[]

Per ulteriori informazioni, consulta Ottenere l'API di dati della sessione di debug.

Download dei dati della sessione di debug

Puoi scaricare un file di risultati non elaborati del debug per la visualizzazione offline. Il file scaricato mostra i dettagli completi della sessione di debug, inclusi i contenuti di tutte le intestazioni, le variabili e i criteri.

I dati delle sessioni di debug possono essere scaricati o visualizzati nell'interfaccia utente solo per 24 ore. Dopodiché, Apigee elimina i dati della sessione.

Nuovo editor proxy

Per scaricare la sessione di debug corrente nel nuovo editor proxy, fai clic su Download Session (Sessione di download) nel riquadro a sinistra della visualizzazione Debug.

Scaricare una sessione di debug.

Tieni presente che una sessione di debug viene eliminata entro 24 ore dal completamento, quindi se vuoi visualizzare la sessione di debug dopo questo periodo, devi scaricarla prima.

Editor proxy classico

Per scaricare i dati della sessione di debug corrente utilizzando l'editor proxy classico:

  • Sessione attiva: fai clic sull'icona di download (Icona Scarica) nel riquadro Dettagli debug.
  • Sessione precedente: fai clic sul nome della sessione nel riquadro Sessioni di debug recenti, come descritto in Visualizzazione delle sessioni di debug. Poi fai clic su Icona Scarica nel riquadro Dettagli debug.

API Apigee

Per visualizzare gli ID di tutte le transazioni per la sessione di debug corrente utilizzando l'API Apigee, inserisci questo comando:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data

dove SESSION_ID è l'ID della sessione di debug che vuoi scaricare.

Consulta l'articolo Elenco degli ID transazione di una sessione di debug.

Per ottenere i dati di debug per una transazione utilizzando l'API Apigee, inserisci il seguente comando:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID

Scarica la struttura dei dati

La struttura di download dei dati della sessione di debug è diversa per l'interfaccia utente di Apigee e l'API Apigee.

Interfaccia utente di Apigee

Quando scarichi i dati utilizzando l'interfaccia utente di Apigee, la struttura dei dati:

  • Include tutte le transazioni dell'intera sessione
  • Archivia le transazioni in un array Messages
  • Include metadati sulla sessione (come oggetto DebugSession)

API Apigee

Non puoi utilizzare l'API Apigee per visualizzare i dati di un'intera sessione in una sola volta; puoi utilizzare l'API solo per visualizzare dati di transazioni individuali, come descritto in Visualizzazione di sessioni di debug.

Ad esempio:

{
  "completed": true,
  "point": [
    ...
  ...
}

Scarica esempi di dati

L'esempio seguente evidenzia un oggetto di metadati DebugSession nei dati scaricati. Questo oggetto è seguito dall'array Messages che contiene le transazioni nella sessione.

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": [
    {
      "completed": true,
      "point": [
        {
          "id": "Paused"
        },
        {
          "id": "Resumed"
        },
        {
          "id": "StateChange",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "To",
                    "value": "REQ_HEADERS_PARSED"
                  },
                  {
                    "name": "From",
                    "value": "REQ_START"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            },
            {
              "ActionResult": "RequestMessage",
              "headers": [
                {
                  "name": "accept",
                  "value": "*/*"
                },
                {
                  "name": "accept-encoding",
                  "value": "gzip,gzip,deflate,br"
                },
                {
                  "name": "content-length",
                  "value": "0"
                },
                {
                  "name": "host",
                  "value": "myorg.example.domain.net"
                },
                {
                  "name": "user-agent",
                  "value": "Google-Apigee"
                },
                {
                  "name": "x-b3-sampled",
                  "value": "0"
                },
                {
                  "name": "x-b3-spanid",
                  "value": "d4ee579206759662"
                },
                {
                  "name": "x-b3-traceid",
                  "value": "adc1e171777c237dd4ee579206759662"
                },
                {
                  "name": "x-forwarded-for",
                  "value": "66.102.8.98"
                },
                {
                  "name": "x-forwarded-proto",
                  "value": "https"
                },
                {
                  "name": "x-request-id",
                  "value": "54e05cba-4242-4490-4242-60c45c156f90"
                }
              ],
              "uRI": "/myproxy",
              "verb": "GET"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "environment.name",
                    "value": "prod"
                  },
                  {
                    "name": "environment.qualifiedname",
                    "value": "myorg__prod"
                  },
                  {
                    "name": "environment.orgname",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "organization.name",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "apiproxy.qualifiedname",
                    "value": "myproxy__1"
                  },
                  {
                    "name": "apiproxy.basepath",
                    "value": "/"
                  },
                  {
                    "name": "apiproxy.revision",
                    "value": "1"
                  },
                  {
                    "name": "apiproxy.name",
                    "value": "myproxy"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        ...
      ...
    }
  ]
}

Se la sessione di debug non ha incluso alcuna richiesta, l'array Message è vuoto, come mostra l'esempio seguente:

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": []
}

Eliminazione dei dati per una sessione di debug

Elimina i dati per una sessione di debug utilizzando l'API o la UI di Apigee, come descritto nelle sezioni seguenti.

Nuovo editor proxy

Per eliminare una sessione di debug nel nuovo editor proxy:

  1. Seleziona la riga relativa alla sessione da eliminare.
  2. Fai clic sul menu con tre puntini alla fine della riga e seleziona Elimina.

Editor proxy classico

Fai clic su Icona Elimina nel riquadro Dettagli debug per la sessione di debug.

API Apigee

Per eliminare tutti i dati della sessione di debug utilizzando l'API, invia una richiesta DELETE alla seguente risorsa:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

Dove debugsession è l'ID di una sessione di debug restituita quando vengono visualizzate le sessioni di debug.

L'esempio seguente mostra come eliminare i dati della sessione di debug per la revisione 1 dell'API helloworld nell'ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

In caso di esito positivo, il corpo della risposta sarà vuoto.

I dati della sessione di debug rimangono memorizzati in modo permanente solo per 24 ore. Se non lo elimini esplicitamente prima di questo orario, Apigee lo elimina automaticamente.