本发明涉及数据处理领域,尤其是涉及一种告警的方法、装置、存储介质及计算机程序产品。
背景技术:
1、在业务系统中,用户可以通过设置作业的调度方式和告警方式。当监控到作业在设定的时间点未调起就按设置的告警方式进行告警。
2、然而,由于作业本身的调度和告警配置方法较为复杂,且涉及到对于时间信息的监控。
3、现有技术中,在业务系统与作业实例存在跨时区的情况下,通常是根据二者的时差进行时间转换的,而并未考虑到令时的影响,导致推算出的告警时间不够准确,进而出现误告警。
4、鉴于此,在业务系统与作业实例存在跨时区的情况下,如何准确告警,成为一个亟待解决的技术问题。
技术实现思路
1、本发明提供一种告警的方法、装置、存储介质及计算机程序产品,用以解决现有技术中在业务系统与作业实例存在跨时区的情况下,易出现误告警的技术问题。
2、第一方面,为解决上述技术问题,本发明实施例提供的一种告警的方法的技术方案如下:
3、基于待告警实例的计划时间和原计划告警时间与令时切换区间的位置关系,确定是否调整所述原计划告警时间;其中,所述原计划告警时间为所述计划时间与为所述待告警实例配置的告警时长阈值之和,所述令时切换区间为令时切换涉及的时间段;
4、若确定调整所述原计划告警时间,则将调整后的原计划告警时间作为实际计划告警时间;若确定不调整所述原计划告警时间,则将所述原计划告警时间作为所述实际计划告警时间;
5、基于业务系统与目标地的时差,及所述目标地的夏令时起止时间,将所述业务系统的当前时间转换为所述目标地当前所处令时的实际当地时间;其中,所述业务系统用于调度及管理所述待告警实例对应的业务,所述业务部署在所述目标地,所述目标地的令时分布中包括所述令时切换区间;
6、判断所述实际计划告警时间是否大于所述实际当地时间,若为否则对所述告警实例实施告警,若为是则对所述告警实例不实施告警。
7、一种可能的实施方式,基于待告警实例的计划时间和原计划告警时间与令时切换区间的位置关系,确定是否调整所述原计划告警时间,包括:
8、判断所述计划时间与所述原计划告警时间中是否有至少一个位于所述令时切换区间内、且所述原计划告警时间不在夏切冬区间内,以及判断所述计划时间与所述原计划告警时间之间的时间段是否跨越所述令时切换区间;其中,所述令时切换区间包括冬切夏区间、所述夏切冬区间;
9、若均为否,则确定无需调整所述原计划告警时间;
10、若所述计划时间与所述原计划告警时间中的一个位于所述令时切换区间内、且所述原计划告警时间不在夏切冬区间内,或所述时间段跨越所述令时切换区间,则调整所述原计划告警时间;
11、若所述计划时间与所述原计划告警时间都位于所述令时切换区间内,则判断所述计划时间与所述原计划告警时间是否都位于夏切冬区间内,若为是则不调整所述原计划告警时间,若所述计划时间与所述原计划告警时间都位于冬切夏区间内则调整所述原计划告警时间。
12、一种可能的实施方式,若所述计划时间与所述原计划告警时间中的一个位于所述令时切换区间内、且所述原计划告警时间不在夏切冬区间内,或所述时间段跨越所述令时切换区间,则调整所述原计划告警时间,包括:
13、若所述计划时间位于所述冬切夏区间内,则将所述计划时间调整为所述夏令时的开始时间,根据所述夏令时的开始时间与所述告警时长阈值重新计算所述原计划告警时间,得到所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为所述夏令时;
14、若所述计划时间位于所述夏切冬区间内、且所述原计划告警时间位于夏切冬时点之后,或所述时间段跨越所述夏切冬区间,则根据原计划告警时间与所述夏切冬区间对应的调整时长调整所述原计划告警时间,得到所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为冬令时;其中,所述夏切冬时点为所述夏令时切换到所述冬令时的时间点;
15、若所述原计划告警时间位于所述冬切夏区间内,或所述时间段跨越所述冬切夏区间,则根据所述原计划告警时间与所述冬切夏区间对应的调整时长调整所述原计划告警时间,得到所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为夏令时。
16、一种可能的实施方式,若所述计划时间与所述原计划告警时间都位于冬切夏区间内则调整所述原计划告警时间,包括:
17、将所述计划时间调整为所述夏令时的开始时间;
18、将所述夏令时的开始时间与所述告警时长阈值之和,作为所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为夏令时。
19、一种可能的实施方式,基于业务系统与目标地的时差,及所述目标地的夏令时起止时间,将所述业务系统的当前时间转换为当前所述目标地所处令时的实际当地时间,包括:
20、基于所述时差,将所述当前时间转换为所述目标地的第一当地时间,所述第一当地时间所在令时模拟为所述当前时间在所述业务系统所在地的第一令时;
21、将所述第一当地时间转换为与所述第一令时不同的第二令时的第二当地时间;其中,所述第一令时和所述第二令时中一个为夏令时,另一个为冬令时;
22、根据所述第一当地时间及所述第二当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际当地时间为所述第一当地时间或所述第二当地时间,及所述实际当地时间实际所处的令时。
23、一种可能的实施方式,所述第一令时为冬令时,根据所述第一当地时间及所述第二当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际当地时间为所述第一当地时间或所述第二当地时间,及所述实际当地时间实际所处的令时,包括:
24、判断所述第一当地时间是否小于所述目标地的夏令时开始时间,若为是则将所述第一当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为冬令时;
25、若所述第一当地时间大于或等于所述目标地的夏令时开始时间,则判断所述第二当地时间是否小于所述目标地的夏令结束时间,若为是则将所述第二当地时间确定为所述实际当地时间,所述实际当地时间实际所在的令时为夏令时;
26、若所述第二当地时间大于或等于所述目标地的夏令结束时间,则将所述第二当地时间确定为所述实际当地时间,所述实际当地时间实际所在的令时为冬令时。
27、一种可能的实施方式,所述第一令时为夏令时,根据所述第一当地时间及所述第二当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际当地时间为所述第一当地时间或所述第二当地时间,及所述实际当地时间所处的令时,包括:
28、判断所述第二当地时间是否小于所述目标地的夏令时开始时间,若为是则将所述第二当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为冬令时;
29、若所述第二当地时间大于或等于所述目标地的夏令时开始时间,则判断所述第一当地时间是否小于所述目标地的夏令结束时间,若为是则将所述第一当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为夏令时;
30、若所述第一当地时间大于或等于所述目标地的夏令结束时间,则将所述第一当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为冬令时。
31、一种可能的实施方式,将所述当前时间转换为所述目标地的第一当地时间之前,还包括:
32、将所述业务系统的实际当前时间减去预设分钟,得到所述当前时间;其中,所述预设分钟数是所述业务系统在跨时区管理告警实例时为补偿信息传输耗时而设置的。
33、一种可能的实施方式,判断所述实际计划告警时间是否大于所述实际当地时间,包括:
34、根据所述实际计划告警时间与所述实际当地时间所在的时区是否相同,及所述实际计划告警时间与所述实际当地时间是否都配置有时令信息确定是否终止判断;
35、若确定不终止判断,则判断所述实际计划告警时间与所述实际当地时间是否位于同一年;
36、若所述实际计划告警时间与所述实际当地时间位于不同年,则根据所述实际计划告警时间所在年份与所述实际当地时间所在年份的大小关系,确定所述实际计划告警时间与所述实际当地时间的大小关系;
37、若所述实际计划告警时间与所述实际当地时间位于同一年,则判断所述实际告警计划时间与所述实际当地时间各自所在的令时是否相同;
38、若所述实际计划告警时间与所述实际当地时间的各自所在的令时相同,则判断去除年份后的实际计划告警时间是否大于去除年份后的实际当地时间;
39、若所述实际计划告警时间与所述实际当地时间的各自所在的令时不同,则根据所述实际计划告警时间与所述实际当地时间的各自所在的令时,及所述实际计划告警时间或所述实际当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际计划告警时间与所述实际当地时间的大小关系。
40、一种可能的实施方式,根据所述实际计划告警时间与所述实际当地时间所在的时区是否相同,及所述实际计划告警时间与所述实际当地时间是否都配置有时令信息确定是否终止判断,包括:
41、若所述实际计划告警时间与所述实际当地时间所在的时区不同,则终止判断;
42、若所述实际计划告警时间与所述实际当地时间所在的时区相同,但所述实际计划告警时间与所述实际当地时间中至少一个未配置所述令时信息,则终止判断。
43、一种可能的实施方式,根据所述实际计划告警时间与所述实际当地时间的各自所在的令时,及所述实际计划告警时间或所述实际当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际计划告警时间与所述实际当地时间的大小关系,包括:
44、若所述实际当地时间所在的令时为夏令时,所述实际计划告警所在的时间为冬令时,则判断所述实际计划告警时间是否大于所述目标地的夏令时开始时间,若为是则确定所述实际计划告警时间小于或等于所述实际当地时间;若为否确定所述实际计划告警时间大于所述实际当地时间;
45、若所述实际当地时间所在的令时为冬令时,所述实际计划告警所在的时间为夏令时,则判断所述实际当地时间是否大于所述目标地的夏令时结束时间,若为是确定所述实际计划告警时间小于所述实际当地时间;若为否确定所述实际计划告警时间大于或等于所述实际当地时间。
46、一种可能的实施方式,基于待告警实例的计划时间和原计划告警时间与令时切换区间的位置关系,确定是否调整所述原计划告警时间之前,还包括:
47、定期扫描所述业务系统中的最新作业实例表,并从所述最新作业实例表中获取具有告警配置、且作业状态未达到预设状态的作业实例作为所述待告警实例;
48、获取并解析所述待告警实例的对象静态配置信息,得到所述计划时间和所述告警时长阈值;其中,所述对象静态配置信息用于配置所述待告警实例对应作业的调度计划及告警计划。
49、一种可能的实施方式,所述作业包括多个调度计划,所述多个调度计划具有不同的调度时间;所述待告警实例对应的调度计划的调度时间作为所述计划时间;
50、若所述多个调度计划各自对应的调度时间与各自对应告警计划的告警时间间的时间长度相同,则所述对象静态配置信息中使用同一阈值指示所述多个调度计划对应的时间长度;所述待告警实例对应的告警计划的阈值作为所述告警时长阈值,所述阈值小于或等于7天;
51、若所述多个调度计划各自对应的调度时间与各自对应告警计划的告警时间间的时间长度不同,则所述对象静态配置信息中使用不同阈值指示不同调度计划对应的时间长度。
52、一种可能的实施方式,获取并解析所述待告警实例的对象静态配置信息,得到所述计划时间和所述告警时长阈值之后,还包括:
53、判断所述多个调度计划的总数是否大于所述对象静态配置信息中包含的阈值总数,且所述对象静态配置信息中包含的阈值总数大于1;
54、若为是,确定所述对象静态配置信息中存在配置错误,并指示无法对所述待告警实例进行告警。
55、第二方面,本发明实施例提供了一种告警的装置,包括:
56、确定单元,用于基于待告警实例的计划时间和原计划告警时间与令时切换区间的位置关系,确定是否调整所述原计划告警时间;其中,所述原计划告警时间为所述计划时间与为所述待告警实例配置的告警时长阈值之和,所述令时切换区间为令时切换涉及的时间段;若确定调整所述原计划告警时间,则将调整后的原计划告警时间作为实际计划告警时间;若确定不调整所述原计划告警时间,则将所述原计划告警时间作为所述实际计划告警时间;
57、转换单元,用于基于业务系统与所述目标地的时差,及所述目标地的夏令时起止时间,将所述业务系统的当前时间转换为所述目标地当前所处令时的实际当地时间;其中,所述业务系统用于调度及管理所述待告警实例对应的业务,所述业务部署在所述目标地,所述目标地的令时分布中包括所述令时切换区间;
58、处理单元,用于判断所述实际计划告警时间是否大于所述实际当地时间,若为否则对所述告警实例实施告警,若为是则对所述告警实例不实施告警。
59、一种可能的实施方式,所述确定单元还用于:
60、判断所述计划时间与所述原计划告警时间中是否有至少一个位于所述令时切换区间内、且所述原计划告警时间不在夏切冬区间内,以及判断所述计划时间与所述原计划告警时间之间的时间段是否跨越所述令时切换区间;其中,所述令时切换区间包括冬切夏区间、所述夏切冬区间;
61、若均为否,则确定无需调整所述原计划告警时间;
62、若所述计划时间与所述原计划告警时间中的一个位于所述令时切换区间内、且所述原计划告警时间不在夏切冬区间内,或所述时间段跨越所述令时切换区间,则调整所述原计划告警时间;
63、若所述计划时间与所述原计划告警时间都位于所述令时切换区间内,则判断所述计划时间与所述原计划告警时间是否都位于夏切冬区间内,若为是则不调整所述原计划告警时间,若所述计划时间与所述原计划告警时间都位于冬切夏区间内则调整所述原计划告警时间。
64、一种可能的实施方式,若所述计划时间与所述原计划告警时间中的一个位于所述令时切换区间内、且所述原计划告警时间不在夏切冬区间内,或所述时间段跨越所述令时切换区间,所述确定单元还用于
65、若所述计划时间位于所述冬切夏区间内,则将所述计划时间调整为所述夏令时的开始时间,根据所述夏令时的开始时间与所述告警时长阈值重新计算所述原计划告警时间,得到所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为所述夏令时;
66、若所述计划时间位于所述夏切冬区间内、且所述原计划告警时间位于夏切冬时点之后,或所述时间段跨越所述夏切冬区间,则根据原计划告警时间与所述夏切冬区间对应的调整时长调整所述原计划告警时间,得到所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为冬令时;其中,所述夏切冬时点为所述夏令时切换到所述冬令时的时间点;
67、若所述原计划告警时间位于所述冬切夏区间内,或所述时间段跨越所述冬切夏区间,则根据所述原计划告警时间与所述冬切夏区间对应的调整时长调整所述原计划告警时间,得到所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为夏令时。
68、一种可能的实施方式,若所述计划时间与所述原计划告警时间都位于冬切夏区间内,则所述确定单元还用于:
69、将所述计划时间调整为所述夏令时的开始时间;
70、将所述夏令时的开始时间与所述告警时长阈值之和,作为所述调整后的原计划告警时间,所述调整后的原计划告警时间所属令时为夏令时。
71、一种可能的实施方式,所述转换单元具体用于:
72、基于所述时差,将所述当前时间转换为所述目标地的第一当地时间,所述第一当地时间所在令时模拟为所述当前时间在所述业务系统所在地的第一令时;
73、将所述第一当地时间转换为与所述第一令时不同的第二令时的第二当地时间;其中,所述第一令时和所述第二令时中一个为夏令时,另一个为冬令时;
74、根据所述第一当地时间及所述第二当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际当地时间为所述第一当地时间或所述第二当地时间,及所述实际当地时间实际所处的令时。
75、一种可能的实施方式,所述第一令时为冬令时,所述转换单元还用于:
76、判断所述第一当地时间是否小于所述目标地的夏令时开始时间,若为是则将所述第一当地时间确定为所述实际当地时间,所述实际当地时间实际所在的令时为冬令时;
77、若所述第一当地时间大于或等于所述目标地的夏令时开始时间,则判断所述第二当地时间是否小于所述目标地的夏令结束时间,若为是则将所述第二当地时间确定为所述实际当地时间,所述实际当地时间实际所在的令时为夏令时;
78、若所述第二当地时间大于或等于所述目标地的夏令结束时间,则将所述第二当地时间确定为所述实际当地时间,所述实际当地时间实际所在的令时为冬令时。
79、一种可能的实施方式,所述第一令时为夏令时,所述转换单元还用于:
80、判断所述第二当地时间是否小于所述目标地的夏令时开始时间,若为是则将所述第二当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为冬令时;
81、若所述第二当地时间大于或等于所述目标地的夏令时开始时间,则判断所述第一当地时间是否小于所述目标地的夏令结束时间,若为是则将所述第一当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为夏令时;
82、若所述第一当地时间大于或等于所述目标地的夏令结束时间,则将所述第一当地时间确定为所述实际当地时间,所述实际当地时间所在的令时为冬令时。
83、一种可能的实施方式,所述转换单元还用于:
84、在将所述当前时间转换为所述目标地的第一当地时间之前,将所述业务系统的实际当前时间减去预设分钟,得到所述当前时间;其中,所述预设分钟数是所述业务系统在跨时区管理告警实例时为补偿信息传输耗时而设置的。
85、一种可能的实施方式,所述处理单元还用于:
86、根据所述实际计划告警时间与所述实际当地时间所在的时区是否相同,及所述实际计划告警时间与所述实际当地时间是否都配置有时令信息确定是否终止判断;
87、若确定不终止判断,则判断所述实际计划告警时间与所述实际当地时间是否位于同一年;
88、若所述实际计划告警时间与所述实际当地时间位于不同年,则根据所述实际计划告警时间所在年份与所述实际当地时间所在年份的大小关系,确定所述实际计划告警时间与所述实际当地时间的大小关系;
89、若所述实际计划告警时间与所述实际当地时间位于同一年,则判断所述实际告警计划时间与所述实际当地时间各自所在的令时是否相同;
90、若所述实际计划告警时间与所述实际当地时间的各自所在的令时相同,则判断去除年份后的实际计划告警时间是否大于去除年份后的实际当地时间;
91、若所述实际计划告警时间与所述实际当地时间的各自所在的令时不同,则根据所述实际计划告警时间与所述实际当地时间的各自所在的令时,及所述实际计划告警时间或所述实际当地时间与所述目标地的夏令时起止时间的大小关系,确定所述实际计划告警时间与所述实际当地时间的大小关系。
92、一种可能的实施方式,所述处理单元还用于:
93、若所述实际计划告警时间与所述实际当地时间所在的时区不同,则终止判断;
94、若所述实际计划告警时间与所述实际当地时间所在的时区相同,但所述实际计划告警时间与所述实际当地时间中至少一个未配置所述令时信息,则终止判断。
95、一种可能的实施方式,所述处理单元还用于:
96、若所述实际当地时间所在的令时为夏令时,所述实际计划告警所在的时间为冬令时,则判断所述实际计划告警时间是否大于所述目标地的夏令时开始时间,若为是则确定所述实际计划告警时间小于或等于所述实际当地时间;若为否确定所述实际计划告警时间大于所述实际当地时间;
97、若所述实际当地时间所在的令时为冬令时,所述实际计划告警所在的时间为夏令时,则判断所述实际当地时间是否大于所述目标地的夏令时结束时间,若为是确定所述实际计划告警时间小于所述实际当地时间;若为否确定所述实际计划告警时间大于或等于所述实际当地时间。
98、一种可能的实施方式,所述装置还包括前期准备单元,所述前期准备单元用于:
99、基于待告警实例的计划时间和原计划告警时间与令时切换区间的位置关系,确定是否调整所述原计划告警时间之前,定期扫描所述业务系统中的最新作业实例表,并从所述最新作业实例表中获取具有告警配置、且作业状态未达到预设状态的作业实例作为所述待告警实例;
100、获取并解析所述待告警实例的对象静态配置信息,得到所述计划时间和所述告警时长阈值;其中,所述对象静态配置信息用于配置所述待告警实例对应作业的调度计划及告警计划。
101、一种可能的实施方式,所述作业包括多个调度计划,所述多个调度计划具有不同的调度时间;所述待告警实例对应的调度计划的调度时间作为所述计划时间;
102、若所述多个调度计划各自对应的调度时间与各自对应告警计划的告警时间间的时间长度相同,则所述对象静态配置信息中使用同一阈值指示所述多个调度计划对应的时间长度;所述待告警实例对应的告警计划的阈值作为所述告警时长阈值,所述阈值小于或等于7天;
103、若所述多个调度计划各自对应的调度时间与各自对应告警计划的告警时间间的时间长度不同,则所述对象静态配置信息中使用不同阈值指示不同调度计划对应的时间长度。
104、一种可能的实施方式,所述前期准备单元还用于:
105、获取并解析所述待告警实例的对象静态配置信息,得到所述计划时间和所述告警时长阈值之后,判断所述多个调度计划的总数是否大于所述对象静态配置信息中包含的阈值总数,且所述对象静态配置信息中包含的阈值总数大于1;
106、若为是,确定所述对象静态配置信息中存在配置错误,并指示无法对所述待告警实例进行告警。
107、第三方面,本发明实施例还提供一种告警的装置,包括:
108、至少一个处理器,以及
109、与所述至少一个处理器连接的存储器;
110、其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面所述的方法。
111、第四方面,本发明实施例还提供一种可读存储介质,包括:
112、存储器,
113、所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上述第一方面所述的方法。
114、第五方面,本发明实施例还提供一种计算机程序产品,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如第一方面所述的告警方法。
115、通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:
116、在本发明提供的实施例中,通过基于待告警实例的计划时间和原计划告警时间与令时切换区间的位置关系,确定是否调整原计划告警时间;其中,原计划告警时间为计划时间与待告警实例的告警时长阈值之和,令时切换区间为令时切换涉及的时间段;若确定调整原计划告警时间,则将调整后的原计划告警时间作为实际计划告警时间;若确定不调整原计划告警时间,则将原计划告警时间作为实际计划告警时间;基于业务系统与目标地的时差,及目标地的夏令时起止时间,将业务系统的当前时间转换为目标地当前所处令时的实际当地时间;判断实际计划告警时间是否大于实际当地时间,若为否则对告警实例实施告警,若为是则对告警实例不实施告警。上述方案充分考虑到了在业务系统与作业实例存在跨时区的情况下,令时切换对实际告警时间的影响,从而提高了带有拾取令时的作业告警的准确性,克服了如现有技术那样简单的根据时差转换时间点后单纯比较时间点所带来的监控告警误差。