来源:2025年度农村金融机构科技创新优秀案例评选

获奖单位:陕西农信

荣获奖项:专家好评十大优秀案

一、项目背景及目标

随着数字化转型的不断推进,陕西农信信息系统正处于由传统架构向分布式架构演进的快速迭代期。同时,基于“云容器+分布式微服务+Devops”的云原生系统架构不断推广,业务处理所经过的系统节点复杂性呈现出指数级增长。在云原生架构下,业务在系统中办理需要数十个微服务、中间件相互协作调用,逻辑处理单元之间的交互变得复杂,依靠传统监控手段难以快速定位故障点。同时在日常的风险排查、变更评估中,传统模式依靠人工梳理调用链路的方式已无法保证云原生架构下业务链路信息的完整性和即时性,日常运维工作难以从“经验判断”发展到“数据决策”模式。

经过对我社应用性能监控工具的现状分析并结合面向业务运维的整体监控规划,本项目主要建设目标为:基于字节码增强技术,构建云原生架构下的系统可观测能力,补齐系统服务调用关系发现、服务性能微观监测等能力;实现业务系统关键信息节点“横纵结合”调用拓扑链路的可视化,对我社分布式架构下的应用系统、数据库、中间件的调用信息进行聚合,分层反映调用关系、服务依赖等信息,实时监控业务交易性能,对异常交易流量进行识别,洞察服务或交易内部处理的逻辑实现路径,强化信息系统业务性能微观监测的能力;实现代码级故障诊断能力,剖析程序调用栈、类、方法信息,深挖故障根源。

二、创新点

陕西农信业务链路监控系统作为我社自研的监控类工具,为贴合我社业务系统特点、满足日常运维管理工作,提供一套具有覆盖全行业务系统能力的工具类系统。

1、宏观到微观的多观测层级

为了更贴近我社运维现状,平台的观测功能由宏观视角逐层向微观视角进行了递进式设计。

图 1观测层级设计
打开网易新闻 查看精彩图片
图 1观测层级设计

宏观视角由场景、系统、应用三大观测对象构成。场景下的逻辑节点作为业务-技术的衔接,由渠道侧业务系统设计人员明确功能接口与业务逻辑的映射关系,如柜面系统的9101040001功能接口是用于开户办理的业务功能实现,则定义该功能接口为“开户办理”的逻辑节点。而基础场景又由多个节点共同组成,例如“开户”业务是由“账户检查”、“信息核验”、“开户办理”等逻辑节点组成,并绘制条件关系。同时将“开户办理”逻辑节点设为业务锚点,则“开户”的交易量由业务锚点交易量计算,体现整体业务办理情况。组合场景则是由多个基础场景构成,功能逻辑与基础场景类似。

图 2 场景观测
打开网易新闻 查看精彩图片
图 2 场景观测

系统观测对象,作为多个应用组成的逻辑单元,其性能指标由对外服务接口的指标共同体现。而应用作为运维可操作的最小技术单元,同时也是本系统最小的宏观观测单元,其功能最为丰富,包括应用性能趋势、异常分析、数据库、中间件、功能接口、应用交易拓扑图、交易明细等核心功能,体现应用各方位的运行情况。

图 3系统指标设计
打开网易新闻 查看精彩图片
图 3系统指标设计
打开网易新闻 查看精彩图片
图 4系统详情、应用详情
打开网易新闻 查看精彩图片
图 4系统详情、应用详情

微观视角则由接口、实例、技术组件构成,作为更加细节的观测视角,体现应用关键内容的运行情况。接口体现应用对外提供服务的运行情况,实例则体现应用各个实例下负载性能、JVM、连接池等运行情况。技术组件则以应用为观测视角,展示处理业务逻辑过程中所使用数据库、中间件的执行情况。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
图 5接口、实例、数据库、中间件运行情况
打开网易新闻 查看精彩图片
图 5接口、实例、数据库、中间件运行情况

