zoukankan      html  css  js  c++  java
  • 监控最佳实践--redis及业务接口

    简介: 监控最佳实践--redis及业务接口

     

    1. 背景

    1.1 问题

    2020-12-04,客户侧redis集群版监控DB0 CPU突增至100%,导致数据库无法正常服务,经排查客户侧业务上存在2M左右的大key导致DB0阻塞。并且客户侧使用的集群连接方式为默认proxy模式,如下图所示,DB0阻塞导致其他节点也无法正常服务;处理办法:客户侧配合切断大key业务的高频繁次调用,请求恢复。

    图1:proxy模式

    1.2 思考

    此次问题导致客户侧课程报名入口严重受损,进而引发深度思考。在使用redis等产品方面的监控报警手段不够完善,不够仔细,并且后续再查看业务日志发现错误率已经逐渐增多,直至redis层面表现出来才get到问题所在。针对此次redis的大key问题,给客户提供了关于大key以及热点key的分析办法,并建议完善客户侧监控报警的可读性以及业务日志接口的错误告警。

    2. 数据库监控分析

    2.1 redis监控指标分享

    redis集群版云监控指标如下表所示。

     

    监控项

    单位

    MetricName

    Dimensions

    Statistics

    平均响应时间

    us

    ShardingAvgRt

    userId、instanceId、nodeId

    Average、Maximum

    连接数使用率

    %

    ShardingConnectionUsage

    userId、instanceId、nodeId

    Average、Maximum

    CPU使用率

    %

    ShardingCpuUsage

    userId、instanceId、nodeId

    Average、Maximum

    命中率

    %

    ShardingHitRate

    userId、instanceId、nodeId

    Average、Maximum

    入方向流量

    KByte/s

    ShardingIntranetIn

    userId、instanceId、nodeId

    Average、Maximum

    流入带宽使用率

    %

    ShardingIntranetInRatio

    userId、instanceId、nodeId

    Average、Maximum

    出方向流量

    KByte/s

    ShardingIntranetOut

    userId、instanceId、nodeId

    Average、Maximum

    流出带宽使用率

    %

    ShardingIntranetOutRatio

    userId、instanceId、nodeId

    Average、Maximum

    缓存内Key数量

    ShardingKeys

    userId、instanceId、nodeId

    Average、Maximum

    最大响应时间

    us

    ShardingMaxRt

    userId、instanceId、nodeId

    Average、Maximum

    内存使用率

    %

    ShardingMemoryUsage

    userId、instanceId、nodeId

    Average、Maximum

    QPS使用率

    %

    ShardingQPSUsage

    userId、instanceId、nodeId

    Average、Maximum

    已用连接数

    ShardingUsedConnection

    userId、instanceId、nodeId

    Average、Maximum

    内存使用量

    Bytes

    ShardingUsedMemory

    userId、instanceId、nodeId

    Average、Maximum、Sum

    平均每秒访问次数

    ShardingUsedQPS

    userId、instanceId、nodeId

    Average、Maximum

     
     
     

    2.2 redis大key分析

    1.在控制台选择对应的实例,进行大key及Hot key分析处理。

    图2:实例分析

    2.利用API接口进行分析大 key以及Hot key。

    缓存分析与热点Key查询可参考文后资料了解详情[1]。

    2.3 数据库同环比监控

    创建分组报警规则目前已更新至分组界面。

    2.3.1 创建应用分组

    图3:创建应用分组

    2.3.2 创建报警规则

    图4:创建报警规则

    图5:设置报警规则

    3. 日志监控

    利用sls接入客户端日志,可以通过设定规则建立仪表盘以及实现报警。此方案日志接入采取logtail方式内网传输。

    3.1 安装logtail

    安装logtail方法可参考文后资料[2]。

    3.2 创建project和logstore

    登录日志服务控制台,依次创建对应地域的project及logstore。

    图6:project-logstore创建

    3.3 数据接入向导

    此次客户侧日志格式分别为json、log4j。

    3.3.1 json

    选择json文本日志>选择现有机器组>对应logtail配置

    图7:logtail配置

    1.设置索引

    对于多重json日志,需要将字段类型更改为json。

    图8:设置索引

    2.查询分析

    图9:查询分析

    3.3.2 log4j

    选择正则文本日志>选择现有机器组>对应logtail配置
    1.正则识别首行

    图10:设置自动生成

    2.提取字段

    图11: 日志提取字段

    3.设置索引
    注意:只对新写入数据生效。

    图12:设置索引

    4.查询分析

    图13:查询分析

    3.4 日志报警

    3.4.1 仪表盘

    图14:仪表盘信息展示

    3.4.2 报警

    在仪表右上侧导航栏中单击告警,在下拉菜单中选择创建。

    图15:创建告警

    图16:告警内容设置

    作者:SRE团队技术小编-小凌

    原文链接

    本文为阿里云原创内容,未经允许不得转载

  • 相关阅读:
    android监控来电显示
    android 选择本地图片并预览
    解决android http请求带中文参数会乱码(url编码)
    android连接webservice是cookies和session保持方法
    eclipse中android自动补全/提示卡机或假死
    JS中创建类得几种方式
    AJAX的简单实例应用
    JavaScript中的eval函数的用法
    JSON 入门指南
    JS中关于clientWidth、offsetWidth、scrollWidth
  • 原文地址:https://www.cnblogs.com/yunqishequ/p/14505174.html
Copyright © 2011-2022 走看看