Dettagli per API Gateway

Dettagli di log per i log del gateway API.

Risorse

  • Distribuzione API

Categorie di log

Valore API (ID): Console (nome visualizzato) descrizione;
Accedi Log degli accessi Log degli accessi per una distribuzione API.
Esecuzione Log di esecuzione Log di esecuzione per una distribuzione API.

Disponibilità

Il log di accesso/esecuzione del gateway API è disponibile in tutte le aree dei regimi commerciali.

Log di accesso distribuzione API

I log di accesso alla distribuzione API registrano un riepilogo di ogni richiesta e risposta che passa attraverso il gateway API, corrispondente a un instradamento nella distribuzione API. Ogni voce del log degli accessi contiene informazioni sulla richiesta e sulla risposta (ora di ricezione della richiesta, protocollo del server, stato della risposta e così via). Per l'elenco completo dei campi, vedere Contenuto di un log degli accessi.

Contenuto di un log degli accessi

I log degli accessi vengono visualizzati come valore nel campo Dati di log. Questo valore è costituito da dati in formato JSON con i seguenti campi:

Campo Esempio descrizione;
httpMethod GET Metodo HTTP derivato dalla riga richiesta.
requestUri /esempio/ URI richiesta derivato dalla riga richiesta.
serverProtocol HTTP/1.1 Protocollo HTTP derivato dalla riga della richiesta.
bodyBytesSent 45 Dimensione totale della risposta (in byte) inviata al client.
gatewayId ocid1.apigateway.oc1.iad.<unique_ID> OCID del gateway API per la distribuzione API che soddisfa la richiesta.
httpUserAgent Apache-HttpClient/4.5.9 (Java/1.8.0_252) User Agent HTTP per la richiesta.
messaggio OTTIENI /esempio/ HTTP/1.1 Riga di richiesta ricevuta dal client.
opcRequestId FF7F0B8A32246FC7526AE45A2FA8D5CE/

A408784281BF81B0EE23596CE57CA93C/

C06F7DDDFC7C505FAA0566D8F2FE0BB2

Valore dell'intestazione HTTP opc-request-id o di un ID richiesta generato internamente se non è stato specificato alcun valore nella richiesta.
remoteAddr 138.1.55.172 Indirizzo IP del client richiedente.
httpReferrer https://www.example.com URL della segnalazione, se presente.
requestDuration 0.016 Tempo totale impiegato (in secondi, con precisione in millisecondi) da quando il gateway inizia a ricevere la richiesta dal client fino al completamento dell'invio di una risposta al client.
stato 404 Codice di stato della risposta dal gateway.

Log degli accessi di esempio

{
    "httpMethod": "GET",
    "requestUri": "/example/",
    "serverProtocol": "HTTP/1.1",
    "bodyBytesSent": 45,
    "gatewayId": "ocid1.apigateway.oc1.iad.<unique_ID>",
    "httpUserAgent": "Apache-HttpClient/4.5.9 (Java/1.8.0_252)",
    "message": "GET /example/ HTTP/1.1",
    "opcRequestId": "FF7F0B8A32246FC7526AE45A2FA8D5CE/A408784281BF81B0EE23596CE57CA93C/C06F7DDDFC7C505FAA0566D8F2FE0BB2",
    "remoteAddr": "138.2.05.172",
    "requestDuration": 0.016,
    "status": 404
  }

Log esecuzione distribuzione API

I log di esecuzione della distribuzione API registrano informazioni sull'elaborazione all'interno del gateway API per un singolo instradamento, a supporto della risoluzione dei problemi e del monitoraggio. Ogni voce del log di esecuzione contiene informazioni (ora di ricezione della richiesta, livello per indicare la severità del messaggio di log, un codice di messaggio e così via). Per l'elenco completo dei campi, vedere Contenuto di un log di esecuzione.

Contenuto di un log di esecuzione

Per impostazione predefinita, le informazioni sul livello di log sono abilitate. Questo valore è costituito da dati in formato JSON con i seguenti campi:

Campo Esempio descrizione;
Codice request.loopDetected Codice breve per l'evento di log rilevato durante l'esecuzione della richiesta. Per l'elenco completo dei codici messaggio, vedere la tabella "Codici di log" in Codici di log.
gatewayId ocid1.apigateway.oc1.iad.<unique_ID> OCID gateway API per la distribuzione API che soddisfa la richiesta.
functionId ocid1.fnfunc.oc1.iad.<unique_ID> OCID della funzione richiamata dal gateway API. Questo campo è presente solo per i backend delle funzioni.
livello WARN Livello di log per la voce del log di esecuzione, se INFO, WARN o ERROR.
messaggio È stato rilevato un loop di richiesta: le richieste per questo gateway vengono reindirizzate a questo gateway. Messaggio di esecuzione emesso durante l'elaborazione della richiesta.
opcRequestId FF7F0B8A32246FC7526AE45A2FA8D5CE/

