Utilizzo del debug

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

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

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

Creazione di una sessione di debug

Quando crei una sessione di debug, puoi visualizzare i dati di richiesta e risposta nell'interfaccia utente per richieste create nell'API o in un'altra origine esterna.

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

Nuovo editor proxy

Per creare una sessione di debug nel nuovo editor proxy:

  1. Se utilizzi la UI di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi la UI di Apigee classica: seleziona Sviluppa > 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 visualizzato l'Editor proxy Visualizzazione Panoramica.

  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. Questo mostra 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) Nell'elenco a discesa Filtro, seleziona un filtro a cui applicare tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None (All transactions) e 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, vedi Utilizzo dei filtri predefiniti.

    3. Fai clic su Avvia.

Nella UI di Apigee viene ora visualizzata la vista 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. La Il campo Termina entro mostra la quantità di tempo restante nella sessione.

Nessuna informazione viene visualizzata nel riquadro Debug finché non invii una richiesta al proxy di cui stai eseguendo il debug nell'ambiente selezionato. per la sessione di debug.

Una volta inviata, la richiesta verrà visualizzata nella parte inferiore del riquadro di 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 vista Debug, fai clic sull'icona relativa alla transazione, come mostrato nell'immagine sopra.

Viene visualizzata una Diagramma di Gantt nel riquadro a destra che mostra i passaggi della richiesta e della risposta.

Grafico di Gantt dei passaggi della transazione nel riquadro a destra.

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

Puoi seguire una sessione di debug utilizzando i pulsanti Indietro e Avanti nella 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 mostrato sopra, il grafico mostra due criteri che vengono eseguiti nella risposta:

  • ResponsePayload
  • Aggiungi CORS

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

Aggiungi i dettagli dei criteri CORS.

Se poi decidi di modificare qualcosa nella configurazione dei criteri, puoi quindi fare clic su Sviluppo per passare alla vista Sviluppo, dove puoi vedere gli stessi due criteri nel Response PostFlow.

Visualizzazione della 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 le autorizzazioni necessarie. Per farlo, invia loro l'URL visualizzato nel tuo browser. quando visualizzi la sessione di debug. Il link è valido solo per 24 ore dopo viene creata la sessione di debug.

Scaricare una sessione di debug

Una volta completata una sessione di debug, puoi scaricarla per analizzarla in un secondo momento nello strumento Debug offline. A fai clic su Download Session (Scarica sessione) nel riquadro di sinistra.

Scaricare una sessione di debug.

