
天翼云是中国电信旗下一家科技型、平台型、服务型公司,以“云网融合、安全可信、绿色低碳、生态开放”四大优势,为客户提供公有云、私有云、专属云、混合云、边缘云全栈云服务。天翼云在 Apache Doris 上的应用规模庞大,已在生产环境中落地超 30 个项目,覆盖广泛的业务场景,展现出大规模、多类型场景并行运行的特征。
而在大规模集群部署的背景下,我们在运维上面临以下几项挑战:
在当前大规模生产环境中,运维团队在日常问题处理上资源紧张,人力长期处于捉襟见肘的状态。为应对这一挑战,团队经过持续探索,逐步明确了通过 AI 技术提升运维效率的方向,旨在构建智能运维体系,实现整体效率的提升。
2024 年下半年,Anthropic 公司发布了 MCP 协议。通过 MCP 协议,AI Agent 可以实现智能工具调用,可根据运维场景自动选择和组合多个监控、诊断、治理工具,形成完整的运维治理工作流。
面对 Data Agent 时代的巨大机遇,各大数据库厂商纷纷推出了自己的 MCP Server 解决方案。然而,通过深入的技术分析和实际测试,我们发现这些解决方案在功能完整性、技术先进性和企业适用性方面存在巨大差异。
Apache Doris MCP Server 以其卓越的技术实力和完整的功能体系,成为了 Data Agent 时代的完美答案。Apache Doris MCP Server 不仅在数量上提供了业界最丰富的 25 个专业工具,更重要的是在质量和深度上实现了全面超越。

Apache Doris MCP Server 是一个基于 Python 和 FastAPI 构建的后端服务,支持客户端通过已定义的“工具”与其进行交互。该服务主要用于连接 Apache Doris 数据库,并利用大语言模型(LLM)执行多种任务,例如将自然语言查询转换为 SQL(NL2SQL)、执行查询,以及进行元数据管理与分析。
在天翼云智能运维体系的搭建中,主要依赖于 Apache Doris MCP 完成,尤其是在任务智能诊断及集群健康诊断这两项主要能力。接下来将对具体的实现及重难点进行详细介绍。
任务诊断的核心在于如何有效利用人力资源,高效应对大量生产集群持续出现的问题,降低排查门槛,使更多人员甚至客户能具体问题排查及分析的能力。同时,由于客户对 Apache Doris 的使用经验有限,就需要提供工具化手段、缩短问题排查时间、提升整体运维效率。

任务诊断的第一步,是基于策略或 AI 对集群内所有任务(包括运行中和历史任务)进行综合分析,以识别出应优先处理的 Top-N 任务。之所以需要这一筛选,是因为在实际操作中难以逐一排查所有任务,因此该步骤成为保障诊断效率的必经环节。
筛选手段包括 AI 分析和基于 MCP 工具的手段,目前阶段我们主要依赖扩展后的 Apache Doris MCP 工具,以获取 Top-N 任务。在识别目标任务后,需要进一步获取与任务分析相关的运行时信息,包括 Profile 信息、任务信息、审计数据及相关监控指标等。根据这些信息,任务诊断分为两个层面的评估:
虽然 AI 在很多常见场景中已取得广泛成功,但在专业性较强、知识体系复杂的领域,其表现仍显不足。尤其在直接向模型提问时,常常会生成不够准确,甚至偏差或不相关的回答。因此,提升 AI 在专业场景中的准确性成为首要挑战。为提升 AI 精确度,我们主要采取两类手段:
A. 提示词(SOP):
通过提供清晰且结构化的提示词,可以规范 AI 的分析路径。例如,
如下图所示,展示了提供给 AI 的提示词结构。

然而,单靠 SOP 仍不足以保障准确性,原因是未经训练的 AI 模型通常缺乏专业知识,对领域概念的理解有限,容易生成模棱两可或仅停留在通用层面的回答,这与生产环境需求存在明显差距。因此,需要为 AI 提供专业知识的载体。
B. MCP:
当前较为有效的方式是引入 MCP,其具有两个核心特性:专业性和集成性。
在本场景中,团队主要使用 Apache Doris 的 MCP,并进行了大量优化,以满足实际需求。例如,增加了用于获取 Profile 的工具、提取 Task 信息的工具及分析审计记录的工具。同时,还将这些工具与自研的 Profile 可视化工具集成到 MCP 中,使其可在 MCP 体系内被调用。下图展示了 MCP 工具扩展的部分示例:

在提升 AI 诊断能力精准度之后,继而发现这一过程仍存在新的挑战。由于任务本身具有较高复杂度,若将完整诊断流程以一次性方式交由 AI 执行,往往会因上下文长度过长、分析逻辑过于复杂、生成内容体量较大等因素,导致模型处理超时或中断。因此,仅依赖单轮交互难以稳定支撑完整诊断过程。
为解决这一问题,我们引入了“分治”的思路,将原本体量庞大、结构复杂的诊断任务拆解为多个规模更小、边界更清晰的子任务,并通过多次与 AI 交互逐步完成整个诊断流程。首先通过一定策略锚定慢查询和大导入的任务列表,然后对 TopN 的任务做一个整体的评估,最后在对单任务逐个进行分析。
拆分过程需遵循明确的方法,避免随意切分。核心原则是尽量降低子任务之间的关联度,以防上下文依赖过强而增加负担。分治策略还带来另一项收益——并行化处理,拆解后的任务可以进行独立诊断,彼此不存在依赖关系,因此能够并行提交多次请求,让 AI 同时处理多个分析任务。此外,列表提取、整体评估和子任务诊断等流程也可拆分为相互独立的步骤,在并行执行后显著缩短整体诊断耗时。
另一方面,AI 生成的诊断结果通常以大段文字呈现,阅读效率较低,不利于快速理解。因此需要进一步提升结果呈现方式的可读性与表现力。为此,利用 AI 提供的格式化输出能力,通过提示词要求模型按指定结构返回数据。通过动态渲染工具把任务表格、任务整体评估报告、单任务的报告一并连接起来,结合图表的强表现力合并成一个完整的分析报告。
示例展示了为 AI 定义的输出格式,用于规范 AI 生成报告的结构。