其次,借助埋点技术采集到代码级的关键方法执行数据,对于单笔交易的关键方法的执行进行高度还原,详细展示数据库获链、SQL执行、关闭链接、通用SDK调用、中间件调用、跨系统调用、第三方调用等更加详细的执行信息,为运维、开发提供强大的数据支撑。

图 6 单笔交易执行过程
打开网易新闻 查看精彩图片
图 6 单笔交易执行过程

图 6 单笔交易执行过程

2、技术+业务双视角监控

大多数的APM类工具,或以交易报文/交易日志等业务数据为基础,进行业务运行性能的监控;或以调用链/监控日志等技术数据为基础,对应用运行性能进行观测。例如,从技术的角度,应用提供了POST接口,而从业务角度,该接口上承载着大额转账、小额转账、他行转账(通过交易码区分)等多种业务类型的处理,技术观测重点在于该接口是否运行正常,而业务观测重点在于各类业务类型交易处理是否正常,两者既有必然关系(如HTTP接口报404,其业务交易一定失败),又有非必然关系(业务失败,但接口可正常返回),同时接口也并不一定承载业务(例如定时任务等)。因此为了兼容两者,在观测功能上,本系统对两种视角进行了区分,技术视角关注应用全部接口的请求量、失败数、耗时等技术指标;业务视角则只关注业务运行的交易量、平均耗时、技术失败量、业务失败率等业务侧指标。

打开网易新闻 查看精彩图片
图 7业务、技术运行视角
打开网易新闻 查看精彩图片
图 7业务、技术运行视角

3、静态链路学习沉淀

本系统通过我社运维数据中台高效的海量数据处理能力以及存储能力,设计开发了“动态”转“静态”的调用链拓扑关系学习模块。首先,我们称在数据、参数、逻辑分支等影响因素下,相同的交易可能形成不同的链路为“通路”,例如都是存款业务,但由于金额大小不同,在业务处理过程中会调用不一样的系统,则存款业务会存在大额存款、小额存款等通路可能。通过对T-1小时的交易链路的数据加工,对比存量库中已识别到的交易通路,更新最后发现时间、新增增量通路,实现“动”转“静”的能力。此功能支撑我社在变更影响分析、变更复盘、故障影响分析等各类工作中起到关键数据支撑作用。

图 8静态通路展示
打开网易新闻 查看精彩图片
图 8静态通路展示

4、链路+日志精准确定问题

日志是问题分析不可或缺的重要手段之一,为了将链路的定界定位能力与日志的详细描述能力形成合力,本系统对日志框架进行埋点适配,将链路关键信息增加到日志中,实现链路与日志的数据关联,而后与我社日志管理平台打通接口,实现看链路定位、看日志分析的一站式功能体验,提高事件处置时效。

图 9链路快速定位
打开网易新闻 查看精彩图片
图 9链路快速定位

三、项目方案

本系统以Java字节码增强技术为实现原理,通过无侵入式埋点,获取业务调用链信息并进行加工、聚合等处理,实现分布式架构、传统架构的Java应用系统准实时的性能监控以及调用链数据的获取,并建设可视化观测、业务运行监测、系统运行监测、技术组件运行监测、业务拓扑、系统依赖影响分析、调用链明细检索、告警管理、采集管理等核心业务功能,实现业务系统性能、调用关系拓扑、关键方法执行等可视化能力。

1、技术架构

在技术架构设计方面,本系统按照我社自主可控能力建设工作以及信创相关工作要求,对系统进行了技术架构设计:

图 10 技术架构图
打开网易新闻 查看精彩图片
图 10 技术架构图

采集层基于开源技术SkyWalkingAgent进行增强,获取交易报文、链路详情、链路指标、应用数据。同时对日志框架进行埋点,将链路关键信息增加到日志中,实现链路与日志的关联。