Tieni presente che una sessione di debug viene eliminata entro 24 ore dal suo completamento, pertanto se Se vuoi visualizzare la sessione di debug al termine di questo periodo, devi scaricarla prima di allora.

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'UI di Apigee.
  2. Seleziona Proxy API dalla vista principale.
  3. Seleziona il proxy API di cui vuoi eseguire il debug.

    Viene visualizzata la scheda Panoramica.

  4. Fai clic sulla scheda Debug in alto a destra nella pagina:

    Schede

    Viene visualizzata la vista Debug:

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

  5. Nel riquadro Avvia una sessione di debug:
      .
    1. Dall'elenco a discesa Env (Ambiente), seleziona l'ambiente + 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:

      Avvia un riquadro della sessione di debug

    3. (Facoltativo) Nell'elenco a discesa Filtro, seleziona un filtro a cui applicare tutte le transazioni nella sessione di debug che stai creando. Il valore predefinito è None e 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, vedi Utilizzo dei filtri predefiniti.

    4. Fai clic su Start Debug Session (Avvia sessione di debug).

      La UI di Apigee ora mostra i dettagli della sessione di debug corrente, incluso il relativo ID, in nel riquadro Dettagli debug.

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

      Nel riquadro Dettagli debug puoi effettuare le seguenti operazioni:

      Icona Funzione Descrizione
      Icona di download Scarica Scarica i dati di debug della sessione attiva, che potrai poi visualizza offline.
      Icona per la restituzione Restituisci il dispositivo Torna al riquadro precedente, dove puoi avviare un'altra sessione di debug. La la sessione di debug corrente continua fino a raggiungere il timeout o la transazione conteggio.
      Icona Elimina Elimina Elimina i dati della sessione di debug attualmente selezionata. Questa operazione elimina i dati ma non interrompe le sessioni.

      Esiste un limite di timeout predefinito di 10 minuti per una sessione di debug che avvii l'interfaccia utente (è diversa per una sessione avviata con l'API).

      L'orologio inizia esecuzione non appena fai clic su Avvia sessione di debug, in modo da poter scegliere attendere fino al passaggio successivo prima di fare clic su Avvia sessione di debug per 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 a. Facoltativamente, aggiungi i parametri della stringa di query all'URL. Non puoi inviare richieste diverso da GET.
      Come trovare l'URL dell'endpoint
      1. Vai ad Amministrazione > Ambienti > Gruppi
      2. L'URL è il nome host del rispettivo ambiente che vuoi eseguire la sessione di debug.
    2. Il riquadro Invia richieste mostra solo i dati per basati sull'interfaccia utente richieste. Tieni presente, tuttavia, che il debug registra anche i dati relativi alle richieste non avviate. dall'interfaccia utente.

    3. Fai clic su Invia.

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

      L'esempio seguente mostra diverse richieste riuscite (con conseguente stato HTTP) codice di 200):

      Richieste di debug acquisite

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

      Inoltre, l'interfaccia utente mostra i dati di debug nella mappa delle transazioni e nei dettagli della fase. del riquadro Invia richieste e compila l'endpoint proxy, Sezioni Intestazioni della richiesta, Contenuto della richiesta e Proprietà, come nell'esempio seguente mostra:

      Richieste di debug acquisite

      Per ulteriori informazioni sulle fasi, la mappa delle transazioni e altre sezioni del visualizzazione Send Request (Invia richieste), vedi Come leggere un debug.

    La sessione di debug ora è attiva e registra i dati su tutte le richieste (a meno che non siano esclusi). La sessione rimarrà attiva fino al raggiungimento del timeout o fino al raggiungimento di richieste registrate durante la sessione è stato superato.

  7. Puoi creare il numero desiderato di sessioni di debug nella UI. Per ulteriori informazioni, vedi Avvio di 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 nella UI di Apigee. Per farlo, fai clic sull'icona della freccia indietro () in Dettagli debug riquadro:

Freccia indietro che riporta al riquadro Avvia una sessione di debug

L'interfaccia utente torna al riquadro Avvia una sessione di debug, in cui puoi avviare una nuova sessione di debug.

Quando termina una sessione di debug?

Non puoi semplicemente interrompere una sessione di debug attiva. Puoi però eliminare i dati di una sessione attiva, descritta in Eliminazione dei dati della sessione di debug.

Quando crei una sessione di debug, due proprietà determinano il momento in cui termina:

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

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

I seguenti termini vengono utilizzati per descrivere lo stato di una sessione di debug:

  • La sessione attiva è una sessione di debug che non ha ancora raggiunto il timeout o non è stato superato il suo conteggio. Una sessione attiva sta ancora registrando i dati delle richieste non filtrate fuori.
  • sessione completata è una sessione di debug che ha raggiunto il timeout o è stato superato il suo conteggio; una sessione completata non registra più i dati relativi alle nuove richieste e i relativi dati vengono eliminati entro 24 ore dal termine della sessione.

Come leggere un debug

Lo strumento di debug è costituito da due parti principali, la mappa delle transazioni e i dettagli delle fasi:

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

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

Mappa transazioni dello strumento di debug

Diagramma di debug che mostra l'inizio della richiesta proxy per iniziare la richiesta target e l'inizio del target 
          risposta per avviare la risposta del proxy per iniziare il flusso post-client del proxy

Mappa transazioni legenda

La seguente tabella descrive lo scopo delle icone che vedrai nella transazione mappa. Queste icone contrassegnano ciascuno dei passaggi di elaborazione più importanti nell'intero flusso di 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 indicano gli endpoint di transizione nel flusso proxy. Sono disponibili quando la richiesta proviene dal client, quando la richiesta arriva al target, quando la risposta torna indietro dal target e quando la risposta arriva al client.
icona segmento di flusso

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

