配置消息监控告警实现风险预警

云消息队列 RocketMQ 版支持通过云监控配置告警规则,以便您可以实时监控实例的运行状态和关键的业务指标,并能够及时收到异常的告警通知,实现生产环境的风险预警。

背景信息

云消息队列 RocketMQ 版提供全托管的消息服务,对于每个规格的实例都有明确的SLA保障,您购买实例后即可保证消息收发TPS、消息存储、网络吞吐等指标达到规格规定的能力。

您无需担心实例性能问题,但实际生产环境中仍需要关注实际的业务消耗、业务规模等是否达到最高水位或实例的规格限制。云消息队列 RocketMQ 版联合阿里云云监控提供了开箱即用且免费的监控报警服务,可帮助您解决如下问题:

  • 实例规格水位监控预警

    若您实际使用的指标值超过实例的规格限制,云消息队列 RocketMQ 版会进行强制限流。提前配置实例规格水位告警可以提前发现规格超限风险并及时升配,避免因限流导致的业务故障。

  • 业务逻辑错误监控预警

    您在消息收发时可能会收到异常报错,配置调用错误告警可以提前在业务反馈前发现异常,帮助您提前判断异常来源并及时修复。

  • 业务性能指标监控预警

    如果您的消息链路有相关性能指标要求,例如RT耗时、消息延迟等,提前配置业务指标告警可以帮助您提前治理业务风险。

告警配置原则

云消息队列 RocketMQ 版提供了丰富的Metrics指标告警监控项。各监控项可分为运行水位、收发性能、异常错误事件三类告警。

根据大量生产环境实践经验,建议您根据以下原则配置如下告警:

说明

以下核心监控项仅为基础推荐配置项,云消息队列 RocketMQ 版提供了全面、丰富的监控指标项,您可以根据业务需求进行更细粒度和更全面的告警配置。更多信息,请参见监控报警

RocketMQ监控告警分类

重要监控告警

最佳配置时机

关注人员角色

实例运行水位和消耗指标

  • 实例发送API调用频率

  • 实例消费API调用频率

  • 公网下行带宽消耗

  • 配置时机:实例创建成功后立即配置。

  • 原因分析:实例级的水位消耗和单个Topic、Group无关,应该考虑整体水位是否超限。

资源运维人员

消息收发性能指标

  • 具体Topic的发送TPS

  • 具体Group的消费TPS

  • Group消费堆积

  • Group消费延迟时间

  • 配置时机:业务开发上线后立即配置。

  • 原因分析:每个业务上线后需要对当前业务的收发性能容忍能力做预警。

  • 资源运维人员

  • 业务开发人员

消息收发异常事件

  • 死信消息产生

  • 限流次数

  • 配置时机:业务开发上线后立即配置。

  • 原因分析:每个业务上线后需要对失败情况做预警,方便分析生产问题。

  • 资源运维人员

  • 业务开发人员

告警配置操作入口

  1. 登录云消息队列 RocketMQ 版控制台,在左侧导航栏单击实例列表

  2. 在顶部菜单栏选择地域,如华东1(杭州),然后在实例列表中,单击目标实例名称。

  3. 在左侧导航栏单击监控报警,然后单击创建报警规则

配置实例发送/消费API调用频率告警最佳实践

  • 背景:消息队列RocketMQ 5.0实例规格明确规定了消息收发计算规格,即消息收发API调用频率。若实例消息收发API调用频率超过规格限制,会导致实例被限流。

  • 未配置风险:若未配置该监控告警,实例消息收发API调用超限不会提前预警,实例被限流后,导致部分消息收发请求失败。

  • 配置时机:建议实例创建完成且配置好消息收发比例后配置告警。

  • 建议阈值:建议设置为规格上限的70%。例如,您购买的实例消息收发TPS上限为10000,且消息收发比为1∶1,即消息发送和消息消费API调用TPS上限都为5000,则建议消息发送API调用频率和消息消费API调用频率的阈值都设置为3500。

    专业版和铂金版实例支持突发流量弹性,可以先打开突发流量弹性后,按照弹性规格上限的70%进行评估。

  • 告警处理:收到实例发送或消费API调用频率告警后,建议按照如下步骤处理:

    1. 进入消息队列RocketMQ版控制台的仪表盘页面,分析API调用频率Top级数据的Topic和Group,判断业务变化是否合理。

    2. 如果业务变化异常,则应该联系业务方进一步分析异常原因。

    3. 如果业务变化正常,说明实例规格不足以支撑业务流量,建议立即通过实例升配调整消息收发计算规格。

image.png

配置Topic发送/Group消费TPS告警最佳实践

  • 背景:消息队列RocketMQ支持监控Topic和Group级别的消息收发TPS指标,通过该监控项可针对特定业务的消息收发TPS进行预警,帮助您及时了解业务规模。

  • 未配置风险:Topic的消息收发TPS代表业务的调用频率,如未配置该告警,流量跌零或突发暴涨不会提前预警,有可能会产生业务预期之外的风险。

  • 配置时机:建议业务上线且流量平稳后配置告警。

  • 建议阈值:业务侧上线后根据实际平稳期流量预估报警阈值。

  • 告警处理:收到消息收发TPS告警后,建议按照如下步骤处理:

    1. 进入消息队列RocketMQ版控制台的仪表盘页面,查看指定Topic或Group的消息收发TPS曲线,分析流量的变化趋势是否正常。

    2. 基于业务模型判断流量趋势的合理性,分析是否异常。

