查看实例风险

云消息队列 Kafka 版实例的实时诊断功能能够定期对实例进行检测,支持查看诊断发现的问题、提供修复建议,并将异常的检查项上报告警给相关联系人。

实现方案

image

报警通知说明

  • 仅紧急且不健康的报警会发送报警通知。

  • 如果未添加报警联系人,则默认向实例所属阿里云账号联系人发送报警通知。

  • 如果添加了报警联系人,则会向报警联系人发送报警通知。仅当报警发送时间在设置的联系人接收报警通知时间范围内时,才可以接收到报警通知。更多信息,请参见管理预警联系人

检测项

说明

若检测出实例存在风险,请参考控制台上提示的修复建议进行修复。

风险类型

指标等级

诊断结果

修复建议

风险复查

CPU消耗百分比

  • 一般

  • 重要

CPU消耗:xx%

如果CPU使用率过高,很有可能是由于碎片化发送等问题引起, 请将相关问题修复, 可减少CPU消耗。

PrometheusCPU使用率超过70%会出现告警。

磁盘使用率

  • 重要

  • 尽快修复

磁盘使用率:xx%

为了您的数据安全性和集群稳定性:

  • 当磁盘水位达到85%以上时,会定时将未过期的消息删除。

  • 当磁盘水位达到90%以上时, 集群会开启禁写保护机制。

Prometheus中实例磁盘使用率超过80%会出现告警。

磁盘倾斜问题

  • 重要

  • 尽快修复

集群磁盘存在倾斜情况,有可能导致无法充分使用所有磁盘性能和容量,建议参考推荐值新增Topic分区数, 或者触发集群分区均衡功能,具体优化方案,请参见Topic分区倾斜怎么办?

磁盘最大利用率和最小利用率的差值大于50%会出现告警(控制台仅展示最大的磁盘使用率)。

生产消息格式转换耗时

  • 重要

  • 尽快修复

生产消息格式转换耗时TP98为:xx ms

相关问题里的Topic存在格式转换现象,影响整体发送性能,请将发送客户端与服务端版本对齐。

检查相关问题里Topic的生产客户端,是否与服务端版本不一致。

消费消息格式转换时间

  • 重要

  • 尽快修复

消费消息格式转换耗时TP98为:xx ms

存在格式转换现象,影响整体消费性能,请将消费客户端与服务端版本对齐。

检查消费客户端,是否与服务端版本不一致。

Topic格式转换

  • 一般

  • 重要

xxTopic存在格式转换

相关问题里的Topic存在格式转换现象,有可能会影响整体发送性能,请将发送客户端与服务端版本对齐,减少格式带来的性能损耗。

检查相关问题里Topic的生产客户端,是否与服务端版本不一致。

Group订阅过多的Topic

  • 一般

  • 重要

xxGroup订阅过多的Topic

Group订阅过多的Topic,容易引发Rebalance事件,影响整体消费性能,如果非业务特殊需求,建议尽量保持GroupTopic订阅关系单一性,详情请参见订阅者最佳实践

Group订阅的Topic数量超过1个时,将会触发告警。

使用Sarama Go客户端

  • 一般

  • 重要

xxGroup使用Sarama Go客户端进行消费

相关问题里的Group使用了Sarama Go客户端,Sarama Go客户端存在不少已知问题,不推荐使用,详情请参见为什么不推荐使用Sarama Go客户端收发消息?

消费客户端使用了Sarama Go进行位点提交,会出现告警。

Rebalance超时时间

  • 一般

  • 重要

xxGroup 存在Rebalance 超时情况

相关问题里的Group存在Rebalance TimeOut时间过长现象,建议max.poll.interval.ms不要设置得太长,否则会影响KafkaRebalance,导致Rebalance的耗时过长。

到相关问题的Group详情页面,查看Rebalance详情。

消费客户端主动离开队列

  • 重要

  • 尽快修复

xxGroup消费者主动离开队列触发Rebalance事件

相关问题里的Group存在消费客户端主动离开队列并触发Rebalance:

  • 请确认消费客户端是否卡住。

  • 请确认消费客户端配置是否合理。

具体详情请参见为什么消费客户端频繁出现Rebalance?

到相关问题的Group详情页面,查看Rebalance详情。

消费接收数据耗时较大的Group

  • 一般

  • 重要

xxGroup消费接收数据耗时较大

相关问题里的Group存在消费耗时较大的现象,可能有如下原因:

  • 消费客户端参数fetch.max.bytes设置过大。

  • 客户端网络环境较差。

优化方案请参见订阅者最佳实践

消费客户端自行检查消费耗时。

Group数量配额

  • 一般

  • 重要

Group数量配额剩余:xx

Group配额即将用完。