数据逻辑层包括三大核心数据处理组件:OAP组件针对链路、交易报文、应用运行、环境信息、启动命令、配置参数等数据进行处理和分析,同时负责链路数据的查询功能;Sniffer组件作为业务数据解析器,用于解析业务报文;DOMP组件提供监控数据查询以及平台调度能力。

持久化层通过Clickhouse存储链路详情数据以及业务报文数据;Doris存储多维指标数据,按照指定的粒度进行聚合,实现上卷下卷查询;通过国产关系型数据库人大金仓对本系统使用的配置以及权限管理等关系型数据进行数据持久化。

展示层使用VUE框架,实现前后端分离,形成平台功能界面,并提供数据推送能力。

2、功能架构

本系统业务功能包含可视化观测、业务运行监测、系统运行监测、技术组件监测、业务拓扑、系统拓扑、调用链路明细检索、告警管理、采集管理九个业务模块。具体如下:

图 11功能架构图
打开网易新闻 查看精彩图片
图 11功能架构图

(1)可视化观测

提供监测驾驶舱,支持专项大屏定制,可视化呈现重要业务或重要系统的实时运行概貌,并提供标准的对外数据接口。

(2)业务运行观测

构建业务观测墙,实现业务请求次数、响应时间(均值、P95分布值、P99分布值等)、错误数、吞吐率等观测指标信息的实时监控功能。系统能够根据业务链路监测数据绘制业务逻辑通路,生成关键信息(技术组件、接口等)节点列表,支持用户针对业务链路监控数据进行多维统计分析。

(3)系统运行监测

实现不同层级的应用性能监控能力。实现接口访问监测、进程实例访问监测、数据库连接池监测、SQL调用监测、中间件调用监测等应用系统运行的关键步骤分析功能。

图 12业务系统墙
打开网易新闻 查看精彩图片
图 12业务系统墙

(4)技术组件运行监测

实现数据库、消息队列、缓存队列等技术组件的调用量、失败量、平均耗时等指标的监测能力,为日常监测、故障排查提供从技术组件作为切入点的监测使用场景。

(5)业务拓扑

针对贯穿多系统的业务,展示业务流经关键信息节点的调用关系聚合拓扑,显示所有参与业务处理节点的指标情况。

(6)系统依赖影响分析

以应用系统的系统、实例、接口为分析单元,展示上游影响以及下游依赖关系,并展示调用占比、被调用占比等影响分析指标。

(7)调用链明细检索

系统应实现对调用链进行关键信息(如:全局流水号、交易流水号等)的检索,并由系统自动进行单笔业务调用链的绘制,按调用顺序展示业务处理过程,以及各节点处理时间、状态等运行信息,能够详细显示数据库调用、中间件调用、第三方调用等关键方法的执行情况。支持与日志数据的关联,实现调用链路对应日志的快捷查看。

(8)告警管理

建立以业务、系统、技术组件三大维度的异常识别机制。按照性能指标(交易量、响应时间、失败率)进行聚合数据或明细数据的告警阈值策略配置,并支持接入AIOps进行动态基线加工。

(9)采集管理

为保证被检测业务系统的健康运行,服务端可查看所有采集端(探针)状态,并支持对探针进行远程管理。可通过对探针的采集细粒度、采样频率进行调整,实现探针资源开销限制和自动熔断机制,并满足日常监测、故障排障的不同场景下对于采集数据细粒度的差异化要求。

四、技术实现特点

1、安全可靠的探针自限、自监控机制

通过对JavaAgent技术的研究,建设初期识别到该项技术存在三项技术风险,一是增强代码的异常可能会影响应用系统的正常运行,二是链路增强代码的运行会占用少量的内存、CPU资源,三是由于链路数据向服务端传输,占用网络出带宽。针对识别到的风险,本系统建设时,对探针的基础能力进行了全面强化:首先对埋点自身异常的处理进行强化,针对构造方法、静态方法、实例方法均增加异常捕获机制;其次通过操作系统CPU、内存使用率、系统并发数等限定条件的设置,控制探针端SQL语句、技术埋点、交易属性、通讯埋点等采集策略的动态调整,保证在被监测对象高负载状态下的探针自限;同时,控制每分钟发送链路数据的总容量,限制其对网络带宽的影响。

