测试右移之——监控告警中心优化与建设策略

京东云开发者
• 阅读 11

作者:京东保险 郑飞

前言

在11.11大促中,质量保障成为了确保大促顺利进行的坚固防线。其中,测试右移作为一种前瞻性的质量策略,正日益彰显其不可或缺的价值。而监控,作为测试右移战略中的核心环节,不仅承担着全面、精准捕捉系统运行动态的重任,更需在问题初露端倪时,迅速吹响警报,引领团队实施有效干预。然而,当前大部分关于测试右移中监控部分的讨论,多聚焦于监控技术的选择与实现,以及如何构建全面的监控体系,而对于监控告警这一核心功能的深度剖析却相对较少。

告警,作为监控体系中的“哨兵”,其重要性不言而喻。一个高效、精准的告警机制,能够第一时间将潜在问题反馈给相关人员,为快速定位、解决问题赢得宝贵时间。但现实中,告警机制的设计与实施往往面临着诸多挑战,如告警信息的泛滥、感知度不足、准确性不高等,这些问题都严重制约了监控体系效能的发挥。

因此,本文特从告警视角出发,探讨当前监控告警机制存在的问题与挑战,并提出针对性的优化与建设策略。希望通过本文的阐述,能够为读者在构建和优化监控告警体系时提供有益的参考与启示。

一、背景概述与当前状况

在构建业务监控体系的过程中,我们通常采用多元化的告警通知手段,涵盖邮件、即时通讯消息等多种形式。当前,团队中大部分业务监控主要依赖邮件和即时通讯消息(京ME)作为告警传递的两大渠道。

然而,随着监控范围的不断扩大和业务应用场景的日益丰富,现有的报警通知机制正面临一系列严峻挑战。

二、面临的主要挑战

1.报警感知度不足:单一的报警模式或当前报警功能的感知能力存在明显短板。例如,由于每日接收的邮件数量庞大,邮件通知方式往往容易被忽视;相较于邮件,京me消息通知的感知度虽有所提升,但仍存在遗漏关键报警信息的风险。

2.报警信息泛滥:无效或冗余的报警信息会严重干扰正常报警的传递,增加值班人员的工作负担,降低其处理效率。更为严重的是,这些无效信息会将紧急报警淹没在海量报警信息之中,导致关键信息被忽视。

3.报警不准确:不合理的阈值设置可能引发漏报或误报现象,进而对系统的稳定性和安全性构成潜在威胁。

三、告警中心建设目标

告警中心的建设旨在全面攻克上述存在的痛点问题,并在此基础上拓展更为全面且强大的功能体系。以下是该建设的核心目标:

1.构建统一报警平台:旨在提供一个集成化的报警通知中心,确保各业务监控模块能够专注于其核心功能的实现,而无需为报警通知的多样化与整合性担忧。

2.实现多通道告警:通过集成邮件、即时通讯、短信等多种报警通知渠道,构建一个具备多维度告警感知能力的系统,确保报警信息能够精准触达目标接收者。

3.引入优先级设定机制:为报警信息提供分级与优先级设定的能力,使接收者能够迅速识别并优先处理高优先级报警,确保紧急问题得到及时响应。

4.实现自动升级与抑制:针对有效报警项,当出现严重批量报警时,系统将自动提升其感知能力,确保关键信息不被遗漏;同时,对于冗余或无效报警,系统将自动进行降级处理,抑制其通知频率,避免造成不必要的干扰。

5.实施报警合并策略:对于相同类型的报警信息,系统将进行智能合并,以减少报警数量。在设定的时间窗口内,将同一监控对象的多次报警合并为一次,提高报警信息的可读性和处理效率。

6.打造自适应报警系统:依托实时数据和历史数据,结合先进的统计分布算法,系统将自动调整报警阈值,以适应系统环境的不断变化,确保报警信息的准确性和有效性。

7.构建问题闭环处理流程:通过与问题处理平台无缝对接,形成从报警触发到问题解决的完整闭环流程,确保每一个报警都能得到及时、有效的处理,从而提升系统的稳定性和可靠性。

四、技术设计方案

4.1 告警设置使用原则

•【建议】控制告警数量,避免引发“狼来了”效应。

•【强制】当告警触发时,必须附带明确的操作指南。

•【建议】对于无需人工干预的告警规则,建议直接予以移除。

•【强制】告告警信息中必须包含告警级别、影响范围及应对措施等关键信息。

4.2 告警渠道集成策略

告警中心致力于构建一个全面而灵活的报警感知网络,集成了多种高效、便捷的告警渠道,包括但不限于:

邮件通知:利用邮件系统的广泛覆盖性和可靠性,确保告警信息能够准确无误地送达至指定接收者。

京me消息:依托京me平台的即时通讯能力,实现告警信息的快速传递,确保相关人员能够第一时间接收到报警通知。