A408784281BF81B0EE23596CE57CA93C/

C06F7DDDFC7C505FAA0566D8F2FE0BB2

Valore dell'intestazione HTTP opc-request-id o di un ID richiesta generato internamente se non è stato specificato alcun valore nella richiesta.
functionCode FunctionInvokeSyslogUnavailable Codice fornito da OCI Functions per definire in modo univoco l'errore della funzione. Questo campo è presente solo per i backend delle funzioni.
functionMessage Endpoint Syslog non disponibile Messaggio fornito da OCI Functions per descrivere l'errore della funzione. Questo campo è presente solo per i backend delle funzioni.
functionStatusCode 502 Codice di stato HTTP restituito dalle funzioni OCI. Questo campo è presente solo per i backend delle funzioni.
configuredLimit 5 Numero di richieste da consentire per configuredUnit. Il limite di tasso o la quota.
configuredUnit MINUTO Periodo di tempo in cui consentire il numero di richieste specificato da configuredLimit. Per i limiti di frequenza, "SECOND". Per la quota, "MINUTE", "DAY", "HOUR", "WEEK" o "MONTH".
entitlementName Entitlement1 Nome dell'abilitazione utilizzata dalla richiesta per accedere alla distribuzione API.
limitingKey <timestamp>/ocid1.apigatewayusageplan.oc1.iad.<unique_ID>/<entitlement-name>/ocid1.apigatewaysubscriber.oc1.iad.<unique_ID> Per calcolare l'uso ai fini del limite di frequenza e della quota, le richieste con la stessa chiave vengono conteggiate insieme.
limitingResourceId ocid1.apigatewayusageplan.oc1.iad.<unique_ID> OCID del piano di utilizzo utilizzato per accedere alla distribuzione API.
limitingResourceName Piano utilizzo oro Nome del piano di utilizzo utilizzato per accedere alla distribuzione API.

Codici log