在前述优化方案实施后,团队对任务诊断分析的实际效果进行了评估。在下方示例中,诊断了三个具体任务,随后进行整体评估,基于这一组任务生成综合报告。


过去如果需要对一个集群的慢 SQL 进行全面分析,即便投入一到两小时也未必能够完成。而在引入 Doris MCP Server + AI 之后,慢 SQL 的分析结果基本能够在 5 分钟内生成,执行效率提升约为 95.8%,准确率从 80% 提升至于 99.99%,这一数值同样较为保守,人工排查很多情况下准确率不足 60% ,且花费时间更长。

基于 AI 的智能运维体系中,另一项关键任务是集群健康诊断。这项工作旨在应对监控告警过载和问题发现滞后带来的运维负担以及业务稳定性挑战,从而提升运维效率和响应速度。
集群健康的诊断主要分为两种:
集群诊断能力同样依赖 MCP 和 SOP,以确保诊断的准确性。在这一环节中,我们进一步扩展了多个 MCP 工具,使 AI 能够更精准地完成专业分析任务。

如何评估 Apache Doris 中表的健康度?这一过程需要专业知识。表的健康度评估包括多个维度,如分区情况、tablet 状态、版本健康度、副本健康度及 segment 数量等。这与机器健康、存储健康和压缩的评估方法相似,都依赖特定公式将相关指标组合,计算出健康度结果。
以表级健康度为例,尽管流程概述简单,但其内部包含复杂的计算逻辑。
公式如下: 表健康度 = 分区健康度 * 0.05 + tablet 健康度 * 0.3 + 版本健康度 * 0.25 + 副本健康度 * 0.3 + segment 健康度 * 0.1
在评估 tablet 健康度时,我们统计表级的分桶总数和最大分桶大小,并计算标准方差,以识别潜在的数据倾斜情况。例如,某些分桶过大而另一些过小时,需要结合方差值进行判断。此外,最大分桶的大小也需关注,因为分桶过大会影响查询效率,而分桶过小则可能导致 segment 数量过多,进而影响查询性能。查询效率与典型的“漏斗模型”密切相关,过多的 segment 会加重查询负担。
进一步分析涉及 segment 健康度的计算逻辑。整体而言,健康度计算依赖专业知识,通过精确计算得出真实反映对象健康状况的评分,从而帮助发现潜在问题。
具体的计算公式可见:


具体可见下方示例:


过去依赖人工进行分析。若对一个集群进行巡检并分析结果,需要检查多项指标并、逐个排查各组件和模块,整个流程需要六个小时才能完成,还需形成诊断结论。在使用 AI 之后,这一过程的整体耗时大幅缩短,完整的集群诊断基本可在 10 分钟左右完成,并能够提前发现潜在问题,无需等到故障发生后再进行处理。

我们建立了一套自动化质量评估体系,主要用于解决前文提到的版本数量多、发版风险高等问题,避免新版本对生产环境造成影响。该体系的主要思想就是在版本发布之后通过自动化流程把 UT、集成测试、性能测试、用户核心 case 都回归测试,再由 AI 对这些结果进行分析,输出诊断结论及相应的优化建议。

需要说明的是,真实业务场景通常较为复杂,可能同时涉及数据导入、查询,以及查询之间的串行或并行运行模式。在不同场景下,某些查询组合在并行状态下可能会出现问题,而这些组合关系本身具有一定讲究。因此,未来可以通过引入更多策略,让 AI 根据用户用例自动完成任务调度设计,例如根据已有用户用例自动规划任务组合,以便更有效地暴露潜在问题。
质量报告的示例中包含多类测试的结论。例如,UT 测试结论以及与历史版本之间的对比结果都会在报告中呈现,测试的结论、性能测试的结果以及相关的测试图表。通过这些测试数据,AI 会生成关于整体质量状况的分析及优化建议。

在版本质量方面,以前发布新版本时,需执行单元测试、部署至 POC 环境并进行测试等多个步骤,这些流程都需要投入大量人力和时间。此外,测试结果的分析同样需要手工完成,整体资源消耗较大。
在自动化体系建立后,这些流程均可由系统自动执行。尽管完整流程大约需要 5 个小时,但在此期间几乎不需要人工干预,只需一键触发等待结果。5 个小时主要是在单元测试、数据导入以及与 POC 环境的集成。如果环境资源充足,编译和单元测试执行速度更快,整体耗时有望进一步降低。
在质量保障方面,过去的代码合并和 BUG 发现主要依赖人工,可控性较低。引入 AI 后,这些过程得以统一处理,质量评估准确率可达 80%。如果用户用例模型更加完善,测试场景更丰富,并允许 AI 自主组合用例进行测试,则潜在问题更可能提前暴露,进一步提升质量保障能力。

当前,基于 AI 的智能运维主要落地在上述三个场景中,未来我们还将进一步推广至更丰富场景中。不仅如此,未来在能力的扩展下,我们还将进行以下工作:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 [email protected] 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 [email protected] 删除。