数据断层本质是时间线上连续数据点缺失,需逐层排查:先通过Query Inspector确认是否后端返回空或不连续;再验证数据源连接与稳定性;最后检查查询语句中rate窗口、label匹配、时间字段及相对时间设置是否合理。
监控大盘出现数据断层,本质是“时间线上本该连续的数据点缺失了一段”,不是完全没数据,而是中间突然跳空。排查要从数据链路的每个环节逐层验证,重点看数据是否真正到达、是否被正确查询、是否在传输中丢失。
打开面板右上角⚙️ → Inspect → Query inspector,查看原始响应:
[] 或 "data": {"result": []},说明后端没给数据,问题不在 Grafana 渲染层504,大概率是查询超时,需检查数据源响应速度进入 Grafana → Configuration → Data Sources,点击对应数据源的 Save & Test:
/targets 页面 Last Scrape 时间是否持续更新;InfluxDB 查 SHOW RETENTION POLICIES 是否过期;MySQL 检查监控表写入频率是否稳定$__timeFilter(time_column),且 time_column 名字要和实际字段名完全一致断层常发生在查询语句与数据标签、时间窗口不匹配时:
rate(metric[5m]) 在采样稀疏时会返回空(至少需要两个样本),可临时改成 [10m] 或改用 increase()
$job 值为 api,但 Prometheus 里实际存的是 job="apiserver",就会查不到蓝鲸典型链路是:bkmonitorbeat → GSE Agent → GSE DataServer → Kafka → Prometheus/Grafana:
tail -f /var/log/gse_bkte/bkmonitorbeat.log,看是否有采集失败、连接拒绝、指标为空等报错ps -ef | grep bkmonitorbeat 进程是否存活,CPU/内存是否异常飙高netstat -tlnp | grep :58625 看端口是否监听