日志分析
更新时间:2026-09-20
概述
日志分析集成百度智能云日志服务(BLS)实现网关访问日志的采集与检索,用于问题排查与审计。开启日志采集后可直接在网关控制台内查询日志,无需跳转到 BLS。入口位于实例导航的 观测与分析 > 日志分析。
说明:日志存储与检索按 BLS 产品计费,具体参考费用详情。
开启日志采集
- 登录 API 网关专享版控制台,在左侧导航选择目标实例。
- 进入 观测与分析 > 日志分析,单击开启日志采集。
- 选择日志组与日志集(可在创建实例时的「日志配置」步骤预先配置)。
日志配置也可在实例详情的「关联服务设置」中查看与编辑,包含开启状态、日志组与日志集。
检索日志
开启后页面内嵌 BLS 日志查询面板,当前使用的日志组与日志集展示在面板顶部,支持以下能力:
| 功能 | 说明 |
|---|---|
| 查询语句 | 按 BLS 查询语法检索访问日志,支持字段条件组合与统计分析语句。 |
| 时间范围 | 按快捷区间或自定义起止时间筛选日志。 |
| 原始日志 | 查看命中的访问日志明细,支持展开单条日志的全部字段。 |
| 统计分析 | 对查询结果做聚合统计并以表格、折线图等图表形式展示。 |
| 收藏夹 / 历史记录 | 收藏常用查询语句,或从历史记录中快速复用此前的查询。 |
| 实时日志 | 持续滚动查看最新写入的日志,适合灰度发布、故障处置时的实时观察。 |
| 索引管理 | 查看与维护日志集的索引字段配置,未建索引的字段无法作为查询条件。 |
| 分享链接 | 生成带当前查询条件的链接,便于与他人协同排查。 |
访问日志字段
网关投递的访问日志包含以下字段:
| 字段名 | 类型 | 说明 |
|---|---|---|
__time__ |
long | 日志产生的时间(BLS 自带的 @timestamp 字段)。 |
gateway_id |
string | 网关实例 ID。 |
authority |
string | 请求报文中的 Host Header。 |
bytes_received |
long | 请求 Body 大小(不含 Header)。 |
bytes_sent |
long | 响应 Body 大小(不含 Header)。 |
downstream_local_address |
string | 网关 Pod 地址。 |
downstream_remote_address |
string | 连接到网关的客户端地址。 |
duration |
long | 请求整体耗时,单位毫秒。 |
method |
string | HTTP 方法。 |
path |
string | HTTP 请求中的 Path。 |
protocol |
string | HTTP 协议版本。 |
request_duration |
long | 从网关收到下游第一个字节到收到最后一个字节的时间,单位毫秒。 |
request_id |
string | 网关为每次请求生成的 ID,同时写入响应头 x-request-id,可用于全链路排查。 |
requested_server_name |
string | SSL 连接使用的 Server Name(SNI)。 |
response_code |
long | HTTP 响应状态码。 |
response_code_details |
string | 与响应码相关的补充信息,例如 via_upstream 表示响应码由后端返回,route_not_found 表示请求没有匹配到路由。 |
response_flags |
string | 响应失败的原因标识。 |
response_tx_duration |
long | 从网关收到上游第一个字节到向下游发出最后一个字节的时间,单位毫秒。 |
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 | 请求头中的 User-Agent。 |
x_forwarded_for |
string | 请求头中的 x-forwarded-for,通常表示客户端真实 IP。 |
ai_log |
json | AI 场景专用字段,见下方「ai_log 字段」。仅 Model API / Agent API 的请求会写入,其他类型的 API 该字段为空。 |
ai_log 字段
ai_log 为 JSON 结构,包含以下子字段:
| 子字段 | 说明 |
|---|---|
api |
AI API 的名称。 |
service |
服务名称。 |
consumer |
开启消费者认证后,记录当前请求的消费者身份。 |
model |
本次请求使用的模型名称。 |
input_token |
LLM 请求输入 Token 数。 |
output_token |
LLM 请求输出 Token 数。 |
cache_read_tokens |
读取缓存的 Token 数。 |
cache_write_tokens |
写入缓存的 Token 数。 |
llm_first_token_duration |
LLM 请求首包 RT。 |
llm_service_duration |
LLM 请求整体 RT。 |
response_type |
LLM 请求类型,流式 / 非流式。 |
token_ratelimit_status |
LLM 请求是否被限流拦截。 |
常用查询示例
说明:以下示例用于展示查询思路,请根据实际的日志集索引配置调整字段与语法。 按 API 维度查询访问日志
Plain Text
1route_name: "{API 名称}"
排查指定请求
Plain Text
1request_id: "{x-request-id}"
查询 5xx 错误请求
Plain Text
1response_code >= 500
查询某个模型的调用记录
Plain Text
1ai_log.model: "{模型名称}"
统计各模型的 Token 消耗
Plain Text
1* | select ai_log.model, sum(ai_log.input_token) as input_tokens, sum(ai_log.output_token) as output_tokens group by ai_log.model
查询指定消费者的调用明细
Plain Text
1ai_log.consumer: "{消费者名称}"
关闭日志采集
不再需要时可在页面内单击 关闭日志 关闭日志采集,关闭后网关不再向 BLS 投递访问日志。
注意:关闭采集不会删除 BLS 中已有的历史日志,历史日志的保留与清理遵循 BLS 日志集的配置。
使用建议
评价此篇文章
