CN116893945A - 一种运维云平台业务预警方法、系统及装置 - Google Patents
一种运维云平台业务预警方法、系统及装置 Download PDFInfo
- Publication number
- CN116893945A CN116893945A CN202310848956.6A CN202310848956A CN116893945A CN 116893945 A CN116893945 A CN 116893945A CN 202310848956 A CN202310848956 A CN 202310848956A CN 116893945 A CN116893945 A CN 116893945A
- Authority
- CN
- China
- Prior art keywords
- service
- cloud platform
- early warning
- business
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000012423 maintenance Methods 0.000 title claims abstract description 46
- 238000012544 monitoring process Methods 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 239000007858 starting material Substances 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 4
- 238000000547 structure data Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 8
- 230000005856 abnormality Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 229940004975 interceptor Drugs 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 2
- 244000046052 Phaseolus vulgaris Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009960 carding Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
Abstract
本发明提供一种运维云平台业务预警方法、系统及装置,通过程序性能监控工具,利用预设的数据上报接口自定义业务注解和切面类,将所需的关键业务数据与目标业务的跟踪进行绑定,在指定业务应用程序中,对接口层标记所述业务注解,通过部署业务作用域插件设置预定义的拦截器执行所述切面类,在所述目标业务执行过程中,基于调用链信息获取所述业务注解对应的属性值并关联至对应的追踪,利用日志存储,以实现高效的业务统计、业务性能监管和预警。
Description
技术领域
本发明涉及网络监控技术领域,尤其涉及一种运维云平台业务预警方法、系统及装置。
背景技术
运维平台主要由运维平台研发工程师理解业务需求后开发的,主要包括:机器管理、资源管理、网络管理、架构基础设施、部署平台、配置管理平台、数据管理平台、监控平台、容量管理、流量管理、故障管理、业务调度平台、工作流引擎、权限管理、运维元数据管理和运维统一门户。
随着互联网技术逐步发展应用,互联网用户愈发增多,IT技术领域考虑到分布式环境下到性能及调用关系梳理问题,产生出了对于运维平台的应用性能管理需求,为了对运维平台出现的性能和业务异常进行及时准确地处理,亟需一种运维平台业务预警方法、系统及装置。
发明内容
鉴于此,本发明实施例提供了一种运维云平台业务预警方法、系统及装置,以消除或改善现有技术中存在的一个或更多个缺陷,解决现有技术在分布式环境下难以对运维平台进行有效管理和性能监控的问题。
本发明的一个方面提供了一种运维云平台业务预警方法,该方法包括以下步骤:
在预设应用程序性能监控工具的采集端,结合预设的数据上报接口自定义业务注解和切面类,将所需的关键业务数据与目标业务的跟踪进行绑定;所述业务注解用于标记需要采集的关键业务数据,所述切面类为根据设定标准采集所述关键业务数据的操作程序;
在指定业务应用程序中,对接口层标记所述业务注解,通过部署业务作用域插件设置预定义的拦截器执行所述切面类,在所述目标业务执行过程中,基于调用链信息获取所述业务注解对应的属性值;将所述目标业务在执行过程中的所述属性值关联至所述目标业务的追踪,并构建为设定形式的结构数据,将所述结构数据通过预设链路发送至运维云平台的服务端;
由所述运维云平台的服务端对所述结构数据构建日志进行存储,并按照预设规则对所述结构数据进行业务统计、业务性能监管和预警。
在一些实施例中,所述预设应用程序性能监控工具为skywalking分布式系统应用程序性能监控工具;所述预设的数据上报接口是基于Opentracing定义部署的通用数据上报接口。
在一些实施例中,所述关键业务数据至少包括:用户信息、企业信息、业务信息和业务执行结果。
在一些实施例中,由所述运维云平台对所述结构数据构建日志进行存储,包括:基于日志组件Logback将所述结构数据打印在日志中。
在一些实施例中,所述方法包括:通过springboot starter结合集成SDK定义所述业务注解,至少包括:请求相应状态码、响应信息、用户标识、企业标识、业务标识和订单标识。
在一些实施例中,所述拦截器采用JavaAgent和ByteBuddy对用于执行所述切面类的静态方法进行字节码增强。
在一些实施例中,所述方法还包括:
分析业务异常状态并执行业务,在业务存在异常的情况下,生成告警信息;
其中,所述业务异常状态包括:业务性能异常和业务内容异常;所述告警信息至少包括:业务场景、业务编号、服务名称、短点名称、异常错误代码、错误信息、追踪ID、用户标识和企业标识。
在一些实施例中,所述方法还包括:将所述告警信息按照预设通知方式发送至指定对象。
另一方面,本发明还提供一种运维云平台系统,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现上述方法的步骤。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明的有益效果至少是:
本发明所述运维云平台业务预警方法、系统及装置,通过程序性能监控工具,利用预设的数据上报接口自定义业务注解和切面类,将所需的关键业务数据与目标业务的跟踪进行绑定,在指定业务应用程序中,对接口层标记所述业务注解,通过部署业务作用域插件设置预定义的拦截器执行所述切面类,在所述目标业务执行过程中,基于调用链信息获取所述业务注解对应的属性值并关联至对应的追踪,利用日志存储,以实现高效的业务统计、业务性能监管和预警。
进一步的,在JavaAgent、ByteBuddy技术、skywalking agent组件基础上,通过spring bootstart技术自定义SDK完成对业务的自定义注解并绑定业务模块,通过将信息打印在入职中,使得业务数据与日志和AMP(Application Performan 0.ce Management,应用性能管理)调用链信息双双绑定,实现对每一笔业务请求追踪的监控,提高了监控的效率。
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所述运维云平台业务预警方法的流程示意图。
图2为本发明一实施例所述运维云平台业务预警方法在执行具体业务时执行监控预警的流程示意图。
图3为本发明另一实施例所述运维云平台业务预警方法在执行具体业务时执行监控预警的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
在运维云平台中,面对复杂业务的监管和预警是相当复杂的,例如面向金融领域的复杂业务,传统监控方法无法将调用链信息与业务进行结合,无法满足对业务监控和预警的需求。
因此,本发明的一个方面提供了一种运维云平台业务预警方法,参照图1,该方法包括以下步骤S101~S103:
步骤S101:在预设应用程序性能监控工具的采集端,结合预设的数据上报接口自定义业务注解和切面类,将所需的关键业务数据与目标业务的跟踪进行绑定;业务注解用于标记需要采集的关键业务数据,切面类为根据设定标准采集关键业务数据的操作程序。
步骤S102:在指定业务应用程序中,对接口层标记业务注解,通过部署业务作用域插件设置预定义的拦截器执行切面类,在目标业务执行过程中,基于调用链信息获取业务注解对应的属性值;将目标业务在执行过程中的属性值关联至目标业务的追踪,并构建为设定形式的结构数据,将结构数据通过预设链路发送至运维云平台的服务端。
步骤S103:由运维云平台的服务端对结构数据构建日志进行存储,并按照预设规则对结构数据进行业务统计、业务性能监管和预警。
在步骤S101中,本实施例所述的预设应用程序性能监控工具为skywalking分布式系统应用程序性能监控工具;skywalking是分布式系统的应用程序性能监控工具,专为微服务/云原生架构基于容器架构而设计,它包括了分布式追踪,性能指标分析和服务依赖分析等功能。skywalking总体架构分为三个部分:采集端agent、服务端oap-server和前端展示webapp。Skywalking可以实现多种插件、接入端无代码侵入。
在一些实施例中,预设的数据上报接口是基于Opentracing定义部署的通用数据上报接口。Opentracing作为分布式追踪系统,提供了一种通用的方式来实现跨多个服务和语言的分布式追踪。具体是通过提供一种中立的API规范,统一接口,方便开发者在自己的服务中集成一种或多种分布式的追踪。
本实施例中,业务注解是一种元数据,用于在编译、运行时对代码进行解析和使用,起到说明、配置的功能。业务注解用于在应用程序的指定接口进行标记,并指示需要采集的数据内容。自定义切面类是指开发人员自己编写的用来实现切面功能的类。通过自定义切面类,可以定义在特定的切点(Pointcut)上执行的逻辑,例如在方法调用前后执行某些操作,或者在抛出异常时执行特定的处理。自定义切面类通常需要使用Spring AOP(Aspect-Oriented Programming)进行配置和管理。Spring AOP是Spring框架提供的一个面向切面编程的功能,通过它可以将切面类与其他的Bean(例如服务类或控制器)关联起来,实现横切逻辑的注入。在自定义切面类中,可以使用注解或XML配置定义切点、通知(Advice)和切面。切点用于定位到特定的方法或类,通知定义了在切点上执行的操作,切面将切点和通知结合在一起,形成完整的切面功能。通过自定义切面类,可以将横切关注点从核心业务逻辑中分离出来,提高代码的可维护性和重用性。同时,它也可以帮助实现一些与业务逻辑无关但必要的功能,例如日志记录、事务管理、安全性检查等。
通过将Opentracing引入skywalking的采集端,完成对业务注解和切面类的定义过程,将监控预警所需的关键业务数据与追踪Trace(Trace事物在分布式系统中移动时的描述,一个Trace代表着一个事务或一个请求)进行绑定,实现对每一笔请求的Trace的监控,并获取对应的关键业务数据。这里通过自定义springboot starter技术,同时结合SDK(Software Development Kit软件开发工具包)实现。Spring Boot Starter的目的是通过提供一组相关的依赖项,快速引入和配置特定功能所需的所有组件,以减少繁琐的手动配置,SDK是一种软件开发工具包,它是一组开发工具、库和文档的集合,用于帮助开发人员构建特定类型的应用程序或软件。SDK通常包含编译器、调试器、API文档、示例代码等,以及用于特定平台或框架的开发库。SDK提供了一种统一的开发环境和工具集,使开发人员能够更轻松地开发、测试和部署应用程序。
在一些实施例中,关键业务数据至少包括:用户信息、企业信息、业务信息和业务执行结果。其中,用户信息可以包括用户的身份标识ID、用户个人信息、用户类型、用户偏好等。企业信息包括提供服务的企业身份标识ID、企业提供的服务类型等。业务信息可以包括业务编号、业务标识、链路ID、接口地址等。业务执行结果是对业务完成情况的描述,根据不同的业务内容进行配置。
在一些实施例中,所述方法包括:通过springboot starter结合集成SDK定义所述业务注解,至少包括:请求相应状态码、响应信息、用户标识、企业标识、业务标识和订单标识。
在步骤S102中,指定业务应用程序是指运维平台所服务或者管理的应用程序,可以包括一个或多个相同或者不同业务功能的对象。通过对业务应用程序的接口层标记业务注解,设置拦截器执行切面类,在目标业务执行过程中,基于调用链信息获取业务注解对应的属性值。本实施例中采用Java拦截器获取业务注解定义的属性值,在Java中,拦截器(Interceptor)是一种用于拦截和处理请求或方法调用的组件,可以在方法执行前后插入自定义逻辑,以实现各种功能,如日志记录、安全验证、性能监控等。拦截器常用于框架、中间件和服务器端开发中,用于实现横切关注点(cross-cutting concerns)的功能。拦截器的运作方式包括:1)定义拦截器接口:首先,需要定义一个拦截器接口,通常包含在一个自定义的拦截器类中。该接口定义了要在方法调用前后执行的方法。2)创建拦截器实现类:实现拦截器接口,并提供自定义的逻辑。这些逻辑将在方法调用前后被执行。3)配置拦截器:将拦截器实例配置到特定的组件或框架中。例如,在Spring框架中,可以通过配置文件或注解将拦截器配置到控制器、服务或其他Bean上。4)执行拦截器:当目标方法被调用时,拦截器会拦截请求并执行自定义的逻辑。拦截器可以在方法调用之前执行预处理操作,如参数验证或安全检查。然后,它可以调用下一个拦截器或继续执行目标方法。在方法调用完成后,拦截器可以执行后处理操作,如日志记录或性能统计。5)链式调用:如果有多个拦截器配置在同一个组件上,它们将按照配置的顺序形成一个拦截器链。当方法调用时,请求将依次通过每个拦截器,每个拦截器都可以选择在方法调用前后执行自定义的逻辑。通过使用拦截器,可以将横切关注点的逻辑从业务逻辑中分离出来,提高代码的可重用性和可维护性。拦截器可以在不修改目标方法的情况下,对其进行增强或扩展。这使得拦截器成为实现日志记录、事务管理、缓存等功能的强大工具。在一些实施例中,拦截器采用JavaAgent和ByteBuddy对用于执行切面类的静态方法进行字节码增强。
本实施例中,所述的调用链信息(Call chain information),也称为方法调用链(Method call chain),是指在程序执行过程中,不同方法之间相互调用形成的调用路径。它记录了方法调用的顺序和层次关系,可以用于跟踪和分析程序的执行流程。调用链信息对于程序的调试、性能优化和故障排查非常有价值。通过分析调用链信息,可以了解方法之间的调用顺序、参数传递、返回值等细节,帮助开发人员定位问题和优化代码。拦截器在获取每条Trace的关键业务数据,进行关联后,并发送至运维云平台进行处理。
在步骤S103中,运维云平台的服务端对结构数据构建日志进行存储,最终实现关键业务数据、日志和APM调用链信息的双双绑定。在一些实施例中,由运维云平台对结构数据构建日志进行存储,包括:基于日志组件Logback将结构数据打印在日志中。
进一步的,基于实际应用中的需求设置监管方式和预警规则,示例性的,可以包括:
日志监控:通过在关键业务环节和代码中添加日志记录,可以收集和分析业务运行时的日志信息。结合日志分析工具,可以实时监控日志数据,发现异常情况,并触发预警机制。例如,使用ELK(Elasticsearch,Logstash,Kibana)等工具进行实时日志监控和分析。
指标监控:在关键业务数据上设置阈值,并定期收集和监控这些指标的数值。通过使用监控系统,可以实时观察指标的变化情况,并在指标超过预设阈值时触发预警。常见的监控系统包括Prometheus、Grafana等。
事务监控:对于涉及多个步骤的业务流程或事务,可以在每个关键步骤中添加监控点,并记录每个步骤的执行情况和耗时。如果某个步骤的执行时间超过预期或发生异常,可以立即触发预警机制。
实时监控:通过实时监控系统对业务流程进行实时跟踪和监控。可以利用仪表盘、大屏展示等方式,实时显示业务状态、流量情况、异常情况等,及时发现并解决问题。
异常检测和预警:通过使用机器学习、异常检测等技术,对业务数据进行分析,识别异常模式和行为,及时发现潜在的异常情况,并触发预警。
事件触发:通过设置业务事件的触发条件和规则,当特定事件发生时,自动触发预警机制。例如,当业务请求量超过一定阈值、某个关键操作失败等情况时,自动发送预警通知。
在一些实施例中,所述方法还包括步骤S201:分析业务异常状态并执行业务,在业务存在异常的情况下,生成告警信息。
其中,业务异常状态包括:业务性能异常和业务内容异常;告警信息至少包括:业务场景、业务编号、服务名称、短点名称、异常错误代码、错误信息、追踪ID、用户标识和企业标识。
在一些实施例中,所述方法还包括:将告警信息按照预设通知方式发送至指定对象。具体形式可以包括:
邮件通知:通过电子邮件向指定的邮箱地址发送告警信息。这是一种常见且广泛使用的通知方式,可包含详细的告警内容和相关信息。
短信通知:通过短信网关向指定的手机号码发送告警信息。短信通知通常具有即时性,适用于紧急情况下需要快速响应的场景。
音频/电话通知:通过电话呼叫或播放声音通知来提醒指定对象。这种方式通常在需要紧急处理的情况下使用,能够引起人们的立即注意。
即时消息通知:通过即时通信工具(如Slack、微信、钉钉等)发送告警信息给指定的用户或群组。即时消息通知能够实现实时交流和快速响应,方便团队协作。
报警系统集成:将告警信息集成到专门的报警系统中,如Nagios、Zabbix、Prometheus等。这些报警系统提供了灵活的配置和自定义通知方式,可以通过电子邮件、短信、电话等多种方式发送告警。
API/Webhook调用:通过调用API或Webhook,将告警信息发送给指定的接收端。接收端可以是自定义的应用程序、微服务、自动化工具等,根据接口规范处理告警信息。
微信/移动应用消息推送:通过微信公众号、移动应用等推送告警信息。这种方式适用于需要即时响应且接收方使用微信或移动应用的场景。
Web界面通知:在Web界面上展示告警信息,供用户查看。用户登录到管理系统或控制台后,可以通过可视化的方式查看告警状态和详细信息。
另一方面,本发明还提供一种运维云平台系统,包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现上述方法的步骤。
另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
下面结合以具体实施例对本发明进行说明:
本实施例中,为了实现业务监控需求,实现业务预警,满足运维用户需求,我们基于Opentracing改造了skywalking agent端的采集过程,通过自定义业务注解和自定义切面类,将关键业务数据与trace(Trace事物在分布式系统中移动时的描述,一个trace代表着一个事务或一个请求)进行绑定,这部分操作我们,所有业务服务通过集成sdk,便可以使用自定义业务注解,将关键业务数据,如:用户编号,企业编号,订单编号,订单主键,所属业务模块进行绑定,我们还将该信息通过logback打印在日志中,业务数据便与日志和APM调用链指标信息进行了双双绑定,通过该种方式,我们可以对业务进行实时监控,以实现业务追踪(基于用户ID的操作追踪;基于订单编号的业务追踪;基于自定义业务数据的业务追踪)/业务可用性下降预警(订单量下降预警;失败订单增加预警;活跃用户量下降预警)等。
基于JavaAgent、ByteBuddy技术、skywalking agent组件基础上,本实施例开发了一款适用于金融领域复杂业务的Agent,与传统技术相比,我门通过spring bootstart技术自定义了一款sdk,在SDK中定义了如下注解:ResponseCode(请求响应状态码)、ResponseMsg响应信息)、UserId(用户ID)、CompanyId(企业ID)、BusinessId(业务ID、订单ID)。
开发人员在开发具体业务场景应用时,在应用的接口层增加以上注解并指定对应的实体或实体中的key,这些注解的作用域主要在方法上,使得本实施例可以通过拦截器获取到注解内定义的属性值如用户ID、企业ID、业务ID、业务执行结果。
在agent中本实施例自定义了业务作用域插件,通过定义Java拦截器获取到注解定义的字段定义的属性值,在方法执行前拿到方法的请求参数绑定关键业务参数,并将这部分数据生成APM span信息并与当前请求的Trace进行关联,通过grpc传输到云智平台采集服务进行存储和解析。
拦截器通过JavaAgent、ByteBuddy技术对所有静态方法进行增强,也就是如果使用了本实施例开发的SDK和自定义注解后,对应的方法会被增强,增强后的方法本实施例可以监控和获取到对应的每一笔请求Trace以及其对应的用户信息、业务信息、请求结果等关键信息。
在本实施例的应用过程中,将所有核心业务场景包括支付、还款、授信、融资等业务进行了监控采集,开发人员使用开发的sdk以及注解,将这些业务的接口层代码进行了改造,可以监控到所有核心业务的场景的调用情况,具体流程如下图2所示:
根据不同的业务内容的trace进行关键业务数据采集并进行监管,开户服务跑批开户定时任务中,执行器分别向DB数据库、用户中心、账户中心和电子银行ebank执行查询未开户申请、查询企业信息、查询账号信息和开户申请,通过标记的traceID、业务编码、业务标识和接口地址,通过部署的拦截器,将预先标记的业务注解对应的关键业务数据通过grpc通信协议上传至运维云平台的核心收集器,并按照预设的告警规则引擎执行,以满足业务告警需求。另一方面,在执行开立服务开立经办申请提交业务时,执行器向Redis数据库、开立单元、BCP(业务连续性规划)和用户中心依次要求执行幂等校验、查询开立单元、BCP编号校验和校验用户状态,通过部署的拦截器,将预先标记的业务注解对应的关键业务数据通过grpc通信协议上传至运维云平台的核心收集器,并按照预设的告警规则引擎执行,以满足业务告警需求。在存在异常的情况下,生成告警信息,包括:告警名称、告警等级、告警来源、告警类型、策略类型、告警内容、业务编号、业务标识、服务名称、实例地址和告警时间等。
又如图3所示,在开立服务中,对用户批量下载付款承诺函接口,组接付款承诺函编号列表,执行预约任务创建,在创建成功时,返回数据已发送至下载中心下载;在创建爱你失败时,返回用户批量下载付款承诺函失败请联系管理员。
在文件中心中,对于开立服务中的预约下载文件信息,执行预约任务创建接口,执行参数校验,在校验通过时,保存预约任务表,返回任务创建成功R01,判断任务是否为预约下载,是的情况下,开启预约下载子线程,否则返回结果;执行参数校验的校验不通过时,返回任务创建失败R02。预约下载子线程中,执行预约下载接口、文件打包、保存文件信息、文件信息记录和更新预约任务。
在以上过程中,通过获取采集数据Httpstatus、TraceID、tag、Status、ResMsg/ResCode、关键业务数据,执行上报调用链指标,执行OapSever调用链数据采集,存储数据、根据OAL规则引擎告警执行是否业务异常或业务性能异常的判断,在存在异常时,发送异常信息至告警服务,并生成告警信息,保存业务异常、业务性能问题数据,发送告警信息。
综上所述,本发明所述运维云平台业务预警方法、系统及装置,通过程序性能监控工具,利用预设的数据上报接口自定义业务注解和切面类,将所需的关键业务数据与目标业务的跟踪进行绑定,在指定业务应用程序中,对接口层标记所述业务注解,通过部署业务作用域插件设置预定义的拦截器执行所述切面类,在所述目标业务执行过程中,基于调用链信息获取所述业务注解对应的属性值并关联至对应的追踪,利用日志存储,以实现高效的业务统计、业务性能监管和预警。
进一步的,在JavaAgent、ByteBuddy技术、skywalking agent组件基础上,通过spring bootstart技术自定义SDK完成对业务的自定义注解并绑定业务模块,通过将信息打印在入职中,使得业务数据与日志和AMP(Application Performan 0.ce Management,应用性能管理)调用链信息双双绑定,实现对每一笔业务请求追踪的监控,提高了监控的效率。
与上述方法相应地,本发明还提供了一种装置/系统,该装置/系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置/系统实现如前所述方法的步骤。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种运维云平台业务预警方法,其特征在于,该方法包括以下步骤:
在预设应用程序性能监控工具的采集端,结合预设的数据上报接口自定义业务注解和切面类,将所需的关键业务数据与目标业务的跟踪进行绑定;所述业务注解用于标记需要采集的关键业务数据,所述切面类为根据设定标准采集所述关键业务数据的操作程序;
在指定业务应用程序中,对接口层标记所述业务注解,通过部署业务作用域插件设置预定义的拦截器执行所述切面类,在所述目标业务执行过程中,基于调用链信息获取所述业务注解对应的属性值;将所述目标业务在执行过程中的所述属性值关联至所述目标业务的追踪,并构建为设定形式的结构数据,将所述结构数据通过预设链路发送至运维云平台的服务端;
由所述运维云平台的服务端对所述结构数据构建日志进行存储,并按照预设规则对所述结构数据进行业务统计、业务性能监管和预警。
2.根据权利要求1所述的运维云平台业务预警方法,其特征在于,所述预设应用程序性能监控工具为skywalking分布式系统应用程序性能监控工具;所述预设的数据上报接口是基于Opentracing定义部署的通用数据上报接口。
3.根据权利要求1所述的运维云平台业务预警方法,其特征在于,所述关键业务数据至少包括:用户信息、企业信息、业务信息和业务执行结果。
4.根据权利要求1所述的运维云平台业务预警方法,其特征在于,由所述运维云平台对所述结构数据构建日志进行存储,包括:基于日志组件Logback将所述结构数据打印在日志中。
5.根据权利要求1所述的运维云平台业务预警方法,其特征在于,所述方法包括:通过springboot starter结合集成SDK定义所述业务注解,至少包括:请求相应状态码、响应信息、用户标识、企业标识、业务标识和订单标识。
6.根据权利要求1所述的运维云平台业务预警方法,其特征在于,所述拦截器采用JavaAgent和ByteBuddy对用于执行所述切面类的静态方法进行字节码增强。
7.根据权利要求1所述的运维云平台业务预警方法,其特征在于,所述方法还包括:
分析业务异常状态并执行业务,在业务存在异常的情况下,生成告警信息;
其中,所述业务异常状态包括:业务性能异常和业务内容异常;所述告警信息至少包括:业务场景、业务编号、服务名称、短点名称、异常错误代码、错误信息、追踪ID、用户标识和企业标识。
8.根据权利要求7所述的运维云平台业务预警方法,其特征在于,所述方法还包括:将所述告警信息按照预设通知方式发送至指定对象。
9.一种运维云平台系统,包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如权利要求1至8中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310848956.6A CN116893945A (zh) | 2023-07-11 | 2023-07-11 | 一种运维云平台业务预警方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310848956.6A CN116893945A (zh) | 2023-07-11 | 2023-07-11 | 一种运维云平台业务预警方法、系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893945A true CN116893945A (zh) | 2023-10-17 |
Family
ID=88311760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310848956.6A Pending CN116893945A (zh) | 2023-07-11 | 2023-07-11 | 一种运维云平台业务预警方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116893945A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097803A (zh) * | 2023-10-19 | 2023-11-21 | 易方信息科技股份有限公司 | 基于http全链路追踪方法、系统、设备以及存储介质 |
CN117149798A (zh) * | 2023-11-01 | 2023-12-01 | 建信金融科技有限责任公司 | 业务变更处理方法、装置、设备、介质及程序产品 |
-
2023
- 2023-07-11 CN CN202310848956.6A patent/CN116893945A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097803A (zh) * | 2023-10-19 | 2023-11-21 | 易方信息科技股份有限公司 | 基于http全链路追踪方法、系统、设备以及存储介质 |
CN117149798A (zh) * | 2023-11-01 | 2023-12-01 | 建信金融科技有限责任公司 | 业务变更处理方法、装置、设备、介质及程序产品 |
CN117149798B (zh) * | 2023-11-01 | 2024-02-02 | 建信金融科技有限责任公司 | 业务变更处理方法、装置、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheng | Rainbow: cost-effective software architecture-based self-adaptation | |
US8769502B2 (en) | Template based asynchrony debugging configuration | |
US8555238B2 (en) | Programming and development infrastructure for an autonomic element | |
US8645326B2 (en) | System to plan, execute, store and query automation tests | |
CN102549559B (zh) | 托管的计算机环境中的虚拟对象间接化 | |
KR101201008B1 (ko) | 컴퓨터 시스템 및 분산 애플리케이션의 모델 기반 관리 | |
US8234633B2 (en) | Incident simulation support environment and business objects associated with the incident | |
US9354865B2 (en) | System and method for controlling the development of a software application | |
US7992155B2 (en) | Method and system to correlate and consolidate a plurality of events | |
US7810072B2 (en) | Exception thrower | |
CN116893945A (zh) | 一种运维云平台业务预警方法、系统及装置 | |
US8843943B2 (en) | Generating a service definition in view of service activity events | |
US9442822B2 (en) | Providing a visual representation of a sub-set of a visual program | |
US11327816B2 (en) | Monitoring components in a service framework | |
US20230168986A1 (en) | Systems, methods, and computer-readable media for analyzing intercepted telemetry events to generate vulnerability reports | |
Laranjeiro et al. | A robustness testing approach for SOAP Web services | |
US8694596B2 (en) | Systems and methods for information brokering in software management | |
Barghouti et al. | Using event contexts and matching constraints to monitor software processes | |
Hannousse | Dealing with crosscutting and dynamic features in component software using aspect‐orientation: requirements and experiences | |
Flora et al. | µDetector: Automated Intrusion Detection for Microservices | |
CA2543938C (en) | Programming and development infrastructure for an autonomic element | |
Singh et al. | Android internals and telephony | |
Fernando | Implementing Observability for Enterprise Software Systems | |
Randhawa | Software Quality Assessment | |
Smart | Logging and Testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |