本发明涉及微服务框架下性能监控,具体地说是云原生下java微服性能监控统一方法及系统。
背景技术:
1、微服务架构是一种面向服务的架构风格,通过将应用程序拆分为一组小型、松耦合的服务来提高系统的灵活性和可伸缩性。性能监控是对服务的性能指标进行监控和管理的一项关键技术。通过使用基于时序数据库的开源监控告警系统(prometheus)和指标收集系统(skywalking、actuator等),监测关键指标,例如服务的调用次数、响应时间、吞吐量、错误率等,收集和分析服务的性能数据,并设置相应的告警规则,一旦达到预设阈值,发出告警。由于微服务架构的复杂性和分布式性质,传统的单体应用的性能监控方法无法直接适用于微服务环境。因此,为了有效地监控和管理微服务的性能,开发一种兼容、通用且高效的服务性能监控系统,具有重要的实际意义。
2、如何提供高效可靠的微服务性能监控、并提升微服务管理和运维效率,是需要解决的技术问题。
技术实现思路
1、本发明的技术任务是针对以上不足,提供云原生下java微服性能监控统一方法及系统,来解决如何提供高效可靠的微服务性能监控、并提升微服务管理和运维效率的技术问题。
2、第一方面,本发明一种云原生下java微服性能监控统一方法,包括如下步骤:
3、性能数据接入:构建性能数据模块统一接口,所述性能数据模块统一接口能够适配主流性能数据进行性能数据的统一推送,其中,主流性能数据包括skywalking、actautor以及自定义数据;
4、告警规则配置:配置告警规则并将告警规则加载至开源监控告警系统prometheus的规则配置文件中;
5、监控启动:在微服务中设置redis分布式锁、并启动监控任务,监控任务对应的监控信息存储于数据库,微服务实例开启后,基于reids分布式锁的状态、通过性能数据模块统一接口将性能数据推送至pushgateway中,prometheus从pushgateway获取性能数据进行监控;
6、监控告警:prometheus基于告警规则对性能数据进行监控分析,性能数据达到告警规则中指定的告警条件时,触发告警。
7、作为优选,性能数据接入包括如下步骤:
8、根据主流的性能数据模块,建立性能数据模块统一接口,并抽象出性能数据的统一功能方法;
9、基于统一功能方法封装性能数据模块统一接口;
10、其中,统一功能方法中定义有如下操作:
11、配置绑定服务,选择性能数据类型,输入性能数据地址;
12、根据绑定的服务,获取服务实例,并通过可视化图标展示性能数据;
13、测试性能数据获取状况。
14、作为优选,告警规则配置包括如下步骤:
15、配置告警内容,包括输入规则名称,选择性能数据类型以及服务监控对象,并设置性能数据的阈值、触发条件、告警级别以及启动规则;
16、基于告警内容,调用告警规则生成接口生成告警规则;
17、将告警规则加载至开源监控告警系统prometheus的规则配置文件,调用prometheus规则热加载接口。
18、作为优选,微服务实例开启后,遍历数据库中监控信息并获取reids分布式锁,如果未上锁,判定监控任务未启动,重新启动,如果上锁,判定存在其它微服务实例正在执行监控任务,不执行任何操作;
19、如果redis分布式锁失效,对比数据库中监控信息,如果监控任务为关闭状态,判定为停止监控操作,不执行任何操作,如果监控任务为开启状态,判定正在执行监控任务的其他微服务实例出现故障导致监控停止,调用其他微服务实例启动监控。
20、第二方面,本发明一种云原生下java微服性能监控统一系统,用于通过如第一方面任一项所述的一种云原生下java微服性能监控统一系统实现微服务性能统一监控,所述系统包括性能数据接入模块、告警规则配置模块、监控启动模块以及监控告警模块;
21、性能数据接入模块用于构建性能数据模块统一接口,所述性能数据模块统一接口能够适配主流性能数据进行性能数据的统一推送,其中,主流性能数据包括skywalking、actautor以及自定义数据;
22、所述告警规则配置用于配置告警规则并将告警规则加载至开源监控告警系统prometheus的规则配置文件中;
23、所述监控启动模块用于在微服务中设置redis分布式锁、并启动监控任务,监控任务对应的监控信息存储于数据库,微服务实例开启后,基于reids分布式锁的状态、调动微服务实例通过性能数据模块统一接口将性能数据推送至pushgateway中,调动prometheus从pushgateway获取性能数据进行监控
24、微服务实例开启后,监控告警模块用于从pushgateway获取性能数据,并基于告警规则对性能数据进行监控分析,性能数据达到告警规则中指定的告警条件时,触发告警。
25、作为优选,性能数据接入模块用于执行如下:
26、根据主流的性能数据模块,建立性能数据模块统一接口,并抽象出性能数据的统一功能方法;
27、基于统一功能方法封装性能数据模块统一接口;
28、其中,统一功能方法中定义有如下操作:
29、配置绑定服务,选择性能数据类型,输入性能数据地址;
30、根据绑定的服务,获取服务实例,并通过可视化图标展示性能数据;
31、测试性能数据获取状况。
32、作为优选,告警规则配置模块用于执行如下:
33、配置告警内容,包括输入规则名称,选择性能数据类型以及服务监控对象,并设置性能数据的阈值、触发条件、告警级别以及启动规则;
34、基于告警内容,调用告警规则生成接口生成告警规则;
35、将告警规则加载至开源监控告警系统prometheus的规则配置文件,调用prometheus规则热加载接口。
36、作为优选,微服务实例开启后,监控预警模块用于调动微服务实例执行如下:遍历数据库中监控信息并获取reids分布式锁,如果未上锁,判定监控任务未启动,重新启动,如果上锁,判定存在其它微服务实例正在执行监控任务,不执行任何操作;
37、如果redis分布式锁失效,对比数据库中监控信息,如果监控任务为关闭状态,判定为停止监控操作,不执行任何操作,如果监控任务为开启状态,判定正在执行监控任务的其他微服务实例出现故障导致监控停止,调用其他微服务实例启动监控。
38、本发明的云原生下java微服性能监控统一方法及系统具有以下优点:
39、1、收集和分析服务的关键性能指标,并设置相应的告警规则,以便及时通知开发人员和运维人员出现异常或达到预设阈值,帮助开发人员了解服务的运行状态,并及时发现和解决潜在的性能问题,此外,还可以提供实时告警报告,以便开发人员能够直观地了解性能状况和故障缘由,并做出相应的优化和调整;
40、2、配置了性能数据模块统一接口,通过性能数据模块统一接口推送性能数据,可适配业界主流性能数据模块并支持接入自定义性能数据;
41、3、利用redis锁实现了分布式自启动监控,通过自启动,防止出现监控漏洞,利用redis的分布式锁,避免了不同微服务实例重复监控的问题,节约了计算资源;
42、4、利用redis锁失效的时间特性,通过监听并与监控任务对比,进而实现了监控再启动及故障自愈。
1.一种云原生下java微服性能监控统一方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的云原生下java微服性能监控统一方法,其特征在于,性能数据接入包括如下步骤:
3.根据权利要求1所述的云原生下java微服性能监控统一方法,其特征在于,告警规则配置包括如下步骤:
4.根据权利要求1所述的云原生下java微服性能监控统一方法,其特征在于,微服务实例开启后,遍历数据库中监控信息并获取reids分布式锁,如果未上锁,判定监控任务未启动,重新启动,如果上锁,判定存在其它微服务实例正在执行监控任务,不执行任何操作;
5.一种云原生下java微服性能监控统一系统,其特征在于,用于通过如权利要求1-4任一项所述的一种云原生下java微服性能监控统一系统实现微服务性能统一监控,所述系统包括性能数据接入模块、告警规则配置模块、监控启动模块以及监控告警模块;
6.根据权利要求5所述的云原生下java微服性能监控统一系统,其特征在于,性能数据接入模块用于执行如下:
7.根据权利要求5所述的云原生下java微服性能监控统一系统,其特征在于,告警规则配置模块用于执行如下:
8.根据权利要求5所述的云原生下java微服性能监控统一系统,其特征在于,微服务实例开启后,监控预警模块用于调动微服务实例执行如下:遍历数据库中监控信息并获取reids分布式锁,如果未上锁,判定监控任务未启动,重新启动,如果上锁,判定存在其它微服务实例正在执行监控任务,不执行任何操作;