O Cloud-native API Gateway envia logs de acesso ao Simple Log Service (SLS) para análise. Esse recurso ajuda a entender o comportamento dos clientes, identificar a distribuição geográfica e solucionar problemas.
Pré-requisitos
Instância de gateway nativo da nuvem criada. Crie uma instância de gateway.
Simple Log Service ativado. Caso contrário, acesse o console do Simple Log Service para ativá-lo. Para mais informações, consulte O que é o Simple Log Service?.
Ativar entrega de logs
O Cloud-native API Gateway não cobra pela entrega de logs, mas o SLS aplica cobranças com base no uso conforme o modelo de Pagamento conforme o uso.
Faça login no console do API Gateway.
No painel de navegação à esquerda, clique em . Na barra de navegação superior, selecione uma região.
Na página Instance, clique no nome ou ID da instância.
No painel de navegação à esquerda, clique em Parameters.
-
Na seção Observability Parameters, clique no ícone
ao lado de Access Log Shipping Settings. No painel Access Log Shipping Settings, ative Instance Access Logs (AccessLog).NotaO SLS cria um projeto padrão chamado
aliyun-product-data-{Alibaba Cloud account UID}-{Region}, por exemplo,aliyun-product-data-1069xxxxx28319-cn-shanghai. Também é possível selecionar um projeto existente.Para visualizar os logs, clique no link ao lado de Project na seção Observability Parameters para abrir o Logstore do gateway. Início rápido para consulta e análise.
Campos de log
A tabela a seguir descreve os campos presentes no log de acesso do gateway.
|
Campo |
Tipo |
Descrição |
|
__time__ |
long |
Momento em que o log foi gerado. |
|
cluster_id |
string |
ID da instância do AI Gateway. |
|
ai_log |
json |
Objeto JSON contendo campos de log para Model API, Agent API e MCP API. Este campo fica vazio para outros tipos de API.
|
|
authority |
string |
Valor do cabeçalho Host na requisição. |
|
bytes_received |
long |
Tamanho do corpo da requisição em bytes, excluindo o cabeçalho. |
|
bytes_sent |
long |
Tamanho do corpo da resposta em bytes, excluindo o cabeçalho. |
|
downstream_local_address |
string |
Endereço do pod do gateway. |
|
downstream_remote_address |
string |
Endereço do cliente conectado ao gateway. |
|
duration |
long |
Tempo total de processamento da requisição em milissegundos, medido desde o recebimento do primeiro byte do cliente até o envio do último byte da resposta pelo gateway. |
|
method |
string |
Método HTTP. |
|
path |
string |
Caminho na requisição HTTP. |
|
protocol |
string |
Versão do protocolo HTTP. |
|
request_duration |
long |
Tempo em milissegundos desde o recebimento do primeiro byte da requisição do cliente até o recebimento do último byte pelo gateway. |
|
request_id |
string |
ID exclusivo gerado pelo gateway para cada requisição. Incluído no cabeçalho |
|
requested_server_name |
string |
Nome do servidor usado na conexão SSL. |
|
response_code_details |
string |
Contexto adicional para o código de resposta. Por exemplo, |
|
response_tx_duration |
long |
Tempo em milissegundos desde o recebimento do primeiro byte do serviço upstream até o envio do último byte ao cliente pelo gateway. |
|
route_name |
string |
Nome da rota. |
|
start_time |
string |
Horário de início da requisição, em UTC. |
|
trace_id |
string |
ID de rastreamento. |
|
upstream_cluster |
string |
Cluster upstream. |
|
upstream_host |
string |
Endereço IP do host upstream. |
|
upstream_local_address |
string |
Endereço local usado para conectar ao serviço upstream. |
|
upstream_service_time |
long |
Tempo de processamento da requisição no serviço upstream, em milissegundos. Inclui latência de rede e tempo de processamento do próprio serviço. |
|
upstream_transport_failure_reason |
string |
Motivo da falha na conexão upstream. |
|
user_agent |
string |
Valor do cabeçalho User-Agent na requisição. |
|
x_forwarded_for |
string |
Valor do cabeçalho |
Motivos de falha na requisição
O valor Response_Flag no log indica o motivo da falha de uma requisição. Valores possíveis para Response_Flag:
Downstream refere-se ao cliente, enquanto upstream refere-se ao serviço de backend.
UH: Nenhum host upstream saudável disponível no cluster upstream.
UF: Falha na conexão com o serviço upstream.
NR: Nenhuma rota configurada para a requisição.
URX: Requisição rejeitada porque o limite de novas tentativas HTTP ou o máximo de tentativas de conexão TCP no upstream foi atingido.
NC: Cluster upstream não encontrado.
DT: A requisição ou conexão excedeu
max_connection_durationoumax_downstream_connection_duration.DC: Conexão downstream encerrada.
LH: O serviço local falhou na verificação de integridade.
UT: Timeout na requisição upstream.
LR: Conexão redefinida localmente.
UR: Conexão upstream redefinida remotamente.
UC: Conexão upstream encerrada.
DI: Requisição atrasada por um período especificado devido à injeção de falhas.
FI: Requisição abortada com código de resposta devido à injeção de falhas.
RL: Limitação de taxa aplicada pelo filtro local de limite de taxa HTTP. Não inclui requisições que recebem código de resposta 429.
UAEX: Requisição rejeitada por um serviço de autorização externo.
RLSE: Requisição rejeitada devido a erro no serviço de limitação de taxa.
IH: Requisição rejeitada porque um cabeçalho com verificação rigorosa continha um valor inválido.
SI: Timeout de ociosidade do stream atingido.
DPE: Erro de protocolo HTTP na requisição downstream.
UPE: Erro de protocolo HTTP na resposta upstream.
UMSDR: A requisição upstream atingiu a duração máxima do stream.
OM: O gerenciador de sobrecarga encerrou a requisição.