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", }