实例详情页查看当前所有的Group数量。

Topic数量配额

  • 重要

  • 尽快修复

Topic数量配额剩余:xx

Topic配额即将用完。

实例详情页查看当前所有的Topic数量。

分区数量配额

  • 重要

  • 尽快修复

分区数量配额剩余:xx

分区数量配额即将用完。

实例详情页查看当前所有的分区数量。

服务端小版本升级

  • 重要

  • 尽快修复

当前服务端小版本落后最新小版本xx个版本

最新的小版本修复了若干的已知开源Bug, 并且提升了集群整体性能和稳定性,为了您的服务稳定性, 建议您尽快升级服务端小版本。

实例详情页查看到小版本具体情况。

单节点TCP连接数

  • 重要

  • 尽快修复

单节点TCP连接数为:xx

TCP总连接数过多,会影响集群整体稳定性。

  • 请检查您的连接方式,是否存在重复实例化连接对象的问题。

  • 如果客户端数量较多,会导致碎片化发送严重, 建议减少客户端, 并调整发送参数batch.sizelinger.ms,将数据攒批聚合后再发送。

  • 如果连接数持续上升, 有可能导致部分连接无法连接。

仪表盘/Prometheus查看实例节点(TCP)最大连接数,超过规格限制值会告警。具体规格限制请参见使用限制

单节点公网TCP连接数

  • 重要

  • 尽快修复

单节点公网TCP连接数为:xx

公网TCP总连接数过多,会影响集群整体稳定性。

  • 请检查您的连接方式,是否存在重复实例化连接对象的问题。

  • 如果客户端数量较多,会导致碎片化发送严重, 建议减少客户端, 并调整发送参数batch.sizelinger.ms,将数据攒批聚合后再发送。

  • 如果连接数持续上升, 有可能导致部分连接无法连接。

  • 公网连接是一种重量级连接, 性能较差,建议只用于开发测试, 线上环境尽量使用VPC连接方式。

仪表盘/Prometheus查看实例节点公网(TCP)最大连接数,超过规格限制值会告警。具体规格限制请参见使用限制

同步发送问题

  • 重要

  • 尽快修复

xxTopic存在同步发送问题

相关问题中的Topic存在使用acks=all的同步刷盘机制问题,导致整体发送性能较差,会影响集群整体处理效率,如果不是业务特殊需求,建议设置acks=1,可大幅提升发送效率,详情请参见发布者最佳实践

检查相关问题Topic的发送客户端,是否配置了ackall或者-1

碎片化发送问题

  • 重要

  • 尽快修复

xxTopic 存在碎片化发送问题

相关问题中的Topic存在碎片化发送问题, 有可能导致发送排队超时,并且影响集群整体发送吞吐量和稳定性。为了提高发送性能, 建议:

  • 根据业务情况, 合理设置batch.sizelinger.ms参数。

  • 如果分区较多的情况下, 推荐使用“黏性分区”发送策略。

详情请参见发布者最佳实践

发送的batchSize小于4KB且节点CPU使用率大于60%时会出现告警。需要合理配置相关问题Topic的发送客户端参数,推荐客户端版本在2.4.0及以上。

白名单安全组共享

  • 重要

  • 尽快修复

默认接入点白名单共享安全组ID:xx

部署实例时指定了白名单安全组ID参数,可能存在多个实例共享白名单配置的情况,即修改一个实例的白名单配置同时也会作用到使用该安全组的其他实例,这样会扩大误操作白名单配置的影响面,请注意白名单相关风险。

检查实例所用安全组是否有其他资源共用的问题。

单分区Topic风险

  • 重要

  • 尽快修复

目前有xxTopic为云存储的单分区

云存储的单分区在宕机或者升级时可能导致不可用。建议新增分区,如果强依赖单分区,可以使用Local存储;

检查相关问题Topic的分区数。

Topic分区倾斜问题

  • 重要

  • 尽快修复

目前有xxTopic存在分区倾斜情况

Topic分区倾斜存在如下风险:

  • 有可能导致无法充分使用所有磁盘性能和容量。

  • 有可能触发单节点限流风险。建议参考推荐值新增Topic分区数。

具体优化方案请参见Topic分区倾斜怎么办?

检查相关问题Topic详情页中的分区数,是否符合推荐创建的分区数。

节点发送流量

  • 重要

  • 尽快修复

节点发送流量已经超流:xx%

节点发送流量达到上限,为了实例的稳定性,请尽快进行实例升配。

Prometheus检查节点最大生产流量(bytes/s),以及检查实例生产限流队列长度(个/秒)是否已经造成生产限流。

节点消费流量

  • 重要

  • 尽快修复

节点消费流量已经超流:xx%