image.png

配置公网下行带宽告警最佳实践

  • 背景:消息队列RocketMQ 5.0系列实例支持开通公网访问能力,但公网访问受下行带宽限制。如果超过规格中的带宽限制,可能会导致公网链路的访问受损。

  • 未配置风险:若未配置该告警,实例的公网流量超过带宽限制不会提前预警,会导致部分报文丢弃、客户端调用超时或失败。

  • 配置时机:建议实例创建完成且开启公网访问能力后配置告警。

  • 建议阈值:建议设置为规格上限的70%。例如,您购买的实例流量带宽为128 Byte/s,则建议告警阈值设置为90 Byte/s。

  • 告警处理:收到公网下行流量带宽告警后,建议按照如下步骤处理:

    1. 进入消息队列RocketMQ版控制台的仪表盘页面,确认业务变化是否合理。

    2. 如果业务变化异常,则应该联系业务方进一步分析异常原因。

    3. 如果业务变化正常,说明实例规格不足以支撑业务流量,建议立即通过实例升配调整公网带宽规格。

image.png

配置消息堆积量告警最佳实践

说明

消息堆积量统计存在一定的波动性和误差,几十条规模的消息堆积不建议配置为监控阈值,如果业务对少量堆积也非常敏感,建议使用消费堆积延迟时间阈值来监控。

  • 背景:消息队列RocketMQ支持按照ConsumerGroup粒度监控消息堆积量,可以用来预警下游消费堆积故障场景。

  • 未配置风险:消息堆积是消息队列RocketMQ的典型场景和能力,但是对于部分需要实时处理消息的场景,需要及时关注并控制未处理的消息量,避免因为消费堆积造成业务受损。

  • 配置时机:建议业务上线且流量平稳后配置告警。

  • 建议阈值:业务侧上线后根据可容忍的经验评估报警阈值。

  • 告警处理:收到消息堆积量告警后,建议按照如下步骤处理:

    1. 进入消息队列RocketMQ版控制台的仪表盘页面,查看指定Group的消息堆积曲线,分析堆积量的变化趋势,找到初始产生堆积的时刻。

    2. 基于业务的变更及应用日志,分析初始堆积时刻的变化因素,找到堆积原因。具体消费堆积原理,请参见消费者分类

    3. 根据堆积原因,判断是进行消费者应用扩容还是消费逻辑缺陷修复。

image.png

配置消费堆积延迟时间告警最佳实践

说明

消费堆积延迟时间是根据当前消费组所有未消费消息中,最早一条堆积消息的延迟时间计算,因此具备累积性和敏感性。收到消费堆积延迟时间告警后,您需要先判断业务受损是少量消息消费被卡住还是全局的消费延迟。

  • 背景:消息队列RocketMQ版支持按照ConsumerGroup粒度监控消费堆积延迟时间,可以为消费堆积场景提供更具体地分析指标。

  • 未配置风险:消息堆积是消息队列RocketMQ的典型场景和能力,但是对于部分需要实时处理消息的场景,需要及时关注并控制堆积消息的延时时间,避免因为消费延迟造成业务受损。

  • 配置时机:建议业务上线且流量平稳后配置告警。

  • 建议阈值:业务侧上线后根据可容忍的经验评估报警阈值。

  • 告警处理:收到消费堆积延迟时间告警后,建议按照如下步骤处理:

    1. 进入消息队列RocketMQ版控制台的仪表盘页面,查看指定Group的消息堆积曲线,分析堆积量的变化趋势,找到初始产生堆积的时刻。

    2. 基于业务的变更及应用日志,分析初始堆积时刻的变化因素,找到堆积原因。具体消费堆积原理,请参见消费者分类

    3. 根据堆积原因,判断是进行消费者应用扩容还是消费逻辑缺陷修复。

image.png

配置限流次数告警最佳实践

  • 背景:消息队列RocketMQ版支持将指定实例触发限流的事件作为监控项,通过对限流次数的监控,可以帮助您了解当前业务的受损情况。

  • 未配置风险:限流次数越多,说明实例规格超限越严重,应该及时升级实例规格。

  • 配置时机:业务上线且流量平稳后。

    • 实例级限流次数:建议实例创建后配置告警。

    • Topic和Group级别限流次数:建议业务上线且流量平稳后配置告警。

  • 建议阈值:业务侧上线后根据可容忍的经验评估报警阈值。

  • 告警处理:收到限流次数告警后,建议按照如下步骤处理:

    1. 进入消息队列RocketMQ版控制台的仪表盘页面,查看指定实例、Topic或Group的消息收发TPS曲线,分析限流出现的时间点和规律。

    2. 根据仪表盘的统计数据,排查消息收发Top级数据的Topic或Group,判断流量上涨是否符合业务预期。

    3. 基于以上原因分析,如果流量上涨符合预期,则进行规格升配;若不符合预期,则排查异常流量来源。

image.png