线程池监控预警方法及装置制造方法及图纸

技术编号:37970231 阅读:11 留言:0更新日期:2023-06-30 09:45
本发明专利技术提供一种线程池监控预警方法及装置,该方法包括:通过javaagent技术获取并监控业务服务集群的数据采集器上报的线程池信息,线程池信息包括线程池的运行数据和线程池默认配置信息,线程池的运行数据由数据采集器每隔预设时间采集线程池得到;根据预先配置的预警规则,分析线程池信息;若线程池信息触发预警规则,生成线程池的预警信息;在预警规则配置的冷却时长内,对线程池进行一次预警,并发送预警信息。在本方案中,在分析数据采集器上报的线程池信息时,如果线程池信息触发预警规则,则生成线程池的预警信息,并在冷却时长内,对线程池预警一次,从而提高预警效率和简化使用成本。用成本。用成本。

【技术实现步骤摘要】
线程池监控预警方法及装置


[0001]本专利技术涉及计算机
,尤其涉及一种线程池监控预警方法及装置。

技术介绍

[0002]随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。
[0003]在实际业务场景中,通过java线程池提升服务器性能,但是,java线程池仍然存在以下问题:
[0004]1.业务线程池定义不统一,线程资源过多,造成服务器高负载;
[0005]2.不易评估线程池参数是否合理;
[0006]3.线程池任务执行情况(是否积压、等待、超时等),开发人员无法感知;
[0007]4.线程池触发拒绝策略(通常采用直接丢弃策略),影响正常业务结果,而开发人员无法感知;
[0008]5.原生线程池不支持运行时参数传递,如MDC(映射调试上下文,用于存放诊断日志的容器)遇到线程池就失效;
[0009]6.当业务出现超时、熔断等问题时,因为没有监控,无法确定是不是线程池引起;
[0010]7.无法执行优雅关闭,当项目关闭时,大量正在运行的线程池被丢弃,无法判断是否造成业务异常;
[0011]8.线程池运行中,任务执行停止,可能发生死锁或执行耗时操作,但无从下手进行处理。
[0012]由此可知,亟需一种基于服务应用的线程池监控预警方式。

技术实现思路

