为消息服务 CKafka 配置告警
1. 登录 腾讯云可观测平台。
2. 单击告警管理 > 策略管理 > 新建策略。
3. 进入新建告警策略页,填写如下信息:
配置项 | 说明 |
策略名称 | 输入策略名称,最多60个字符 |
备注 | 输入备注,最多100个字符 |
监控类型 | 选择云产品监控 |
策略类型 | 选择消息服务 CKafka > 实例/ConsumerGroup |
策略所属项目 | 选择策略所属项目。所属项目用于告警策略的分类和权限管理,与云产品实例的项目没有强绑定关系 |
所属标签 | 选择策略所属标签 |
告警对象 | 选择具体实例作为告警对象 |
触发条件 | 支持手动配置触发告警的条件,如已有触发条件模板满足需求,也可以直接选择模板 |
| 支持添加事件进行事件告警配置 |
配置告警通知 | 支持新建或选择已有的告警通知模板 |
4. 设置完成后,单击完成。
建议配置的核心告警指标及对应阈值
告警指标 | 统计粒度 | 判断条件 | 阈值 | 持续周期 | 告警方式 |
磁盘使用百分比 | 统计粒度1分钟 | > | 80% | 持续5个数据点 | 每三十分钟告警一次 |
实例连接数百分比 | 统计粒度1分钟 | > | 80% | 持续5个数据点 | 每三十分钟告警一次 |
实例生产带宽百分比 | 统计粒度1分钟 | > | 80% | 持续5个数据点 | 每三十分钟告警一次 |
实例消费带宽百分比 | 统计粒度1分钟 | > | 80% | 持续5个数据点 | 每三十分钟告警一次 |
消费分组未消费消息大小 | 统计粒度1分钟 | > | 100000 | 持续5个数据点 | 每一小时告警一次 |
分区未消费消息个数 | 统计粒度1分钟 | > | 100000 | 持续5个数据点 | 每三十分钟告警一次 |
“消息服务 CKafka - 实例”策略建议核心告警指标
磁盘使用百分比 > 80%
注:代表集群容量使用率,集群容量使用率达到 100% 会被写封禁,影响用户写入,所以需要用户注意提前扩容。
实例连接数百分比 > 80%
注:预防实例连接数过多,导致实例无法建立更多连接造成客户端无法访问 CKafka 集群。
实例生产带宽百分比 > 80%
注:实例生产带宽百分比 (占用配额百分比),预防生产带宽过高,导致生产消息失败。
实例消费带宽百分比 > 80%
注:实例消费带宽百分比 (占用配额百分比),预防消费带宽过高,导致消费消息失败。
“消息服务 CKafka - ConsumerGroup - Topic”策略建议核心告警指标
消费分组未消费消息大小 > 100000MB
注:需要根据需求来设置阈值的大小,防止消费数据过慢,导致消息积压,保障业务中消费消息的实时性。
“消息服务 CKafka - ConsumerGroup - Partition”策略建议核心告警指标
分区未消费消息个数 > 100000
注:需要根据需求来设置阈值的大小,防止消费数据过慢,导致消息积压,保障业务中消费消息的实时性,同时预防客户端出现 Rebalance。
如何避免客户端出现 Rebalance?
消息队列 CKafka 的 Consumer 状态的维持与 poll 接口的调用频率紧密相关。如果用户业务消费逻辑耗时过长,导致两次 poll 调用之间的间隔超过了 max.poll.interval.ms ,Broker 会认为该消费者处理能力不足,从而将其踢出消费组并触发 Rebalance。
对应的解决方案如下(参数以官方 Java SDK 为准,其余语言参数请参考所用 SDK 的配置项对照表,其逻辑含义保持一致):
1. 优化业务逻辑:尽量通过异步处理或增加消费线程数来提高消费速度。
2. 减小 max.poll.records:该参数控制单次 poll 调用返回的最大消息条数。建议远远小于
单个线程每秒消费的条数 * 消费线程的个数 * max.poll.interval.ms / 1000 的值,从而避免超时。3. 增大 max.poll.interval.ms:该参数定义了两次 poll 之间的最大允许间隔。对于单条处理耗时长的业务,应适当调大该配置,保证其大于
max.poll.records / (单个线程每秒消费的条数 * 消费线程的个数) 的值。4. 合理设置 session.timeout.ms:该参数控制 Broker 判定消费者心跳超时的时长。它反映了心跳线程的活性,除非网络出现极度拥塞或进程宕机,否则不建议改得过大。在 v0.10.2之前的版本可适当提高该参数值,需要大于消费一批数据的时间,但不要超过30s,建议设置为25s,而 v0.10.2及其之后的版本,保持默认值10s即可。