日志字段说明
云开发日志以键值结构存储,每条日志由若干字段组成。本文说明各类日志的来源、字段含义与类型,以及检索时的写法,供编写检索语句、配置索引和告警时查阅。
日志来源
不同资源产生的日志,用不同的检索条件区分:
| 日志来源 | 检索条件 | 说明 |
|---|---|---|
| 云函数 | function_name:"函数名" | 函数运行日志,含系统日志与用户代码日志 |
| 云托管 | 控制台选择云托管;CLI 使用 --service tcbr | 容器标准输出日志 |
| 网关访问 | logType:accesslog | HTTP 访问日志 |
| 文档型数据库 | module:database | 数据库操作日志 |
| SQL 数据库 | module:rdb | SQL 数据库事件日志 |
| 数据模型 | module:model | 数据模型相关日志 |
| 用户鉴权 | module:auth | 登录、鉴权事件 |
| 大模型 | module:llm AND logType:llm-tracelog | AI 调用追踪 |
| 微搭应用 | module:app | 微搭应用发布与删除事件 |
通用系统字段
平台日志默认带有以下系统字段:
| 字段 | 类型 | 说明 |
|---|---|---|
level | string | 日志级别,取值 log、info、warn、error |
requestId | string | 请求 ID,用于串联同一次请求的日志 |
module | string | 模块名,对应上文“日志来源”中的模块 |
resourceName | string | 资源名,标识请求实际访问的资源 |
errorCode | string | 错误码 |
errorMessage | string | 错误信息 |
request | string | 请求参数 |
response | string | 返回参数 |
msg | string | 简单日志内容,非默认字段 |
user | string | 用户标识 |
src | string | 日志来源,system 为系统日志,app 为用户代码日志 |
startTime | string | 请求开始时间 |
timeCost | string | 请求耗时,单位为毫秒 |
service | string | 被调用的服务 |
云函数日志字段
云函数日志的字段如下:
| 字段 | 说明 | 示例 |
|---|---|---|
function_name | 函数名称 | function_name:"user-login" |
function_id | 函数 ID | function_id:"lam-xxxxxxxx" |
request_id | 本次调用的唯一 ID | request_id:"abc123" |
qualifier | 函数版本 | qualifier:"$LATEST" |
alias | 函数别名 | alias:"prod" |
status | 调用状态 | |
status_code | 调用状态码,200 为成功,202 为中间态 | status_code>200 AND status_code!=202 |
status_msg | 调用状态信息 | |
ret_code | 返回码 | |
ret_msg | 返回信息 | |
src | 日志来源,system 为系统日志,app 为用户代码日志 | src:app |
log | 日志正文 | log:"Error" |
log_size | 日志大小 | |
duration | 执行耗时,单位为毫秒 | duration:>5000 |
bill_duration | 计费耗时 | |
memory | 内存用量 | memory:512 |
mem_usage | 内存使用量 | |
mem_duration | 内存耗时 | |
function_invoke_time | 函数调用时间 | |
function_invoke_end_time | 函数调用结束时间 | |
start_time | 调用开始时间 | |
event_type | 调用类型 | |
request_source | 请求来源,如 TRIGGER_TIMER 表示定时触发器 | request_source:TRIGGER_TIMER |
retry_num | 重试次数,过滤重试请求用 retry_num=0 | retry_num=0 |
caller、caller_ip | 调用方及其 IP | |
report_ip | 上报 IP | |
wan_traffic | 公网流量 | |
cluster_name | 集群名称 | |
container_id | 容器 ID | |
user_id | 用户 ID | user_id:"1307589412" |
namespace | 环境 ID | namespace:"my-env" |
stamp | 调用标识 | |
tcb_log | 云开发附加日志 | |
@timestamp | 日志时间戳 |
注意
云函数日志的请求 ID 字段名是 request_id,其他日志是 requestId。检索云函数日志和编写 SQL 分析语句时,请统一使用 request_id。
云托管日志字段
| 字段 | 说明 | 示例 |
|---|---|---|
__CONTENT__ | 日志内容,用于全文检索 | "error" AND "timeout" |
__TAG__.container_name | 容器名,格式为服务名与实例名,支持正则 | /servername-[0-9]+/ |
__TAG__.pod_name | 实例在集群中的名称 | __TAG__.pod_name:"xxx" |
__TAG__.pod_uid | 实例在集群中的 UID | |
__TAG__.pod_ip | 实例在集群中的内网 IP | |
__TAG__.pod_label_k8s-app | 服务名-实例版本 | |
__TAG__.pod_label_pod-template-hash | 模板哈希值 | |
__TAG__.image_name | 镜像名 | |
__TAG__.cluster_id | 集群 ID | |
__TAG__.namespace | 实例在集群中的命名空间 | |
__TAG__.envId | 环境 ID | |
__TAG__.stream | 日志采集来源 |
网关访问日志字段
网关访问日志通过 logType:accesslog 筛选,字段如下:
| 字段 | 类型 | 说明 | 示例 |
|---|---|---|---|
logType | string | 日志类型 | accesslog |
statusCode | string | 响应状态码 | "200"、"502" |
code | string | 服务调用错误码 | |
message | string | 错误信息 | |
host、matchedHost | string | 访问域名 | xxx.api.tcloudbasegateway.com |
path、url | string | 请求路径、请求地址 | /auth/v1/certs |
query | string | 查询参数 | |
method、action | string | HTTP 请求方法 | GET |
module | string | 命中的后端模块 | auth |
resourceName | string | 请求实际访问的资源,鉴权类接口为空 | PostgresREST |
timeCost | string | 请求耗时,单位为毫秒 | 26 |
startTime、startAt、endAt | string | 请求开始、结束时间 | |
timestamp | string | 时间戳 | |
sourceIp、xff | string | 源 IP、X-Forwarded-For 请求头 | 175.24.212.162 |
requestId、logId | string | 请求唯一标识,用于反查单次请求 | 9be5592e-11ea-4f45-9c83-e44ff20e7ed4 |
level | string | 日志级别 | info |
accessSource | string | 访问来源 | http_openapi |
source | string | 来源标识 | |
reqSize、resSize | string | 请求体、响应体大小 | |
contentType | string | HTTP Content-Type | |
origin | string | HTTP Origin | |
referrer | string | HTTP Referrer | |
userAgent | string | HTTP User-Agent | |
secchua | string | HTTP Sec-Ch-UA | |
sdkVersion | string | SDK 版本 | |
version | string | 版本 | |
userId | string | 用户 ID | |
userType | string | 用户类型 | |
authMethod | string | 认证方法 | |
isAdministrator | string | 是否管理员身份调用 | |
upstream.type | string | 上游类型,如 database | |
upstream.requestId | string | 上游请求 ID | |
upstream.status | string | 上游状态码 | |
upstream.timeCost | string | 上游耗时 |
一条网关访问日志示例:
{
"logType": "accesslog",
"statusCode": "200",
"host": "xxx.api.tcloudbasegateway.com",
"path": "/auth/v1/certs",
"method": "GET",
"module": "auth",
"timeCost": "26",
"requestId": "9be5592e-11ea-4f45-9c83-e44ff20e7ed4",
"sourceIp": "175.24.212.162"
}
statusCode 是字符串,检索时写成 statusCode:"502"。
文档型数据库日志字段
文档型数据库日志通过 module:database 筛选。它包含网关访问日志中的请求字段(host、path、method、statusCode、requestId、timeCost、sourceIp、userId、upstream.* 等),另有以下字段:
| 字段 | 说明 |
|---|---|
msg | 日志内容 |
resourceName | 资源 |
action | 操作 |
query | 查询参数 |
code | 错误码 |
isAdministrator | 是否管理员身份调用 |
SQL 数据库日志字段
SQL 数据库日志通过 module:rdb 筛选:
| 字段 | 说明 |
|---|---|
msg | 日志内容 |
action | 操作 |
result | 执行结果 |
schema | 数据库 |
table | 表名 |
latencyMs | 耗时,单位为毫秒 |
requestId | 请求 ID |
envId | 环境 ID |
appId | 应用 ID |
uin | 用户 UIN |
module | 模块 |
timestamp | 时间戳 |
用户鉴权日志字段
用户鉴权日志通过 module:auth 筛选:
| 字段 | 说明 |
|---|---|
level | 日志级别 |
requestId | 请求 ID |
request、response | 请求、响应 |
clientId | 客户端 ID |
deviceId | 设备 ID |
user | 用户 |
host | 主机 |
origin | Origin 请求头 |
referer | Referer 请求头 |
error | 错误类型 |
errorCode | 错误码 |
errorMessage | 错误消息 |
timeCost | 耗时 |
startTime | 开始时间 |
timestamp | 时间戳 |
module | 模块 |
大模型日志字段
大模型调用追踪日志通过 module:llm AND logType:llm-tracelog 筛选:
| 字段 | 说明 |
|---|---|
modelProvider | 模型分组 |
model | 模型名称 |
input | 请求内容 |
output | 响应内容 |
stream | 是否流式调用 |
maxTokens | 请求中指定的最大输出 Token |
promptTokens | 输入 Token |
completionTokens | 输出 Token |
totalTokens | 总 Token |
firstTokenDuration | 首 Token 响应间隔,单位为毫秒 |
timeCost | 耗时,单位为毫秒 |
statusCode | HTTP 状态码 |
startTime | 请求开始时间 |
user | 用户 ID |
requestId | 请求唯一标识 |
traceId、spanId | 链路追踪 ID |
logType | 日志类型 |
module | 模块名 |
微搭应用日志字段
微搭应用日志通过 module:app 筛选:
| 字段 | 说明 |
|---|---|
msg | 日志内容 |
requestId | 请求 ID |
module | 模块 |
eventType | 事件类型,取值见下文“平台事件类型” |
resourceName | 资源名称 |
timestamp | 时间戳 |
平台事件类型
部分平台日志通过 eventType 字段标识事件,可与 module 组合筛选:
| 模块 | eventType 取值 | 说明 |
|---|---|---|
database | MongoSlowQuery | 文档型数据库慢查询 |
rdb | MysqlSlowQuery、MysqlFreeze、MysqlRecover | SQL 数据库慢查询、冻结与恢复 |
app | AppProdPub、AppProdDel | 微搭应用发布与删除 |
使用限制
- 日志内容按分词符切分后,单个分词的内容不能超过 32 KB。
- 键值索引只对修改后新写入的日志生效,历史日志不会重建索引。
- 只有建立了键值索引的字段,才能在 SQL 分析语句中使用。
查看日志字段
- 控制台:在 云开发平台/日志监控/日志管理 展开某条日志,查看完整字段;列表右上角可通过列配置调整展示字段。
- CLI:执行
tcb logs search --json,返回结果包含每条日志的全部字段,详见 CLI 日志检索。