[0013]有鉴于此,本专利技术实施例提供一种线程池监控预警方法及装置,以实现简化使用成本、支持老旧业务系统的目的。
[0014]为实现上述目的,本专利技术实施例提供如下技术方案:
[0015]本专利技术实施例第一方面公开了一种线程池监控预警方法,应用于线程池监控预警装置,所述方法包括:
[0016]通过javaagent技术获取并监控业务服务集群的数据采集器上报的线程池信息,所述线程池信息包括线程池的运行数据和线程池默认配置信息,所述线程池的运行数据由所述数据采集器每隔预设时间采集所述线程池得到;
[0017]根据预先配置的预警规则,分析所述线程池信息,所述预先配置的预警规则包括服务级别的全局配置、服务级别的线程池精准配置、服务实例级别的全局配置和服务实例级别的线程池精准配置;
[0018]若所述线程池信息触发所述预警规则,生成所述线程池的预警信息;
[0019]在所述预警规则配置的冷却时长内,对所述线程池进行一次预警,并发送所述预
警信息。
[0020]可选的,若所述线程池的运行数据包括所述线程池的活跃线程数、最大线程数、队列中任务数量、队列容量、拒绝数量、系统当前时间、任务提交时间和任务开始执行时间,所述根据预先配置的预警规则,分析所述线程池信息,包括:
[0021]根据预先配置的线程池活跃度告警规则、所述线程池的活跃线程数与最大线程数,计算所述线程池的活跃度;
[0022]根据预先配置的队列容量告警规则、所述线程池的队列中任务数量与队列容量,计算所述线程池的容量使用率;
[0023]根据预先配置的拒绝策略告警规则、所述线程池在指定时间周期阈值内最大的拒绝数量与最小的拒绝数量,计算所述线程池的周期拒绝数;
[0024]根据预先配置的任务排队超时告警规则、所述线程池的系统当前时间与任务提交时间,计算所述线程池的任务排队时间;
[0025]根据预先配置的任务执行超时告警规则、所述线程池的系统当前时间与任务开始执行时间,计算所述线程池的任务执行时间。
[0026]可选的,所述若所述线程池信息触发所述预警规则,生成所述线程池的预警信息,包括:
[0027]若在所述预警规则配置的持续时长阈值内,所述线程池的活跃度超过所述线程池活跃度告警规则配置的活跃度阈值,确定所述线程池触发线程池活跃度告警规则,生成第一预警信息;
[0028]若在所述持续时长阈值内,所述线程池的容量使用率超过所述队列容量告警规则配置的容量使用率阈值,确定所述线程池触发所述队列容量告警规则,生成第二预警信息;
[0029]若在所述持续时长阈值内,所述线程池的周期拒绝数超过所述拒绝策略告警规则配置的周期拒绝数阈值,确定所述线程池触发所述拒绝策略告警规则,生成第三预警信息;
[0030]若在所述持续时长阈值内,所述线程池的任务排队时间超过所述任务排队超时告警规则配置的任务排队时间阈值,确定所述线程池触发所述任务排队超时告警规则,生成第四预警信息;
[0031]若在所述持续时长阈值内,所述线程池的任务执行时间超过所述任务执行超时告警规则配置的任务执行超时阈值,确定所述线程池触发所述任务执行超时告警规则,生成第五预警信息。
[0032]可选的,所述发送所述预警信息,包括:
[0033]建立所述预警规则与信息通知方式之间的绑定关系;
[0034]基于所述绑定关系,向用户发送所述线程池的预警消息。
[0035]可选的,还包括:
[0036]当监控到所述线程池需变更线程池配置信息时,确定所述线程池类型;
[0037]针对所述线程池类型下的具体线程池,确定所述具体线程池的默认配置信息;
[0038]基于所述默认配置信息,对所述具体线程池进行线程池配置变更。
[0039]可选的,还包括:
[0040]对所述线程池监控预警装置中的全局系统信息进行分词处理,得到分词结果,所述全局系统信息至少包括服务信息、实例信息、所述线程池信息和预警规则信息;
[0041]基于所述分词结果,建立站内搜索引擎。
[0042]可选的,还包括:
[0043]获取所述业务服务集群的数据采集器采集到的所述线程池的历史运行数据;
[0044]基于所述线程池的历史运行数据和四分位数计算方式,计算第一四分位数、第二四分位数和第三四分位数;
[0045]基于所述第一四分位数和所述第三四分位数,计算指定时间周期内的四分位距;
[0046]基于所述四分位距判断所述线程池是否处于运行监控状态。
[0047]本专利技术实施例第二方面公开了一种线程池监控预警装置,所述装置包括:
[0048]获取与监控模块,用于通过javaagent技术获取并监控业务服务集群的数据采集器上报的线程池信息,所述线程池信息包括线程池的运行数据和线程池默认配置信息,所述线程池的运行数据由所述数据采集器每隔预设时间采集所述线程池得到;
[0049]分析模块,用于根据预先配置的预警规则,分析所述线程池信息,所述预先配置的预警规则包括服务级别的全局配置、服务级别的线程池精准配置、服务实例级别的全局配置和服务实例级别的线程池精准配置;
[0050]生成模块,用于若所述线程池信息触发所述预警规则,生成所述线程池的预警信息;
[0051]预警模块,用于在所述预警规则配置的冷却时长内,对所述线程池进行一次预警,并发送所述预警信息。
[0052]可选的,若所述线程池的运行数据包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程池监控预警方法,其特征在于,应用于线程池监控预警装置,所述方法包括:通过javaagent技术获取并监控业务服务集群的数据采集器上报的线程池信息,所述线程池信息包括线程池的运行数据和线程池默认配置信息,所述线程池的运行数据由所述数据采集器每隔预设时间采集所述线程池得到;根据预先配置的预警规则,分析所述线程池信息,所述预先配置的预警规则包括服务级别的全局配置、服务级别的线程池精准配置、服务实例级别的全局配置和服务实例级别的线程池精准配置;若所述线程池信息触发所述预警规则,生成所述线程池的预警信息;在所述预警规则配置的冷却时长内,对所述线程池进行一次预警,并发送所述预警信息。2.根据权利要求1所述的方法,其特征在于,若所述线程池的运行数据包括所述线程池的活跃线程数、最大线程数、队列中任务数量、队列容量、拒绝数量、系统当前时间、任务提交时间和任务开始执行时间,所述根据预先配置的预警规则,分析所述线程池信息,包括:根据预先配置的线程池活跃度告警规则、所述线程池的活跃线程数与最大线程数,计算所述线程池的活跃度;根据预先配置的队列容量告警规则、所述线程池的队列中任务数量与队列容量,计算所述线程池的容量使用率;根据预先配置的拒绝策略告警规则、所述线程池在指定时间周期阈值内最大的拒绝数量与最小的拒绝数量,计算所述线程池的周期拒绝数;根据预先配置的任务排队超时告警规则、所述线程池的系统当前时间与任务提交时间,计算所述线程池的任务排队时间;根据预先配置的任务执行超时告警规则、所述线程池的系统当前时间与任务开始执行时间,计算所述线程池的任务执行时间。3.根据权利要求1或2所述的方法,其特征在于,所述若所述线程池信息触发所述预警规则,生成所述线程池的预警信息,包括:若在所述预警规则配置的持续时长阈值内,所述线程池的活跃度超过所述线程池活跃度告警规则配置的活跃度阈值,确定所述线程池触发线程池活跃度告警规则,生成第一预警信息;若在所述持续时长阈值内,所述线程池的容量使用率超过所述队列容量告警规则配置的容量使用率阈值,确定所述线程池触发所述队列容量告警规则,生成第二预警信息;若在所述持续时长阈值内,所述线程池的周期拒绝数超过所述拒绝策略告警规则配置的周期拒绝数阈值,确定所述线程池触发所述拒绝策略告警规则,生成第三预警信息;若在所述持续时长阈值内,所述线程池的任务排队时间超过所述任务排队超时告警规则配置的任务排队时间阈值,确定所述线程池触发所述任务排队超时告警规则,生成第四预警信息;若在所述持续时长阈值内,所述线程池的任务执行时间超过所述任务执行超时告警规则配置的任务执行超时阈值,确定所述线程池触发所述任务执行超时告警规则,生成第五预警信息。
4.根据权利要求1所述的方法,其特征在于,所述发送所述预警信息,包括:建立所述预警规则与信息通知方式之间的绑定关系;基于所述绑定关系,向用户发送所述线程池的预警消息。5.根据权利要求1所述的方法,其特征在于,还包括:当监控到所述线程池需变更线程池配置信息时,确定所述线程池类型;针对所述线程池类型下的具体线程池,确定所述具体线程池的默认配置信息;基于所述默认配置信息,对所述具体线程池进行线程池配置变更。6.根据权利要求1所述的方法,其特征在于,还包括:对所述线程池监控预警装置中的全局系统信息进行分词处理,得到分词结果,所述全局系统信息至少包括服务信息、实例信息、所述...

【专利技术属性】
技术研发人员:武国君
申请(专利权)人:北京商银微芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1