在探针自限机制保障的同时,探针侧也将心跳状态、异常日志、采样忽略数、队列堆积数、埋点插件耗时情况上报至服务端,可在服务端查看探针运行情况,同时也配置相关告警,当探针运行异常时及时告知管理员。

图 13探针自限机制
打开网易新闻 查看精彩图片
图 13探针自限机制
图 14探针运行自监控
打开网易新闻 查看精彩图片
图 14探针运行自监控

2、基于交易报文要素的多维指标分析

为了方便分析异常现象发生规律,同时也为技术、业务双观测视角的实现,探针侧在采集链路、运行指标等技术数据的同时,将业务报文进行裁剪,保留具有分析意义的字段上送服务端,如渠道号、机构号、交易码、返回码等。服务端将业务数据解码后作为链路的补充字段。

图 15技术、业务数据的采集及处理流程
打开网易新闻 查看精彩图片
图 15技术、业务数据的采集及处理流程
图 16数据处理逻辑
打开网易新闻 查看精彩图片
图 16数据处理逻辑

在进行交易分析时,可通过业务数据进行挖掘、叠加,分析各种维度下的交易量、技术失败数、响应时间情况,快速发现异常规律。

图 17多维分析
打开网易新闻 查看精彩图片
图 17多维分析

3、高效的链路数据处理、存储能力

作为全行级的工具系统,需支持大量链路数据的流式处理、指标存储、明细存储、多维海量数据检索等能力,根据建设初期估算,完成全行业务系统接入后,至少应支持业务系统日均2亿次接口调用次数下的数据处理及消费能力,数据处理峰值TPS应达到2.3w笔。因此在技术选型上,选择了更贴近需求的ClickHouse、DORIS作为本系统的数据持久化方案,同时优化存储和查询引擎,实现高并发的数据写入和查询能力;其次优化维度模型与关系模型,提高查询性能。系统所有计算单元、存储单元均支持在线扩容和缩容,轻松应对数据量和计算需求的变化。

五、项目过程管理

1、项目启动

本项目于2024年7月启动。项目启动阶段主要工作内容包括制定工作说明书、组建项目组、召开项目启动会等工作等。

2、总体调研

此阶段于2024年7月下旬进行,主要工作内容为项目组在成立后对项目整体的需求范围进行分析。分析工作内容包括:

接入系统调研:对目前全行主要业务系统技术架构进行调研,确定主流开发语言、JDK版本、框架类型版本、中间件数据库类型版本等,确保技术选型能够覆盖大部分业务系统。

需求分析:针对陕西农信业务系统特点、日常运维管理工作现状,设计一套具有覆盖全行级业务系统能力的调用链路监控工具,覆盖安全性需求、功能性需求、易用性需求等。

需求跟踪和进度报告:对需求及进度进行跟踪及汇报。

3、功能设计及本地化功能开发

此阶段开展时间为2024年8月下旬至12月下旬。主要工作内容包括:根据需求涉及到的功能需要,进行探针安全性需求功能的开发与主要监控功能开发、链路监控数据流水线开发、标准分布式SDK/ESB探针插件开发、新核心项目/远程银行项目探针适配开发、可视化功能开发等。

4、平台测试

此阶段时间为2024年12月下旬至2025年2月下旬。在本阶段内,项目组按照陕西农信应用系统测试规范,配合测试部门完成了系统的集成测试、UAT测试、非功能测试、安全评估测试等工作,并由测试部门出具最终测试报告。包括完成安全漏洞扫描、部署方案设计、验证方案设计、回退计划制定等前置工作,并按照要求准备上线申请材料,接受上线评审。

5、平台部署