节点消费流量达到上限,为了实例的稳定性,请尽快进行实例升配。

Prometheus检查节点最大消费流量(bytes/s),以及检查实例消费限流队列长度(个/秒)是否已经造成消费限流。

发送流量

  • 重要

  • 尽快修复

发送流量已经超流:xx%

集群生产流量达到上限,部分生产流量可能会被限流,导致生产发送超时,为了不影响您的业务和集群的稳定性,请尽快进行实例升配。

Prometheus检查实例消息生产流量(bytes/s),以及检查实例生产限流队列长度(个/秒)是否已经造成生产限流。

消费流量

  • 重要

  • 尽快修复

消费流量已经超流:xx%

集群消费流量达到上限,部分消费流量可能会被限流,导致部分消息数据不能被及时消费而产生堆积,为了不影响您的业务和集群的稳定性,请尽快进行实例升配。

Prometheus检查实例消息消费流量(bytes/s),以及检查实例消费限流队列长度(个/秒)是否已经造成消费限流。

分区分配策略问题

  • 重要

  • 尽快修复

当前有xxGroup存在同一分区被分配给多个消费线程

同一个分区被分配给多个消费线程进行消费,请检查消费者分配策略是否有问题,详情请参见 为什么同一个分区被多个消费线程消费了?

消费客户端自行检查是否多个消费者消费了同一个分区。

消费位点提交频率

  • 重要

  • 尽快修复

消费客户端每秒提交xx次消费位点

消费客户端过于频繁提交消费位点, 会影响集群整体性能和稳定性, 建议改为自动提交消费位点的方式, 或者降低提交消费位点的频率。下面展示了提交位点频率前十的Group信息,优化方案请参见订阅者最佳实践

无。

一天内存在RebalanceGroup

  • 一般

  • 重要

xxGroup 一天内触发了Rebalance事件

相关问题里的Group一天内存在Rebalance现象。具体的时间,请参见Group详情页面。同时,确认是否因为消费客户端配置不当而引起,详情请参见为什么消费客户端频繁出现Rebalance?

检查相关问题GroupRebalance详情。

磁盘冷读

  • 重要

  • 尽快修复

冷读程度为:xx%

当前存在磁盘冷读现象,消费者需要从磁盘中大量读取数据,影响集群性能和稳定性。有可能是消费延迟高导致堆积,可以提高消费速率或者重置消费位点。

磁盘IOPS或者带宽使用超过70%时进行告警。

磁盘禁写

  • 重要

  • 尽快修复

磁盘出现禁写

当前磁盘使用率过高,已触发磁盘禁写,请及时进行优化。

Prometheus检查实例磁盘使用率(%)超过90%导致磁盘禁写。

消费位点回退

  • 重要

  • 尽快修复

xxGroup存在消费位点回退

相关问题里的Group存在消费位点回滚现象,可能触发了位点重置。

消费客户端自行检查是否提交了历史位点,导致消费位点出现回退。

使用GZIP压缩

  • 重要

  • 尽快修复

xxTopic使用了GZIP压缩

相关问题里的Topic存在GZIP压缩,会增加集群负载,请及时进行优化。

生产客户端自行检查是否配置了GZIP压缩。

操作步骤

  1. 登录云消息队列 Kafka 版控制台,在概览页面的资源分布区域,选择地域。

  2. 实例列表页面,单击目标实例名称。

  3. 实例详情页面,单击实例风险页签。

    实例风险页签中,查看实例风险项。

    参数

    描述

    示例值

    风险类型

    当前实例风险的类型描述。

    消费接收数据耗时较大的 Group

    指标等级

    当前实例指标的等级。取值:

    • 尽快修复

    • 重要

    • 一般

    重要

    风险状态

    当前实例的健康状态。取值:

    • 待修复

    • 已修复

    待修复

    上次发现风险时间

    上次发现该风险的时间。

    2022331

    操作

    当前实例风险项可以执行的动作。

    • 详情:查看当前实例风险详细信息和修复建议。

      在目标风险操作列,单击详情

    • 修改报警状态:风险修复后,您可以设置风险状态已修复,或者在近一个月内忽略未修复的风险。

      在目标风险操作列,单击修改报警状态

      说明

      风险修复后,不会再发送告警通知。如果风险修复后,出现相同风险,系统会在7天后再次发送风险报警通知。

    • 删除:风险修复并修改风险状态为已修复后,可以删除风险。

      在目标风险操作列,单击删除

      建议:修改风险状态已修复后,为了避免因为一些原因,例如脏数据未实时清理,再次产生报警,建议您等待一段时间后,再删除该风险。等待时间建议为7天。

相关文档

实例的其他常见问题及解决办法,请参见常见问题