诊断
目录

概述
诊断界面以时间顺序时间线 + 表格 + 统计图表三种视角,同时展示平台内部发生的所有诊断事件(信息、警告、严重)。系统管理员或操作员在排查故障原因时,首先进入的就是此界面。
此界面将以下操作整合在一起。
- 时间线 — 一目了然地查看时间轴上哪里发生了什么
- 日志表格 — 精确的时间、应用程序、级别、消息内容
- 统计面板 — 级别比例、时段分布、应用程序分布
路径:左侧菜单 > 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 根据单元格宽度截断 — 如需换行查看,请双击行或鼠标悬停) |
行交互
- 悬停: 行背景高亮
- 点击: 时间线上的对应标记同步高亮 (左右同步)
- 双击/弹窗: 显示完整正文和堆栈跟踪等额外信息的模态框
表格底部翻页
当查询条数较多时,按页显示。每页行数由搜索区的 条数 下拉框(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/消息架构不匹配 | 系统管理员检查 (可能是部署后立即出现) |
Pipeline exception | 数据流水线异常 | 同时查看 每日统计的所选日期详细图表 |
Edge disconnect | 边缘设备断连 | 在 连接管理 中检查各设备状态 |
常见问题解答
问:看不到消息搜索(关键字)输入框。
答:根据运行环境设置,消息正文搜索可能已禁用(display:none)。如需启用,请联系系统管理员。
问:诊断数据的保留周期是多久?
答:默认为7天。如需长期保存,可通过 全部输出 将 CSV 存入外部系统,或通过 流程 的诊断触发器(flow_on_diagnostic)自动存入外部日志系统。
问:积累了大量 ERROR,但都是相同的消息。可以忽略吗? 答:如果在短时间内重复出现相同的 ERROR,说明是单一原因导致的激增,仅计数意义不大。请先关注首次发生时间和消息本身。
问:可以将刷新按钮改为自动刷新吗? 答:该界面仅支持手动刷新。如需用于运行监控的自动更新,可短周期点击刷新,或通过 流程 的通知自动化设置 ERROR 发生时接收推送。
问:时间线上的标记颜色太密集了。 答:将 条数 下拉框调小(100~200条),或将 级别 缩小到 ERROR/WARN,可提高可读性。
问:同一时间所有模块都发布了 ERROR。 答:很可能是公共基础设施(消息通道、存储)故障。请同时查看 仪表板健康轨道 中的基础设施/引擎状态。
问:CSV 下载耗时很长。 答:可能是搜索条件过于宽泛。请将期间缩短至24小时以内,或限定模块。