故障排除
**本文引用的文件** - [[bi-common/observability/logger/README.md]](file/bi-common/observability/logger/readme.md) - [[bi-common/database/gormx/README.md]](file/bi-common/database/gormx/readme.md) - [[bi-common/database/gormx/config.go]](file/bi-common/database/gormx/config.go) - [[bi-common/registry/nacos/README.md]](file/bi-common/registry/nacos/readme.md) - [[bi-common/registry/nacos/config.go]](file/bi-common/registry/nacos/config.go) - [[bi-intra/charts/kafka/README.md]](file/bi-intra/charts/kafka/readme.md) - [[bi-intra/charts/grafana/deploy.sh]](file/bi-intra/charts/grafana/deploy.sh) - [[mcp-server-starrocks/src/mcp_server_starrocks/connection_health_checker.py]](file/mcp-server-starrocks/src/mcp-server-starrocks/connection-health-checker.py) - [[mcp-server-starrocks/tests/test_db_client.py]](file/mcp-server-starrocks/tests/test-db-client.py) - [[bi-chat/bi_chat/src/agents/general_agent.py]](file/bi-chat/bi-chat/src/agents/general-agent.py) - [[bi-chat/bi_chat/src/workflow/execution_engine.py]](file/bi-chat/bi-chat/src/workflow/execution-engine.py)
目录
简介
本故障排除文档面向BI分析平台的运维与开发人员,聚焦于启动失败、连接超时、性能问题、网络与数据库诊断、AI智能体系统调试与工具调用异常处理,以及应急响应与升级机制。文档提供系统化的排查步骤、日志分析技巧、关键指标解读与监控工具使用建议,帮助快速定位并解决问题。
项目结构
本平台采用多模块分层架构,包含:
- 通用基础设施:日志、数据库、配置中心(Nacos)、消息队列(Kafka)、监控(Grafana)等
- 业务服务:分析服务、API网关、聊天与智能体系统
- AI智能体:多Agent协作、工具调用、任务编排与反思
[本图为概念性结构示意,不直接映射具体源码文件,故不附“图表来源”]
核心组件
- 日志组件:统一日志格式、级别过滤、多输出(stdout/文件/SLS)、请求日志中间件、链路追踪
- 数据库组件:GORM封装、连接池、StarRocks优化、TLS加密、事务支持
- 配置中心:Nacos SDK v2,配置优先级、Kratos集成、服务发现
- 消息队列:Kafka Helm Chart,Combined Mode,健康检查与故障排查
- 监控:Grafana Helm部署脚本与仪表板
- AI智能体:多Agent工具调用、DAG执行、反思与异常处理
章节来源
- file://bi-common/observability/logger/README.md#L1-L489
- file://bi-common/database/gormx/README.md#L1-L608
- file://bi-common/database/gormx/config.go#L1-L227
- file://bi-common/registry/nacos/README.md#L1-L759
- file://bi-common/registry/nacos/config.go#L1-L223
- file://bi-intra/charts/kafka/README.md#L1-L291
- file://bi-intra/charts/grafana/deploy.sh#L57-L107
架构总览
图表来源
- [bi-common/database/gormx/README.md]
- [bi-common/registry/nacos/README.md]
- [bi-intra/charts/kafka/README.md]
- [bi-intra/charts/grafana/deploy.sh]
详细组件分析
日志组件(故障排查重点)
- 日志级别与格式:开发/生产不同配置;JSON格式便于分析;建议生产环境info/warn
- 敏感信息脱敏:避免记录密码、Token、身份证等
- 请求日志中间件:自动记录kind、operation、request_id、code、reason、duration_ms
- 多输出与降级:stdout、文件、阿里云SLS;云端失败不影响本地
- 告警配置:错误率、P95延迟、日志量异常
图表来源
章节来源
- file://bi-common/observability/logger/README.md#L342-L407
数据库组件(连接与性能)
- 连接池:MaxOpenConns、MaxIdleConns、ConnMaxLifetime、ConnMaxIdleTime
- StarRocks优化:自动MaxIdleConns=MaxOpenConns,禁用空闲回收
- TLS加密:系统默认CA、自定义CA、双向认证(mTLS)、SNI
- 健康检查:Ping接口;Stats连接池状态
- 慢查询:日志级别与慢查询阈值配置
图表来源
章节来源
- file://bi-common/database/gormx/README.md#L531-L572
- file://bi-common/database/gormx/config.go#L184-L227
配置中心(Nacos)与服务发现
- 零配置启动、环境变量优先级、Kratos集成
- 多配置文件合并、DataID自动推断(go.mod)
- 服务注册/发现、Kratos Registry集成
- 常见问题:鉴权失败、DataID不匹配、命名空间/分组错误
图表来源
章节来源
- file://bi-common/registry/nacos/README.md#L313-L392
- file://bi-common/registry/nacos/config.go#L191-L223
消息队列(Kafka)与监控
- Combined Mode:broker+controller在同一Pod
- 监听器:CONTROLLER(9093)、PLAINTEXT(19092)、PLAINTEXT_HOST(9092)
- 故障排查:DNS解析NXDOMAIN、Liveness探针失败、镜像拉取失败
- 部署验证:查看集群、创建topic、describe topic
图表来源
章节来源
- file://bi-intra/charts/kafka/README.md#L396-L404
- file://bi-intra/charts/kafka/README.md#L256-L291
监控(Grafana)部署与检查
- Helm部署脚本:创建Secret、检查Helm与Chart、等待安装完成
- 部署后检查:Pod状态、Service、ServiceMonitor、日志
章节来源
- file://bi-intra/charts/grafana/deploy.sh#L57-L107
AI智能体系统(调试与工具调用)
- GeneralAgent:工具注册(计算、百科、汇率、联网搜索),工具调用循环,异常处理
- DAG执行器:任务依赖满足检测、并行执行、错误上报与回退
- 反思器:评估结果满足度,反馈缺失部分,避免死循环
图表来源
- [bi-chat/bi_chat/src/agents/general_agent.py]
- [bi-chat/bi_chat/src/workflow/execution_engine.py]
- [bi-chat/bi_chat/src/workflow/execution_engine.py]
章节来源
- file://bi-chat/bi_chat/src/agents/general_agent.py#L1-L279
- file://bi-chat/bi_chat/src/workflow/execution_engine.py#L1-L287
依赖关系分析
图表来源
- [bi-common/observability/logger/README.md]
- [bi-common/database/gormx/README.md]
- [bi-common/registry/nacos/README.md]
- [bi-intra/charts/kafka/README.md]
- [bi-intra/charts/grafana/deploy.sh]
性能考量
- 日志性能:生产环境info级别、JSON格式、异步写入;高流量服务考虑采样
- 数据库性能:合理设置连接池参数;StarRocks优化减少连接抖动;慢查询阈值
- 网络与Kafka:探针参数调优、Headless Service Ready行为、镜像拉取优化
- 监控与告警:错误率、P95延迟、日志量异常阈值
[本节为通用指导,不直接分析具体文件,故不附“章节来源”]
故障排除指南
启动失败
- 检查依赖服务:数据库、Nacos、Kafka是否就绪
- 查看容器日志:Grafana部署后检查Pod日志与Service状态
- 环境变量与配置:确认日志、数据库、Nacos配置正确
- 配置优先级:环境变量 > 函数选项 > 配置文件 > 默认值
章节来源
- file://bi-intra/charts/grafana/deploy.sh#L57-L107
- file://bi-common/registry/nacos/README.md#L313-L392
连接超时
- 数据库连接:检查DSN、TLS配置、连接池参数;使用Ping与Stats诊断
- Nacos连接:确认鉴权、DataID、命名空间/分组;查看客户端日志级别
- Kafka连接:检查DNS解析、Service与Endpoints、端口连通性
章节来源
- file://bi-common/database/gormx/README.md#L565-L572
- file://bi-common/database/gormx/config.go#L184-L227
- file://bi-common/registry/nacos/README.md#L332-L360
- file://bi-intra/charts/kafka/README.md#L256-L291
性能问题
- 日志分析:使用request_id关联请求链路;关注错误率与P95延迟
- 数据库优化:调整连接池与慢查询阈值;StarRocks优化策略
- 监控告警:在Grafana中设置错误率与延迟阈值告警
章节来源
- file://bi-common/observability/logger/README.md#L401-L407
- file://bi-common/database/gormx/README.md#L531-L547
网络问题排查
- DNS与Service:确认Headless Service解析;必要时开启publishNotReadyAddresses
- 探针与健康:调整Liveness初始延迟与失败阈值
- 镜像拉取:配置私有仓库认证
章节来源
- file://bi-intra/charts/kafka/README.md#L396-L404
数据库连接问题诊断
- 连接健康检查:定期执行show databases;记录错误信息
- 连接参数解析:URL解析测试覆盖多种场景(IP、端口、特殊字符)
- 连接池状态:使用Stats查看InUse/Idle/WaitCount
图表来源
- [mcp-server-starrocks/src/mcp_server_starrocks/connection_health_checker.py]
- [mcp-server-starrocks/tests/test_db_client.py]
章节来源
- file://mcp-server-starrocks/src/mcp_server_starrocks/connection_health_checker.py#L15-L153
- file://mcp-server-starrocks/tests/test_db_client.py#L776-L811
AI智能体系统调试与工具调用异常处理
- 工具调用循环:捕获工具执行异常,记录错误并继续流程
- DAG执行:检测死锁/无进展,强制并行执行剩余任务;错误上报
- 反思器:评估结果满足度,反馈缺失部分;失败时默认满足防止死循环
章节来源
- file://bi-chat/bi_chat/src/agents/general_agent.py#L164-L263
- file://bi-chat/bi_chat/src/workflow/execution_engine.py#L55-L110
- file://bi-chat/bi_chat/src/workflow/execution_engine.py#L185-L194
- file://bi-chat/bi_chat/src/workflow/execution_engine.py#L282-L286
应急响应流程与问题升级机制
- 一级响应:快速定位日志与错误码,确认是否为瞬时异常
- 二级响应:涉及数据库/网络/配置中心的跨组件问题,组织跨团队协同
- 三级响应:影响范围广、SLA告警,启动应急预案并升级至技术负责人
[本节为通用流程建议,不直接分析具体文件,故不附“章节来源”]
结论
通过统一的日志、完善的数据库与配置中心、健壮的消息队列与监控体系,以及可编排的AI智能体系统,BI分析平台具备较强的可观测性与可维护性。遵循本文提供的系统化排查步骤与最佳实践,可显著缩短故障定位与恢复时间,保障业务连续性。
附录
- 常用命令与检查清单
- Grafana部署:检查Helm、Chart、Values;查看Pod/Service/ServiceMonitor/日志
- Kafka:查看Pod事件、StatefulSet、Service/Endpoints;DNS解析与端口连通性;创建/描述topic
- 数据库:Ping与Stats;DSN/TLS配置;连接池参数
- Nacos:鉴权、DataID、命名空间/分组;配置合并优先级
章节来源
- file://bi-intra/charts/grafana/deploy.sh#L57-L107
- file://bi-intra/charts/kafka/README.md#L256-L291
- file://bi-common/database/gormx/README.md#L565-L572
- file://bi-common/registry/nacos/README.md#L313-L392