日志投递功能是云原生API网关结合阿里云日志服务SLS提供的服务。开启日志投递后,您可以通过分析云原生API网关的访问日志了解客户端用户行为、客户端用户的地域分布,以便排查问题。本文介绍如何为云原生API网关开启日志投递。
前提条件
开启日志投递
云原生API产品不收取日志费用,但日志服务SLS将根据您的使用量收费。关于SLS的计费方式,请参见按量付费。
登录云原生API网关控制台。
在左侧导航栏,选择实例,并在顶部菜单栏选择地域。
在实例页面,单击目标实例ID/名称。
在左侧导航栏,单击参数配置。
在可观测性参数区域,单击日志投递右侧的图标,在日志投递配置面板,打开启用日志投递(开启后网关的访问日志会投递到日志服务)。
说明开启日志投递后,日志服务会为您创建一个默认的日志服务Project。您也可以选择已有的日志服务Project。
开启日志投递以后,在可观测性参数区域,单击Project右侧的链接,系统会自动跳转到该网关对应投递的日志库。更多内容,请参见查询和分析日志。
日志投递字段说明
网关日志投递涉及到的字段说明如下。
字段名 | 类型 | 含义 |
__time__ | long | 日志产生的时间。 |
cluster_id | string | 购买的网关实例。 |
authority | string | 请求报文中的Host Header。 |
bytes_received | long | 请求的Body大小(不包含Header)。 |
bytes_sent | long | 响应的Body大小(不包含Header)。 |
downstream_local_address | string | 网关Pod地址。 |
downstream_remote_address | string | 连接到网关的Client端地址。 |
duration | long | 请求整体耗时。单位:ms。 |
method | string | HTTP方法。 |
path | string | HTTP请求中的Path。 |
protocol | string | HTTP的协议版本。 |
request_id | string | 网关会为每次请求产生一个ID,并放在Header的 |
requested_server_name | string | SSL连接时使用的Server Name。 |
response_code | long | HTTP响应的状态码。 |
response_flags | string | 响应失败的原因。 |
route_name | string | 路由名。 |
start_time | string | 请求开始时间。格式:UTC。 |
trace_id | string | Trace ID。 |
upstream_cluster | string | 上游集群。 |
upstream_host | string | 上游IP。 |
upstream_local_address | string | 本地连接上游的地址。 |
upstream_service_time | long | 上游服务处理请求的耗时(毫秒),包括网关访问上游服务的网络耗时和上游服务自身处理耗时两部分。 |
upstream_transport_failure_reason | string | 上游链接失败的原因。 |
user_agent | string | HTTP Header中的UserAgent。 |
x_forwarded_for | string | HTTP Header中的 |
请求失败原因说明
请求失败的原因主要通过日志中Response_Flag
的值判断。以下是关于Response_Flag
不同值的说明。
下游指客户端,上游指后端服务。
UH:上游集群中,没有健康的上游主机。
UF:上游连接失败。
NR:给定请求未配置路由。
URX:请求被拒绝,因为达到了上游重试限制(HTTP)或最大连接尝试次数(TCP)。
NC:无法找到上游集群。
DT:请求或连接超过了
max_connection_duration
或max_downstream_connection_duration
。DC:下游连接终止。
LH:本地服务未通过健康检查请求。
UT:上游请求超时。
LR:连接本地重置。
UR:上游远程重置。
UC:上游连接终止。
DI:请求处理被延迟一段时间,该延迟时间由故障注入指定。
FI:请求被故障注入指定的响应码中止。
RL:请求在本地被HTTP速率限制过滤器限制,除了429响应码之外。
UAEX:请求被外部授权服务拒绝。
RLSE:请求被拒绝,因为速率限制服务出现错误。
IH:请求被拒绝,因为在严格检查的标头中设置了无效值。
SI:Stream流空闲超时。
DPE:下游请求存在HTTP协议错误。
UPE:上游响应存在HTTP协议错误。
UMSDR:上游请求达到了最大流程持续时间。
OM:超负荷管理器终止了请求。