诊断
目录
概述
诊断界面将平台内部产生的所有诊断事件(信息·警告·严重)通过时间顺序时间轴 + 表格 + 统计图表三个视角一并呈现。系统管理员或操作员排查故障原因时,最先进入的就是该界面。
该界面将以下功能整合为一体。
- 时间轴 — 一眼看清在时间流中何时发生了什么
- 日志表 — 精确的时间、应用、级别与消息内容
- 统计面板 — 级别占比、时段分布、应用分布
路径:左侧菜单 > System > 诊断(内部 URL /diagnostic/index)
界面构成
┌───────────────────────────────────────────────────────────────────────────────┐
│ 🩺 진단 │
│ [기간] [애플리케이션] [레벨] [건수] [조회] [전체 출력] [↻] │ ← ① 검색 영역
├───────────────────────────────────────────────────────────────────────────────┤
│ 타임라인 + 빠른 시간 범위 │ ← ② 타임라인
├──────────────────────────────────────────────────────────┬────────────────────┤
│ │ 🥧 통계 │
│ 진단 로그 테이블 │ 검색된 진단 N건 │
│ 애플리케이션 │ 레벨 │ 시간 │ 메세지 │ 정보·경고·심각 뱃지│ ← ③
│ ... │ 레벨 비율 차트 │
│ ├────────────────────┤
│ │ 📊 시간별 발생 추이 │
│ ├────────────────────┤
│ │ 🖥 애플리케이션별 │
│ │ 분포 │
└──────────────────────────────────────────────────────────┴────────────────────┘
| 区域 | 位置 | 显示内容 |
|---|---|---|
| ① 搜索区域 | 右上角 form | 时间段·应用·级别·显示条数 + 查询/全量导出/刷新 |
| ② 时间轴 | 整幅宽度 | 时间流上的诊断标记 + 6 个快捷时间范围按钮 |
| ③ 左侧 | col-lg-8 | 诊断日志表(固定 4 列) |
| ③ 右侧 | col-lg-4 | 3 个统计面板(级别占比·时间趋势·应用分布) |
顶部搜索区域
页面右上角的搜索表单排成一行,从左到右依次为以下控件。
输入字段与按钮
| 控件 | 宽度 | 形式 | 默认值·选项 | 说明 |
|---|---|---|---|---|
时间段 (search_time) | 280px | 文本输入(居中对齐、粗体) | 空 | 点击后打开日期·时间范围选择器,设置开始/结束时间。表单内部通过 hidden 字段 search_date_from / search_date_to 传递 |
应用 (app_name) | 120px | 下拉框 | 服务器 (SERVER)、代理 (AGENT)、批处理 (BATCH)、边缘网关 (EDGE) | 发出诊断的模块 |
级别 (level) | 100px | 下拉框 | 全部级别、信息 (INFO)、警告 (WARN)、严重 (ERROR) | 诊断级别过滤。留空则为全部 |
消息搜索 (message) | 250px(隐藏) | 文本输入 | 空 | 消息正文关键字搜索。默认隐藏,视运行环境决定是否显示 |
条数 (limit) | 130px | 下拉框 | 100、200、300、500、1,000 | 要显示的最近诊断条数 |
| 查询 | (自动) | 红色按钮 + 🔍 | — | 按上述条件查询诊断数据 |
| 全量导出 | (自动) | 红色按钮 + 📄 | — | 将当前条件的诊断结果批量下载为 CSV 文件 |
刷新 (realtime_icon) | (自动) | 红色按钮 + ↻ | — | 沿用上次条件重新查询 — 可当作仪表板使用 |
应用下拉框含义
| 值 | 标签 | 说明 |
|---|---|---|
SERVER | 服务器 | Web 服务器·管理控制台·域服务 |
AGENT | 代理 | 数据采集代理(流水线) |
BATCH | 批处理 | 批处理·汇总·报表生成 |
EDGE | 边缘网关 | 边缘设备(安装在现场的网关) |
级别下拉框含义
| 值 | 标签 | 颜色 | 含义 | 建议措施 |
|---|---|---|---|---|
| ``(空值) | 全部级别 | — | 所有级别 | |
INFO | 信息 | 蓝色 | 正常运行信息·启动/停止通知等 | 无需额外处理 |
WARN | 警告 | 橙色 | 潜在问题·超过软阈值 | 关注趋势,巡检同时段的其他模块 |
ERROR | 严重 | 红色 | 错误·功能故障·异常 | 立即排查原因 + 联系系统管理员 |
时间轴
搜索区域下方的面板中绘制诊断时间轴。
| 项目 | 说明 |
|---|---|
| 表头 | 🕐 “时间轴” + 右侧小字显示搜索结果摘要(result_txt) |
| 时间轴主体 | alarm_timeline — 横轴为时间,诊断项以彩色标记显示 |
| 标记颜色 | 信息=蓝色,警告=橙色,严重=红色 |
| 悬停 | 鼠标悬停在标记上时显示时间 + 消息预览提示框 |
| 点击 | 左侧表格中对应诊断的行自动高亮 |
快捷时间范围 (Timeline range)
通过时间轴表头右侧的 6 个按钮可立即缩放。
| 按钮 | data-range | 动作 |
|---|---|---|
| 10分钟前 | 10M | 缩放到最近 10 分钟区间 |
| 30分钟前 | 30M | 缩放到最近 30 分钟区间 |
| 1小时前 | 1H | 缩放到最近 1 小时区间 |
| 6小时前 | 6H | 缩放到最近 6 小时区间 |
| 12小时前 | 12H | 缩放到最近 12 小时区间 |
| 全时段 | ALL | 搜索的完整区间(默认激活) |
快捷范围按钮只在界面上已查询出的结果上应用缩放。若要查看更长的时间段,需通过搜索区域的 时间段 输入重新查询。
左侧 — 诊断日志表
| 애플리케이션 | 레벨 | 시간 | 메세지 |
|-------------|------|------------------|--------------------------------------|
| server | ERROR| 2026-05-08 12:00 | Connection timeout to upstream... |
| messaging | WARN | 2026-05-08 11:55 | Buffer overflow threshold reached... |
| 列 | 宽度 | 对齐 | 显示内容 |
|---|---|---|---|
| 应用 | 140px | 居中 | 发出诊断的模块名(例如:server、agent、batch、edge) |
| 级别 | 80px | 居中 | 彩色徽章 — INFO(蓝)/ WARN(橙)/ ERROR(红) |
| 时间 | 160px | 居中 | 诊断发生时刻 (yyyy-MM-dd HH:mm:ss) |
| 消息 | 自动(剩余) | 左对齐 | 诊断正文(表格为 table-layout: fixed,因此按单元格宽度截断 — 若要换行查看,请双击该行或鼠标悬停) |
行交互
- 悬停:行背景高亮
- 点击:时间轴上对应标记同步高亮(左右联动)
- 双击/弹窗:以模态框显示完整正文及 stack trace 等附加信息
表格底部分页
查询条数较多时按页分割。每页行数由搜索区域的 条数 下拉框(100/200/300/500/1,000)决定。
右侧统计面板(3 个)
搜索结果的统计可视化。三者均以不同视角展示与左侧表格相同的数据。
1. 统计 — 级别占比 (diag_level_chart)
┌────────────────────────────────┐
│ 검색된 진단 : N 건 │ ← 큰 글씨 헤드라인
│ [정보 N] [경고 N] [심각 N] │ ← 3색 뱃지
│ │
│ 도넛/막대 차트 │ ← diag_level_chart (150px 높이)
└────────────────────────────────┘
| 项目 | ID | 显示内容 |
|---|---|---|
| 标题数值 | — | “检索到的诊断:N 条” 大号字 |
| 检索到的总条数 | diag_total_count | 整数 |
| 信息徽章 | diag_info_count | 信息级别条数 — 蓝色背景 |
| 警告徽章 | diag_warn_count | 警告级别条数 — 橙色背景 |
| 严重徽章 | diag_error_count | 严重级别条数 — 红色背景 |
| 级别占比图表 | diag_level_chart | 信息·警告·严重占比图表 |
| 空状态提示 | diag_stats_empty | 无数据时显示“无数据。” |
2. 按时间发生趋势 (diag_hourly_chart)
| 项目 | 说明 |
|---|---|
| 表头 | 📊 “按时间发生趋势” |
| 图表 | 按时段(小时单位)的柱状图(高 170px)— X 轴为时间,Y 轴为诊断条数 |
| 柱体分段 | 信息/警告/严重以颜色堆叠显示 |
解读:若某个时段柱体突然飙升,说明该时刻发生了大规模异常。记下该时刻,在左侧表格中双击对应时刻的行查看详情。
3. 按应用分布 (diag_app_chart)
| 项目 | 说明 |
|---|---|
| 表头 | 🖥 “按应用分布” |
| 图表 | 环形/柱状图(高 140px)— 各应用的诊断条数 |
解读:若某个应用占比超过 70%,很可能是故障集中在该模块。请通过搜索区域的 应用 下拉框收窄后查询,再查看左侧表格。
全量导出 (CSV)
点击搜索区域的 全量导出 按钮,可将当前搜索条件下的所有诊断下载为 CSV 文件。
CSV 列
| 列 | 格式 |
|---|---|
| 应用 | 文本 |
| 级别 | 文本 (INFO/WARN/ERROR) |
| 时间 | 文本 (yyyy-MM-dd HH:mm:ss) |
| 消息 | 文本(双引号转义) |
CSV 导出的不仅是界面上可见的行,而是 符合搜索条件的全部结果。它不受 条数 下拉框(最近 N 条)的影响,因此适合长期分析。
CSV 使用技巧
- 提交给系统管理员时以压缩包(.zip)附上
- 导入外部分析工具(电子表格·BI 工具),按模块、时段、关键字做进一步分析
- 汇总一周数据进行比对,确认是否每天重复相同模式
发生故障时的标准诊断流程
发生故障时,按以下顺序进行可高效定位原因。
第 1 步 — 收窄时间范围
- 在 时间段 输入中指定故障发生时刻 ±10 分钟 ~ ±30 分钟
- 条数 设为 1,000 条(避免遗漏项目)
第 2 步 — 优先查询严重级别
- 将 级别 下拉框设为 严重 (ERROR) → 查询
- 从左侧表格第一行(最近的 ERROR)开始确认消息
- 通过右侧 按应用分布 图表确认哪个模块产生了较多 ERROR
第 3 步 — 确认同时段的警告
- 将 级别 改为 警告 (WARN),查询相同时间段
- 确认 ERROR 之前 1~5 分钟内发生的 WARN 消息 — 通常是 ERROR 的线索
第 4 步 — 按模块收窄
- 用 应用 下拉框选择 ERROR/WARN 最多的应用
- 将 级别 重新放开为 全部级别,查看模块内的全部流转 — INFO 中断的时点就是线索
第 5 步 — 消息模式
检查左侧表格的消息正文。区分是相同消息反复出现(规则风暴),还是仅出现一次的偶发(外部状态变动)。
第 6 步 — 移交系统管理员
若故障原因操作员无法自行处理,请通过 全量导出 按钮下载 CSV 文件并提交给系统管理员。报告时建议一并附上以下内容。
- 故障发生时刻(首个 ERROR 的时间)
- 影响范围(哪个站点/模块)
- 1~3 条 ERROR 消息文本
- CSV 文件
常见诊断消息模式
| 消息关键字 | 含义 | 一般措施 |
|---|---|---|
Connection timeout | 外部服务连接超时 | 检查网络状态·目标服务是否运行 |
Out of memory / OOM | 内存不足 | 巡检系统资源·考虑重启(系统管理员) |
Disk space low | 磁盘可用空间不足 | 清理旧数据或扩容磁盘 |
Authentication failed | 认证失败 | 确认令牌·账号信息是否过期/错误 |
Buffer overflow | 处理队列已满 | 通过触发器前置过滤·外部 IO 限流来平抑负载 |
Job already running | 作业重复执行 | 上一个作业未完成 — 由系统管理员巡检 |
Failed to parse | 消息解析失败 | 检查外部系统的报文格式 |
Schema mismatch | DB/消息 schema 不匹配 | 由系统管理员巡检(可能是刚部署完) |
Pipeline exception | 数据流水线异常 | 一并确认 日统计的选定日期详细图表 |
Edge disconnect | 边缘设备断开 | 在连接管理中确认各设备状态 |
常见问题
Q. 看不到消息搜索(关键字)输入框。
A. 视运行环境配置,消息正文搜索可能被禁用(display:none)。如需启用,请联系系统管理员。
Q. 诊断数据的保留周期是多久?
A. 默认 7 天。如需长期保存,可通过 全量导出 将 CSV 导入外部系统,或使用流程的诊断触发器(flow_on_diagnostic)自动写入外部日志系统。
Q. ERROR 累积非常多,但都是同一条消息。可以忽略吗? A. 若相同 ERROR 在短时间内反复出现,说明是同一个原因的风暴,计数本身意义不大。请先关注首次发生时刻和消息本身。
Q. 刷新按钮可以改成自动刷新吗? A. 该界面仅支持显式刷新。若运行监控需要自动更新,请以较短间隔点击刷新,或通过流程的通知自动化,在发生 ERROR 时接收推送。
Q. 时间轴的标记颜色太密集了。 A. 将 条数 下拉框调小(100~200 条),或将 级别 收窄为 ERROR/WARN,可提升可读性。
Q. 同一时刻所有模块都发出了 ERROR。 A. 很可能是公共基础设施(消息通道·存储)故障。请一并确认仪表板健康栏中的基础设施/引擎状态。
Q. CSV 下载耗时很久。 A. 很可能是搜索条件过于宽泛。请将时间段缩短到 24 小时以内,或限定模块。