Consulta Configurazione dei flussi per ulteriori informazioni.

icona Analytics

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

icona condizione true

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

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, di seguito è riportato un utilizzata da Apigee per verificare se si è verificato un errore nella ProxyEndpoint:

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

Un flusso condizionale che restituisce un valore false. Per un'introduzione alle consulta Configurazione dei flussi.

Tieni presente che alcune condizioni sono generate da Apigee. Ad esempio, di seguito è riportato un utilizzata da Apigee per verificare se si è verificato un errore nella Endpoint di destinazione:

(((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. Questa è perAssignMessage . Queste icone ti consentono di vedere dove le norme vengono eseguite nell'ordine corretto e se hanno successo o meno. Puoi fare clic sull'icona di una norma per visualizzarne i risultati e se sono previste o meno. Ad esempio, puoi vedere se il messaggio è stato trasformate correttamente o se vengono memorizzate nella cache.

La corretta applicazione dei criteri è chiaramente indicata segni di spunta. In caso di errore, viene visualizzato un punto esclamativo rosso sulla .

icona server La destinazione backend richiamata dal proxy API.
icona millisecondi La linea di tempo indica il tempo (in millisecondi) impiegato dal tempo di elaborazione completato. Il confronto dei segmenti di tempo trascorso aiuta a isolare i criteri che impiegano più tempo per l'esecuzione, che rallentano le chiamate API.
icona epsilon L'epsilon indica un intervallo di tempo inferiore a un millisecondo.
icona disattivata

Disabilitata. Viene visualizzata sull'icona di un criterio quando un criterio viene disattivato. Un criterio può essere disattivato con l'API pubblica. Consulta Riferimento per la configurazione dei proxy API.

icona di errore Errore. Viene visualizzata su un'icona del criterio quando la condizione del passaggio della norma è false (consulta Variabili e condizioni di flusso), o sull'icona del criterio RaiseFault ogni volta che viene eseguito un criterio RaiseFault.
icona saltata Ignorata. Viene visualizzata su un'icona del criterio quando il criterio non è stato eseguito perché il passaggio condizione valutata su false. Consulta Variabili e condizioni di flusso per ulteriori informazioni.

Comprensione i dettagli della fase

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

Dettagli della fase Descrizione
Endpoint proxy Indica il flusso ProxyEndpoint selezionato per l'esecuzione. Un proxy API può avere più endpoint proxy denominati.
Variabili

Elenca le variabili di flusso che sono state lette e a cui è stato assegnato un valore da un criterio. Vedi anche sull'utilizzo delle variabili di flusso.

Nota:

  • Un segno di uguale (=) indica il valore assegnato alla variabile.
  • Un segno di uguale barrato (≠) indica che non è stato possibile assegnare alla variabile un perché è di sola lettura o 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 della richiesta HTTP.
Richiedi contenuti Mostra il corpo della richiesta HTTP.
Proprietà Le proprietà rappresentano lo stato interno del proxy API. Questi non vengono mostrati da predefinito.
Endpoint di destinazione Indica quale TargetEndpoint è stato selezionato per l'esecuzione.
Intestazioni delle risposte Elenca le intestazioni delle risposte HTTP.
Contenuto della risposta Mostra il corpo della risposta HTTP.
PostClientFlow Mostra le informazioni su PostClientFlow, che viene eseguito dopo che la richiesta è all'app client richiedente. Solo i criteri MessageLogging possono essere collegati PostClientFlow. PostClientFlow viene attualmente utilizzato principalmente per misurare il tempo l'intervallo tra i timestamp di inizio e di fine del messaggio di risposta.

API Apigee

Per creare una sessione di debug utilizzando l'API, invia una richiesta POST a questo indirizzo 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 tuo 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, vedi Con curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito un esempio della risposta:

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

Richieste successive al proxy API (fino alla durata della sessione o al numero massimo di richieste) ) verranno valutati e potenzialmente archiviati nei dati della sessione di debug.

Per ulteriori informazioni, consulta la sezione Creazione dell'API della sessione di debug.

Impostare la 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 nel debug richiesta di creazione sessione:

{
  "timeout":"debug_session_length_in_seconds"
}

L'esempio seguente crea 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 valore 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 a colpo d'occhio quali criteri vengono eseguiti correttamente o non funzionano.
  • Supponiamo che tu abbia notato in una delle dashboard di Analytics che una delle tue API aver riscontrato una riduzione insolita delle prestazioni. Ora puoi utilizzare Debug per identificare si sta verificando il collo di bottiglia. Il debug fornisce il tempo, in millisecondi, necessario per ogni fase di elaborazione. Se noti che un passo sta richiedendo troppo tempo, puoi adottare un'azione.
  • Puoi controllare le intestazioni che vengono inviate al backend, visualizzare le variabili impostate in base ai criteri e così via.
  • Verificando il percorso di base, puoi assicurarti che un criterio stia instradando il messaggio alla il server corretto.

Filtrare i dati in una sessione di debug

Quando crei una sessione di debug, puoi aggiungere un filtro alla sessione in modo che Apigee restituisca solo i dati che vuoi. 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 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é sono escluse non vengono conteggiate rispetto al 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 l'avvio della sessione. Per aggiungere un filtro: deve creare una sessione di debug.

Utilizzo dei filtri

Utilizza un filtro quando crei una sessione di debug con la UI o l'API 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 una sessione di debug predefinita da applicare nel riquadro Avvia una sessione di debug o scegli Filtro personalizzato e creane 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 sessione di debug richiesta di creazione:

{
  "filter":"filter_body"
}

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

L'esempio seguente crea una sessione di debug che include solo le 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 è possibile aggiungere un filtro sessione di debug esistente e non puoi rimuovere un filtro da una sessione di debug attiva.

Sintassi filtro

I filtri supportano la stessa sintassi utilizzata dalle condizioni Apigee, come descritto in Riferimento alle condizioni. tra cui:

Inoltre, i filtri possono accedere a tutte le variabili di flusso descritte in Riferimento per le variabili di flusso e le variabili personalizzate. I seguenti esempi mostrano solo alcuni le 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'uso delle variabili personalizzate, consulta Come utilizzare gli attributi personalizzati in Apigee nella community Apigee.

Filtri predefiniti dell'interfaccia utente

La UI di Apigee offre una serie di filtri comuni per permetterti di non dover e scrivere filtri personalizzati. I filtri predefiniti sono riepilogati nella seguente tabella.

Nome filtro Descrizione
Response Time Greater Than

Controlla la presenza di problemi di latenza in cui:

  • target.duration è la latenza target, ovvero la quantità di tempo, in millisecondi, necessari per inviare una richiesta ricevuto dal target (calcolato come differenza target.received.end.timestamp e target.sent.start.timestamp)
  • client.duration è la latenza del client, ovvero la quantità di tempo, in millisecondi, necessari per inviare e ricevere una richiesta dal client (calcolato come differenza tra client.received.end.timestamp e client.sent.start.timestamp)

Ad esempio:

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

Per ulteriori informazioni, vedi client e target nel Riferimento per le 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 è uguale al valore specificato. della esempio:

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

Controlla se la richiesta corrisponde al percorso specificato. Puoi utilizzare la corrispondenza con caratteri jolly valore; Ad esempio:

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

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

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

Consente di inserire espressioni personalizzate. Puoi utilizzare qualsiasi oggetto Riferimento per le variabili di flusso e la sintassi in Riferimento condizioni. Inoltre, puoi utilizzare le variabili personalizzate.

Per ulteriori informazioni sulla creazione di filtri personalizzati, consulta Sintassi del filtro.

 

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 la UI o l'API Apigee, come descritto nelle sezioni seguenti.

Nuovo editor proxy

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

  1. Se utilizzi la UI di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi la UI di Apigee classica: seleziona Sviluppa > 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 di sessioni di debug disponibili.
  5. Fai clic sul link relativo alla sessione che vuoi visualizzare.

Editor proxy classico

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

  1. Accedi all'UI di Apigee.
  2. Seleziona Proxy API dalla vista principale.
  3. Seleziona il proxy di cui vuoi eseguire il debug.
  4. Fai clic sulla scheda Debug in alto a destra in Deployment vista.
  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. Dall'elenco a discesa Rev, seleziona il numero di revisione dell'API proxy 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 che vuoi visualizzare.

    La UI di Apigee carica la sessione di debug e compila la sezione 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 Descrizione
Mostra norme disattivate Mostra i criteri disattivati. Un criterio può essere disabilitato con l'API pubblica. Consulta Riferimento per la configurazione dei proxy API.
Mostra fasi ignorate Mostra le fasi ignorate. Si verifica una fase saltata quando il criterio non è stato eseguito perché la condizione del passaggio è stata valutata come false. Consulta Condizioni con variabili di flusso per ulteriori informazioni.
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 vedere solo le selezioni durante la fase di sviluppo.
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

Con l'API puoi:

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 seguente risorsa:

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 restituito:

  • pageSize: il numero massimo di sessioni di debug da elencare. Le dimensioni predefinite della pagina 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 tuo 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, vedi Con curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

La risposta include un oggetto sessions che contiene un elenco di sessioni di debug 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 sono incluse solo le sessioni di debug che contengono almeno una transazione. eseguire il debug Le sessioni senza transazioni non sono incluse in questo elenco.

Per ulteriori informazioni, consulta l'articolo sull'API delle sessioni di debug.

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

Per visualizzare un elenco di 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 restituito quando visualizzi le sessioni di debug.

L'esempio seguente mostra come visualizzare le 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" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul tuo 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, vedi Con curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le 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 ulteriori informazioni, consulta Elenco di 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 restituito quando visualizzi le sessioni di debug e transactionId è il ID transazione restituito quando Visualizza un elenco di transazioni per una sessione di debug.

I dati delle transazioni salvati durante una sessione di debug sono formattati in JSON. Puoi caricare questi dati in Lo 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 tuo 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, vedi Con curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

La risposta è composta da un payload JSON che contiene i dati per l'oggetto transazione, 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 Lo strumento di debug offline.

Se non è stata aggiunta alcuna richiesta alla sessione prima della sua fine, la risposta sarà simile a questa le seguenti:

[]

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

Download dei dati della sessione di debug in corso...

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

I dati della sessione di debug possono essere scaricati o visualizzati nell'interfaccia utente solo per 24 ore. In seguito punto di accesso, 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 (Scarica sessione) nel riquadro di sinistra della vista Debug.

Scaricare una sessione di debug.

Tieni presente che una sessione di debug viene eliminata entro 24 ore dal suo completamento, pertanto se Se vuoi visualizzare la sessione di debug a partire da quel momento, devi scaricarla prima di allora.

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 di download). nel riquadro Dettagli debug.
  • Sessione precedente: fai clic sul nome della sessione nel Debug recente sessioni, come descritto in Visualizzazione delle sessioni di debug. Poi fai clic su Icona di download nel riquadro Dettagli debug.

API Apigee

Per visualizzare gli ID di tutte le transazioni per l'attuale sessione di debug che utilizza l'API Apigee, inserisci quanto segue :

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.

Vedi Elenca gli 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 struttura dei dati

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

Interfaccia utente di Apigee

Quando scarichi dati utilizzando la UI 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 un'intera sessione i dati contemporaneamente; puoi solo utilizzare l'API per visualizzare i dati delle singole transazioni, come descritto in Visualizzazione delle sessioni di debug.

Ad esempio:

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

Scarica esempi di dati

L'esempio seguente mette in evidenza un oggetto di metadati DebugSession nella cartella e i dati di Google Cloud. Questo oggetto è seguito dall'array Messages che contiene le transazioni durante la 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 includeva richieste, l'array Message è vuoto. come illustrato nell'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 la UI o l'API Apigee, come descritto di seguito sezioni.

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 risorsa seguente:

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 restituito quando visualizzi 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 tuo 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, vedi Con curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le 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 vengono mantenuti solo per 24 ore. Se non la elimini esplicitamente prima di questa data, Apigee la elimina per te.