京me群通知:还有另外一种情况,就是负责人不能立马看到告警,针对这种情况我们可以提前准备告警群,把告警投入小组的群里,这样群里的其他同学也能看到告警,帮负责人处理告警或者提醒负责人处理告警。

京me日历提醒:结合京me日历的日程管理功能,将告警信息以日程提醒的方式呈现,为相关人员提供更为直观的告警感知体验。

电话告警:在紧急情况下,通过电话直接拨打相关人员手机,确保告警信息能够以最快速度传递至目标接收者,实现即时响应。

4.3 故障等级与告警设置策略

在故障管理体系中,明确定义故障的等级至关重要。除了传统的基于受损PV/UV、收入等维度来划分故障等级外,故障的持续时间同样是一个不可忽视的关键指标。对于一个核心服务而言,故障的持续时长将直接影响其最终的影响级别。例如,短时间的瞬时故障可能仅造成轻微影响,而长时间的持续故障则可能引发重大业务中断,带来严重后果。

因此,如何迅速解决故障,实际上也在一定程度上考验着我们的告警设置能力。在事故的全生命周期管理中,从发现到定位,告警都扮演着至关重要的角色,尤其是故障的初步发现阶段。为了优化告警设置,提升故障处理效率,以下几点策略可供参考:

告警分级管理:根据故障的严重性,将告警划分为不同的等级,如提示级、预警级、严重级和灾难级。这种分级管理有助于相关人员根据告警级别快速判断故障的紧急程度,并采取相应的应对措施。

告警原因分类:对告警进行细致的原因分类,如网络故障、硬件故障、软件错误等,有助于快速定位故障源头,减少排查时间。同时,原因分类也为后续的故障预防和改进提供了有力支持。

提供解决方案:每条告警信息中应包含初步的解决方案或处理建议,以便相关人员能够在接收到告警后,迅速采取行动,遏制故障扩散,降低损失。解决方案可以包括紧急操作步骤、备用系统切换方案、联系技术支持人员等。

4.4 告警收敛抑制与自动升降级策略

告警中心不仅承担着即时发送告警信息的重任,还需对告警记录进行精细化管理和分析。告警中心会保留每一次告警的通知记录,并根据后续的验证结果,对告警进行精准分类,如有效报警、无效报警、偶发性报警以及常规报警等。

为了提升告警管理的效率和准确性,告警中心会根据历史告警的最终处理结果,智能识别出冗余或无效的告警。对于这些告警,系统将自动采取降级处理措施,有效抑制其通知频率,从而避免对相关人员造成不必要的干扰和负担。这种智能收敛抑制机制,有助于减少无效告警的噪音,让相关人员能够更加专注于处理真正重要的告警。

同时,对于历史上曾经出现过的重要或严重报警,告警中心在提供正常通知的基础上,还具备智能升级的能力。例如,当某个告警配置原本使用较为普通的通知方式(如京me通知),但在出现批量恶劣报警且接收人未能及时跟进处理的情况下,系统会自动将该告警升级为更高级别的通知方式,如电话告警(同时可以支持升级为通知相关上级人员)。这种智能升级策略,能够确保在紧急情况下,相关人员能够迅速接收到告警信息,并采取相应的应对措施,从而有效遏制故障的扩散和升级。

4.5 告警合并策略

对相同类型的报警信息进行智能识别与合并。在设定的时间窗口内,对于同一监控对象触发的多次报警,系统将自动进行合并处理,将多条相似的告警信息整合为一条综合告警。这种合并方式不仅显著减少了报警数量,降低了告警信息的冗余度,还使得告警信息更加简洁明了,易于阅读和理解。

4.6 自适应阈值策略

在监控告警领域,阈值设定一直是一个棘手的问题。传统的固定阈值方法,虽然简单易行,但往往难以兼顾精准告警与减少误报之间的平衡。阈值设定过于宽泛,可能遗漏真正的故障问题,导致漏报;而设定过于保守,则可能引发大量无效误报,干扰正常工作。更为复杂的是,随着业务的不断发展,监控对象的数据波动也会发生变化,阈值也需要相应地进行调整。

为了解决这一难题,引入了自适应阈值策略优化方案。该方案的核心在于利用统计分布学算法,根据历史数据走向,动态计算出合理的告警阈值。具体而言,我们可以采用正态分布或均匀分布等统计模型,对历史监控数据进行拟合和分析,从而得出一个能够反映数据波动特性的动态阈值。

自适应阈值策略的优势在于其灵活性和准确性。由于阈值是根据历史数据动态计算得出的,因此能够随着业务的发展和数据的变化而自动调整,始终保持对监控对象的敏感度和准确性。同时,该策略还能够有效减少误报和漏报的情况,提高告警信息的可靠性和实用性。

在实施自适应阈值策略时,我们还需要注意以下几点:

1.数据质量:确保历史数据的准确性和完整性,避免数据异常对阈值计算造成干扰。

2.模型选择:根据监控对象的特性和数据分布特点,选择合适的统计模型进行拟合和分析。

