feat: add complete log fields table and troubleshooting guide (traceId, thread, message)

This commit is contained in:
yongjiang.lin 2026-06-11 15:09:27 +08:00
parent c37eaf4ce8
commit 62bc4ec8d8
3 changed files with 73 additions and 20 deletions

View File

@ -0,0 +1,10 @@
{
"permissions": {
"allow": [
"Bash(cp ~/.claude/skills/bms-log-test-query/SKILL.md bms-log-test-query/)",
"Bash(cp ~/.claude/skills/bms-log-prd-query/SKILL.md bms-log-prd-query/)",
"Bash(cp ~/.claude/skills/bms-log-test-query/SKILL.md ~/.cursor/skills/bms-log-test-query/)",
"Bash(cp ~/.claude/skills/bms-log-prd-query/SKILL.md ~/.cursor/skills/bms-log-prd-query/)"
]
}
}

View File

@ -42,19 +42,38 @@ Headers: `kbn-xsrf: true`, `Content-Type: application/json`
## Log Fields ## Log Fields
| Field | Description | | 字段 | 说明 |
|-------|-------------| |------|------|
| `@timestamp` | ISO 8601 timestamp | | `@timestamp` | ES 时间戳 (ISO 8601) |
| `timestamp` | Original timestamp string | | `timestamp` | 原始时间字符串 |
| `message` | Log message (Chinese/English) | | `message` | 日志正文 (中文/英文) |
| `level` | Log level: INFO, WARN, ERROR, etc. | | `level` | 日志级别 (INFO, WARN, ERROR) |
| `app_name` | Application name (e.g. `bms-web`) | | `app_name` | 应用名 (如 bms-web) |
| `class` | Java class name | | `class` | Java 类名 |
| `thread` | Thread name | | `thread` | 线程名 (如 `http-nio-8081-exec-59`) |
| `traceId` | Distributed trace ID | | `traceId` | SkyWalking 链路追踪 ID |
| `host_ip` | Host IP address | | `parentTraceId` | 父级追踪 ID |
| `log_origin` | Log origin identifier | | `trace_id` | 另一种追踪 ID 标识 |
| `stack_trace` | Exception stack trace (empty if no error) | | `stack_trace` | 异常堆栈 (无异常时为空) |
| `host_ip` | 主机 IP |
| `ip` | 请求 IP 地址 |
| `node_ip` | 节点 IP |
| `log_origin` | 日志来源标识 |
## Troubleshooting Guide — 排查链路问题
排查业务链路问题时,结合以下三个核心维度:
1. **message + 时间戳** — 定位具体操作和发生时间,快速缩小范围
2. **traceId** — SkyWalking 分布式链路追踪 ID可贯穿整个调用链前端 → 网关 → 服务A → 服务B → DB
- 大部分业务场景下 traceId 可完整贯穿
- **例外**xxljob 定时任务、dubbo 服务互相调用可能丢失 traceId
3. **thread** — 单机线程名,辅助定位具体执行线程
- 测试环境通常单实例thread 可直接定位
- **生产环境注意分布式问题**:同一线程名可能出现在不同机器上,需结合 `host_ip` + `node_ip` 一起使用
**推荐排查流程:**
- 已知现象 → 用 message 关键词 + 时间范围找到第一条相关日志 → 提取 traceId → 用 traceId 查出完整链路 → 结合 thread + host_ip 定位具体节点
## Query Patterns ## Query Patterns

View File

@ -94,14 +94,38 @@ GET /api/console/proxy?path=/bms-test-<DATE>/_count&method=GET
GET /api/console/proxy?path=/bms-test-<DATE>/_mapping&method=GET GET /api/console/proxy?path=/bms-test-<DATE>/_mapping&method=GET
``` ```
## Common Fields ## Log Fields
- `@timestamp` — log timestamp | 字段 | 说明 |
- `message` — main log message (Chinese/English) |------|------|
- `original_message` — original unformatted message | `@timestamp` | ES 时间戳 (ISO 8601) |
- `log.level` — INFO, WARN, ERROR, etc. | `timestamp` | 原始时间字符串 |
- `error.message` — error details | `message` | 日志正文 (中文/英文) |
- `host.name` — host/container name | `original_message` | 原始未格式化消息 |
| `level` | 日志级别 (INFO, WARN, ERROR) |
| `app_name` | 应用名 (如 bms-web) |
| `class` | Java 类名 |
| `thread` | 线程名 (如 `http-nio-8081-exec-59`) |
| `traceId` | SkyWalking 链路追踪 ID |
| `parentTraceId` | 父级追踪 ID |
| `stack_trace` | 异常堆栈 (无异常时为空) |
| `host_ip` | 主机 IP |
| `log_origin` | 日志来源标识 |
## Troubleshooting Guide — 排查链路问题
排查业务链路问题时,结合以下三个核心维度:
1. **message + 时间戳** — 定位具体操作和发生时间,快速缩小范围
2. **traceId** — SkyWalking 分布式链路追踪 ID可贯穿整个调用链前端 → 网关 → 服务A → 服务B → DB
- 大部分业务场景下 traceId 可完整贯穿
- **例外**xxljob 定时任务、dubbo 服务互相调用可能丢失 traceId
3. **thread** — 单机线程名,辅助定位具体执行线程
- 测试环境通常单实例thread 可直接定位
- **生产环境注意分布式问题**:同一线程名可能出现在不同机器上,需结合 `host_ip` 一起使用
**推荐排查流程:**
- 已知现象 → 用 message 关键词 + 时间范围找到第一条相关日志 → 提取 traceId → 用 traceId 查出完整链路 → 结合 thread + host_ip 定位具体节点
## Rules ## Rules