Cloud-native API Gateway puede entregar registros de acceso a Simple Log Service (SLS) para su análisis. Esto le permite comprender el comportamiento de los clientes, identificar la distribución geográfica y solucionar problemas.
Requisitos previos
Se creó una instancia de gateway nativo de la nube. Create a gateway instance.
Simple Log Service está activado. De lo contrario, vaya a la consola de Simple Log Service para activarlo. Para obtener más información, consulte What is Simple Log Service?.
Habilite la entrega de registros
Cloud-native API Gateway no cobra por la entrega de registros, pero SLS aplica cargos según su uso bajo el modelo Pay-as-you-go.
Inicie sesión en la consola de API Gateway.
En el panel de navegación izquierdo, haga clic en . En la barra de navegación superior, seleccione una región.
En la página Instance, haga clic en el nombre o ID de la instancia.
En el panel de navegación izquierdo, haga clic en Parameters.
-
En la sección Observability Parameters, haga clic en el icono
junto a Access Log Shipping Settings. En el panel Access Log Shipping Settings, active Instance Access Logs (AccessLog).NotaSLS crea un proyecto predeterminado llamado
aliyun-product-data-{Alibaba Cloud account UID}-{Region}, por ejemplo,aliyun-product-data-1069xxxxx28319-cn-shanghai. También puede seleccionar un proyecto existente.Para consultar los registros, haga clic en el enlace junto a Project en la sección Observability Parameters para abrir el logstore del gateway. Quick start for query and analysis.
Campos de registro
La siguiente tabla describe los campos del registro de acceso del gateway.
|
Campo |
Tipo |
Descripción |
|
__time__ |
long |
Hora en que se generó el registro. |
|
cluster_id |
string |
ID de la instancia de AI Gateway. |
|
ai_log |
json |
Objeto JSON que contiene campos de registro para Model API, Agent API y MCP API. Este campo está vacío para otros tipos de API.
|
|
authority |
string |
Valor del encabezado Host en la solicitud. |
|
bytes_received |
long |
Tamaño del cuerpo de la solicitud en bytes, excluyendo el encabezado. |
|
bytes_sent |
long |
Tamaño del cuerpo de la respuesta en bytes, excluyendo el encabezado. |
|
downstream_local_address |
string |
Dirección del pod del gateway. |
|
downstream_remote_address |
string |
Dirección del cliente que se conecta al gateway. |
|
duration |
long |
Tiempo total de procesamiento de la solicitud en milisegundos, medido desde que el gateway recibe el primer byte del cliente hasta que envía el último byte de la respuesta. |
|
method |
string |
Método HTTP. |
|
path |
string |
Ruta en la solicitud HTTP. |
|
protocol |
string |
Versión del protocolo HTTP. |
|
request_duration |
long |
Tiempo en milisegundos desde que el gateway recibe el primer byte de la solicitud del cliente hasta que recibe el último byte. |
|
request_id |
string |
ID único que genera el gateway para cada solicitud. Este ID se incluye en el encabezado |
|
requested_server_name |
string |
Nombre del servidor utilizado para la conexión SSL. |
|
response_code_details |
string |
Contexto adicional para el código de respuesta. Por ejemplo, |
|
response_tx_duration |
long |
Tiempo en milisegundos desde que el gateway recibe el primer byte del servicio upstream hasta que envía el último byte al cliente. |
|
route_name |
string |
Nombre de la ruta. |
|
start_time |
string |
Hora de inicio de la solicitud. La hora está en formato UTC. |
|
trace_id |
string |
ID de rastreo. |
|
upstream_cluster |
string |
Clúster upstream. |
|
upstream_host |
string |
Dirección IP del host upstream. |
|
upstream_local_address |
string |
Dirección local utilizada para conectarse al servicio upstream. |
|
upstream_service_time |
long |
Tiempo de procesamiento de la solicitud en milisegundos para el servicio upstream. Esta duración incluye la latencia de red y el tiempo de procesamiento propio del servicio. |
|
upstream_transport_failure_reason |
string |
Motivo del error de conexión upstream. |
|
user_agent |
string |
Valor del encabezado User-Agent en la solicitud. |
|
x_forwarded_for |
string |
Valor del encabezado |
Motivos de error en solicitudes
El valor Response_Flag en el registro indica por qué falló una solicitud. Valores posibles de Response_Flag:
Downstream se refiere al cliente y upstream se refiere al servicio backend.
UH: No hay ningún host upstream disponible y saludable en el clúster upstream.
UF: Falló la conexión al servicio upstream.
NR: No hay ninguna ruta configurada para la solicitud.
URX: La solicitud se rechazó porque se alcanzó el límite de reintentos upstream para HTTP o el máximo de intentos de conexión para TCP.
NC: No se encontró el clúster upstream.
DT: La solicitud o conexión excedió
max_connection_durationomax_downstream_connection_duration.DC: Se finalizó la conexión downstream.
LH: El servicio local falló la solicitud de comprobación de estado.
UT: La solicitud upstream agotó el tiempo de espera.
LR: La conexión se restableció localmente.
UR: La conexión upstream se restableció de forma remota.
UC: Se finalizó la conexión upstream.
DI: La solicitud se retrasó durante un período especificado debido a inyección de fallos.
FI: La solicitud se canceló con un código de respuesta debido a inyección de fallos.
RL: El filtro de límite de tasa HTTP local limitó la tasa de la solicitud. Esto no incluye las solicitudes que reciben un código de respuesta 429.
UAEX: Un servicio de autorización externo rechazó la solicitud.
RLSE: La solicitud se rechazó porque ocurrió un error en el servicio de límite de tasa.
IH: La solicitud se rechazó porque un encabezado estrictamente verificado contenía un valor no válido.
SI: Se alcanzó el tiempo de espera de inactividad del flujo.
DPE: La solicitud downstream contenía un error de protocolo HTTP.
UPE: La respuesta upstream contenía un error de protocolo HTTP.
UMSDR: La solicitud upstream alcanzó la duración máxima del flujo.
OM: El administrador de sobrecarga finalizó la solicitud.