3.阈值调整:定期对自适应阈值进行验证和调整,确保其始终符合业务需求和运维实际情况。

4.7 告警问题追踪与闭环

告警中心通过与问题跟踪系统的集成,实现了告警从触发到解决的全程跟踪。当告警触发时,系统会自动将告警信息发送至问题跟踪系统,并生成相应的问题记录。值班人员可以在问题跟踪系统中查看告警详情、处理进度和解决方案等信息,确保每一个告警都能得到及时、有效的处理。这种告警问题追踪与闭环流程,有助于提升系统的稳定性和可靠性。

五、优秀文献推荐

关于线上稳定性的构建与监控报警机制的完善,特此推荐以下几篇卓越的文献资料:

外部文献精选:

1.《vivo 服务端监控体系建设实践》

2.《我在服务监控方面的实践》

神灯社区佳作:

1.《系统稳定性之-监控报警》

这些文献资源将为在构建与优化线上稳定性及监控报警体系方面提供宝贵的参考与启示。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Chapter 2 全程测试:闪光的思想
软件质量其实是在软件开发生命周期中慢慢形成的,或者说,软件质量是内建的(Qualityisbuiltin),而不是测试测出来的。贯穿于软件开发全过程的测试,不仅可以在第一时间内发现缺陷,降低缺陷带来的成本(劣质成本),而且能有效的预防缺陷的产生,构建更好的软件产品质量。2.1测试的左移和右移测试左移:将测试计划与设计提前进行,以及开展需求
大促质量备战之三化战役:“常态化、精细化、一体化” | 京东云技术团队
大促作为JD一年两度的盛事,质量备战是不可或缺的重要环节。每逢大促都是一次大型的联合战役,在这种战役中,不仅有各种“海陆空”技术争奇斗艳,还会让我们的技术视野变得更宽阔,让我们协同变得更默契,所谓以战养兵。测试团队作为质量备战团队,沉淀了“常态化”、“精细化”、“一体化”的三化备战策略,希望与君共勉,共保大促!
搜狗输入法双击输入框崩溃问题 | 京东云技术团队
每当到618、双11这样大促的时候,搜索作为整个App的核心功能,不仅担当着流量入口,还承载着用户感知到这个产品在导购场景中的服务与体验,所以保障搜索以便更好的助力618大卖。
新支点小玉 新支点小玉
11个月前
防患于未然,上线前测试环节怎么能少?
软件测试作为一种重要的软件开发流程,被许多企业所重视,它旨在通过对软件进行全面的测试,确保软件产品质量,满足用户需求。软件测试不仅仅是简单的检测,而是一个系统性的、有组织的测试过程,它包括许多不同步骤,其中每一步都要进行精细的测试。一、测试的重要性1、确保
京东云开发者 京东云开发者
10个月前
【积微成著】性能测试调优实战与探索(存储模型优化+调用链路分析)| 京东物流技术团队
一、前言性能测试之于软件系统,是保障其业务承载能力及稳定性的关键措施。以软件系统的能力建设为主线,系统能力设计工作与性能测试工作,既有先后之顺序,亦有相互之影响。以上,在性能测试的场景决策,架构分析、流量分析、压测实施和剖解调优等主要环节中,引发对于系统能
京东云开发者 京东云开发者
4个月前
研发视角浅谈R2流量回放测试
一、背景测试小伙伴们在2023年保障了团队线上系统0问题,这简直就是一项了不起的壮举!这得益于咱们测试组同事对工作的细致投入、风险把控、以及严格遵循流程规范进行测试用例评审、自动化建设、联调推动、回归验证、常态化压测、大促高保真压测、引流回放等多重保险策略
京东云开发者 京东云开发者
1个月前
测试聊并发-入门篇
作者:京东保险张新磊背景在现代软件测试的广阔领域中,我们的工作不仅限于确保功能符合产品和业务需求的严格标准。随着用户对应用性能的期望水涨船高,性能测试已成为衡量软件质量的关键指标。特别是在服务端接口的性能测试中,我们面临的挑战不仅仅是处理单个请求的效率,更
京东云开发者 京东云开发者
1个月前
【质量视角】可观测性背景下的质量保障思路
作者:京东保险郑飞背景介绍目前质量团队正在积极建设和完善应用监控能力,旨在能及时发现并解决问题,为线上服务稳定性保驾护航。随着可观测性概念的逐渐普及,监控的建设也有了新的挑战和使命。本文将探讨在可观测性背景下,作为一个测试人员在质量保障中的一些思路和个人思
京东云开发者 京东云开发者
1个月前
探索Playwright:前端自动化测试的新纪元
作者:京东保险张新磊背景在前端开发中,自动化测试是确保软件质量和用户体验的关键环节。随着Web应用的复杂性不断增加,手动测试已经无法满足快速迭代和持续交付的需求。自动化测试通过模拟用户与应用的交互,能够高效地执行重复性测试任务,加快测试周期,提升测试覆盖率