Codice log descrizione; Funzione correlata
httpBackend.timeout Timeout della richiesta al backend HTTP. Backend HTTP
httpBackend.dnsResolutionFailed Risoluzione dell'URL del backend HTTP non riuscita.
httpBackend.sslHandshakeFailed Handshake SSL non riuscito con il backend HTTP.
httpBackend.successfulRequest Richiesta al backend HTTP riuscita.
httpBackend.responseReceived Risposta ricevuta dal backend HTTP.
httpBackend.requestSent Richiesta inviata al backend HTTP.
functionBackend.successfulRequest Richiamo della funzione nelle funzioni OCI riuscito. Backend funzioni OCI
functionBackend.notFoundOrNotAuthorized Richiamo della funzione in OCI Functions non riuscito a causa del numero 404 del servizio OCI Functions.
functionBackend.rateLimited Tariffa limitata quando si richiama la funzione in OCI Functions.
functionBackend.serviceUnavailable Servizio OCI Functions non disponibile.
functionBackend.badGateway Ricevuto "gateway non valido" durante il richiamo della funzione nelle funzioni OCI.
functionBackend.timeout Il richiamo della funzione in OCI Functionstimed si è interrotto.
functionBackend.internalServiceError Errore interno del servizio durante il richiamo della funzione in OCI Functions.
specification.badVariableReference Impossibile risolvere la variabile di contesto. Specifica errata al runtime
specification.invalidAuthenticationPolicy Criterio di autenticazione non valido.
specification.badTransformationPolicy Criterio di trasformazione non valido.
specification.badHeaderTransformationPolicy Criterio di trasformazione intestazione non valido.
specification.badQueryParameterTransformationPolicy Criterio di trasformazione dei parametri di query non valido.
request.internalServiceError Errore interno del servizio. Elaborazione della richiesta
request.loopDetected È stata rilevata una condizione di loop della richiesta, in base alla quale le richieste per il gateway vengono reindirizzate a se stesse creando un ciclo.
request.possibleLoopDetected È stata rilevata una possibile condizione di loop richieste, in base alla quale le richieste per il gateway vengono reindirizzate a se stesse creando un ciclo.
request.headersTruncated Le intestazioni della richiesta sono state troncate.
request.queryParametersTruncated I parametri di query della richiesta sono stati troncati.
authorization.unauthorizedRequest Autorizzazione non riuscita per la richiesta. Richiedi autorizzazione
authorization.scopeCheckFailed Controllo dell'ambito della richiesta non riuscito.
customAuthentication.successfulFunctionInvocation Richiamo della funzione Oracle riuscito. Autenticazione personalizzata
customAuthentication.failedFunctionInvocation Richiamo della funzione Oracle non riuscito.
customAuthentication.successfulAuthentication Autenticazione personalizzata riuscita.
customAuthentication.authenticationFailed Autenticazione custom non riuscita.
customAuthentication.unexpectedResponse Risposta imprevista dalla funzione Oracle.
jwtAuthentication.successfulAuthentication autenticazione JWT riuscita. autenticazione JWT
jwtAuthentication.authenticationFailed Autenticazione JWT non riuscita.
jwtAuthentication.badJsonWebKeySet Il set di chiavi Web JSON non è valido.
jwtAuthentication.loadingJsonWebKeySet Caricamento del set di chiavi Web JSON in corso.
headerTransformation.badHeaderValue Valore non valido per l'intestazione della richiesta. Trasformazione intestazione
headerTransformation.protectedHeaderTransformed Il criterio ha tentato di trasformare un'intestazione protetta.
headerTransformation.protectedElementTransformed Il criterio ha tentato di trasformare un elemento protetto.
headerTransformation.missingSetValues Valore mancante per il criterio di trasformazione set.
queryParameterTransformation.badParameterValue Valore non valido per il parametro di query della richiesta. Trasformazione parametro di query
queryParameterTransformation.protectedElementTransformed Il criterio ha tentato di trasformare un elemento protetto.
queryParameterTransformation.missingSetValues Valore mancante per il criterio di trasformazione set.
requestValidation.validationError La richiesta non ha superato un criterio di convalida. Convalida richiesta
usagePlans.requestPermitted Richiesta di un sottoscrittore del piano di utilizzo consentita. Piani di utilizzo
usagePlans.requestRejected La richiesta di un sottoscrittore del piano di utilizzo è stata rifiutata.
usagePlans.requestBreachedButAllowed La richiesta è stata consentita anche se è stato superato il numero massimo di richieste specificate da un'abilitazione del piano di utilizzo.
usagePlans.eligibleNotEntitled La distribuzione API non è la destinazione di un'abilitazione in alcun piano di utilizzo, anche se la specifica di distribuzione API include un criterio di richiesta del piano di utilizzo che specifica un token client.
dynamicRouting.backendMatched La richiesta corrisponde a una regola backend ed è stata instradata al backend associato. Instradamento backend dinamico
dynamicRouting.backendRejected Richiesta non riuscita perché la richiesta non corrisponde a una regola backend e non è stata definita alcuna regola predefinita.
dynamicRouting.defaultBackendMatched La richiesta non corrisponde a una regola backend, pertanto è stata instradata al backend associato alla regola predefinita.
dynamicAuthentication.defaultAuthenticationServerMatched Il valore della variabile di contesto selezionata non corrisponde ad alcuna regola del server di autenticazione, ma è stato specificato un server di autenticazione predefinito utilizzato per l'autenticazione. Selezione server autenticazione dinamica
dynamicAuthentication.authenticationServerMatched Il valore della variabile di contesto selezionata corrisponde a una delle regole del server di autenticazione.
dynamicAuthentication.noAuthenticationServerMatched Il valore della variabile di contesto selezionata non corrisponde ad alcuna regola del server di autenticazione e non è stato specificato alcun server di autenticazione predefinito.
dynamicAuthentication.jwtTokenNotFound La variabile di contesto selezionata era request.auth[claimName] ma non è stato inviato alcun token JWT con la richiesta.
dynamicAuthentication.jwtTokenInvalid La variabile di contesto selezionata era request.auth[claimName] ma con la richiesta è stato inviato un token JWT non valido.
authentication.validationFailurePolicyInvalid Il criterio di errore di convalida non è un tipo definito. Autenticazione basata su richiesta

Log di esecuzione di esempio

  • Tipo: Richiesta
  • Scenario: loop richieste rilevato
  • Descrizione: è stata rilevata una condizione di loop della richiesta, in base alla quale le richieste per il gateway vengono reindirizzate a se stesse creando un ciclo.
  • Ad esempio:
    {
        "code": "request.loopDetected",
        "gatewayId": "ocid1.apigateway.oc1.iad.<unique_ID>",
        "level": "WARN",
        "message": "A request loop has been detected - requests for this gateway are being directed back to this gateway.",
        "opcRequestId": "FF7F0B8A32246FC7526AE45A2FA8D5CE/A408784281BF81B0EE23596CE57CA93C/C06F7DDDFC7C505FAA0566D8F2FE0BB2",
     }