2025年2月下旬开始平台部署。在本阶段内,项目组开展了相关系统上线前部署准备工作,包括运行平台资源申请、设计部署方案、验证方案、回退计划等。按照我社要求,提请变更申请流程,进行变更评审,并按照预定部署方案变更步骤的实施。

6、平台试点系统接入及试运行

2025年3月上旬至今进入试点系统接入及试运行阶段,并对运维管理团队、一线运维人员进行系统使用培训。

六、运营情况

通过本系统的建设,我社补齐了业务系统横向监控能力,有效的提升了事件处置效率,降低事件影响时长,提升业务连续性。目前本系统已作为基础平台,在业务系统生命周期的各个阶段全面支撑我社运维团队、测试团队、开发团队在故障定界、问题定位、缺陷排查、性能瓶颈分析等场景下多方位能力支撑。

平台上线至今,日均交易量5000笔,日均活跃用户100人。同时截至目前,已完成我社包括新核心、交易中台、统一C端、运营中台、数据中台在内的分布式微服务架构下对客对账类业务系统的探针适配开发,并陆续在生产环境稳步投产。

七、项目成效

1、复杂调用关系透明化

在本系统建设前,主要以人工梳理形成静态链路,加上业务系统性能监控数据,形成的关系链路监控,在集中式系统为主的技术架构下,基本满足监控及故障定界需求。但在调用关系复杂的云原生、微服务架构下,可实施性较差。本系统上线后,借助探针高效、安全、准确的链路数据生成采集,加以平台分层级、多维度的场景化功能,将调用过程透明化,将关键方法的执行情况直接展示给分析人员,有效提升故障排查、性能瓶颈分析等各类活动的准确性、时效性,故障定界效率由10分钟缩短至1分钟,问题分析效率由1~10小时,缩短至10分钟。

图 18应用调用关系拓扑
打开网易新闻 查看精彩图片
图 18应用调用关系拓扑

2、全面支撑业务系统建设

以往我社的业务系统建设过程中,缺陷定位、原因分析、性能瓶颈分析、质量检查等行为,缺乏有效的数据支撑,存在跨组织沟通难、信息传递难、数据佐证难等多种问题。而本系统的应用不局限于生产运维,也适用于业务系统建设过程的多个阶段。在我社新一代核心项目群、新信贷系统、新财管系统建设过程中已显现成效,在项目建设初期即完成新核心链路探针适配,作为业务系统的“共生体”,在复杂场景测试、端到端性能测试等过程中,提供强有力的数据支撑,加快建设步伐。

3、代码级别的性能问题定位

当生产系统运行异常时,无法进行开发态的Debug行为,此外在当前国产化、微服务化等多重技术革新因素下,加剧了异常原因的复杂度,且部分异常无法在测试环境复现,生产环境又无法执行“内科手术”,导致问题定位无从下手。借助本系统接近Debug级探针埋点以及基于JavaAgent的线程池快照技术作为兜底手段,实现低成本的代码级别性能问题定位能力,有效解决各类运行疑难杂症。

八、经验总结

项目建设至今,严格按照项目整体规划,成功构建了以横向调用关系监控为核心目标的云原生全景可观测智能监控,为我社分布式架构下的运维工作提供了稳定且高效的数据支撑。自项目上线以来,借助该系统代码级的故障诊断、调用拓扑链路的可视化,在多次疑难问题的分析定位中,展现了高效、直接、准确的分析能力。未来,它将继续作为业务性能监控领域的关键工具,保障新核心项目群的稳步投产及业务系统的稳定运行,有力支撑我社实现高效、安全、可控的运行监测与事件处置等运维任务。同时经过我社多次验证,通过本系统无侵入埋点技术,能够有效解决行业内长期存在的横向关系观测难、定位难等问题,实现了低成本的快速构建横向调用可观测能力。

更多金融科技案例和金融数据智能优秀解决方案,请在数字金融创新知识服务平台-金科创新社案例库、选型库查看。