简介:监控最佳实践--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:告警内容设置

关于钉钉机器人的告警内容可参考文后模板[3]进行设置。

参考文献

[1] 缓存分析与热点Key查询:https://help.aliyun.com/document_detail/184226.html?spm=a2c4g.11186623.6.975.255f3635R5By1i
[2] 安装Logtail(Linux系统):https://help.aliyun.com/document_detail/28982.html?spm=a2c4g.11186623.2.5.31a09d7cBfTtvl
[3] 钉钉机器人告警模板:https://help.aliyun.com/document_detail/91785.html?spm=5176.2020520112.0.dexternal.62b334c0S2Jxx2

我们是阿里云智能全球技术服务-SRE团队,我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队;提供专业、体系化的SRE服务,帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统,提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云,让客户云上业务运行更加稳定可靠的技术,您可用钉钉扫描下方二维码,加入阿里云SRE技术学院钉钉圈子,和更多云上人交流关于云平台的那些事。

原文链接:https://developer.aliyun.com/article/782542?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

监控最佳实践--redis及业务接口相关推荐

  1. 基于ITIL的SCOM监控最佳实践

    1.  按照系统类别进行监控 很多朋友在使用SCOM进行监控的时候,往往只是导入管理包,推送代理,并不会思考很多,那么在这种情况下,SCOM在进行监控的时候都是基于缺省的类对象进行监控,比如说Wind ...

  2. 选型最佳实践|从业务场景分析直播SDK

    摘要 近两年即时通讯/直播产品炙手可热,市场上针对ToB的产品日益增多,企业该如何去选型呢?本文分享了笔者对于直播产品的思考,将从直播SDK实例功能特性.常见业务场景.注意事项及最佳实践等方面介绍如何 ...

  3. Java笔记018-抽象类、抽象类最佳实践-模板设计模式、接口、内部类

    目录 抽象类 先看一个问题 小结: 抽象类快速入门 抽象类的介绍 抽象类使用的注意事项和细节讨论 抽象类练习题 抽象类最佳实践-模板设计模式 基本介绍 模板设计模式能解决的问题 最佳实践 最佳实践 接 ...

  4. 百度糯米O2O产品质量保证的自动化与端监控最佳实践

    声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 作者:孙健,百度搜索公司-高级测试开发工程师,关注于移动测试开发领域. 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qi ...

  5. 基于大中台架构的电商业务中台最佳实践之一:业务中台总体架构介绍

    架构总原则: 大中台+小前台的架构思路 业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进. 平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便于 ...

  6. 【腾讯TMQ】APP省流量更新监控最佳实践

    一.前言 移动分发市场竞争已进入炽热化,已不再是当年野蛮生长阶段.各大分发市场都在走精细化与差异化路线.其中,省流量更新(增量更新)成为提升用户体验,增加用户留驻粘性的一项重要指标.所谓增量更新是指a ...

  7. CDN 服务质量监控最佳实践

    作者:黄小龙,腾讯云云监控高级工程师 前言 什么是 CDN? CDN 全称 Content Delivery Network,即内容分发网络,它能够有效的避开互联网上有可能影响传输速度和稳定性的因素, ...

  8. 【Flink 监控系列】Flink on yarn 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案

    我们都知道 Flink 任务是一个 7*24 小时不停运行的任务,所以对于任务的实时监控就显得尤为重要,因为任务运行的状态对于我们来说是一个黑盒,比如任务是否挂掉,是否存在反压,使用的内存,CPU 等 ...

  9. Go语言-Go interface 接口的最佳实践

    文章目录 Go语言-Go 接口的最佳实践 什么是Golang中的interface 编写接口的最佳实践 1. 保持interfaces足够小 2. Interfaces Should Have No ...

最新文章

  1. Sublime Text 3 常用插件以及安装方法(转)
  2. 牛X的web报表设计工具Grid++Report
  3. C++ exception
  4. msp430发送pwm信号_如何采用MSP430单片机实现PWM信号
  5. ArrayList源码
  6. 如何解决两个相邻的span中间有空隙
  7. 计算机重装系统后黑屏,电脑重装系统后开机黑屏怎么办
  8. VTD的官方help翻译-ROD部分(10~15章)
  9. 计算机基础知识题二,计算机基础知识题库(五)
  10. 复现 ASPCMS企业建站系统Cookies欺骗漏洞
  11. red5 1.0.7 集成tomcat 并且 进行整合 官方例子oflaDemo
  12. win10 GTX1080 avatarify AI实时换脸
  13. 在线房屋收租app开发优势
  14. 深度学习——图像分类相关模型一览
  15. 薄膜则是集成光学系统一个关键的组成部分,LN薄膜和SiOz层形成的高折射率差对光形成限制作用-供应流延聚丙烯蒸镀金属(MCP)/二氧化硅/氧化铝薄膜定制
  16. OpenGL超级宝典学习笔记——操作矩阵
  17. 成立一家投资管理有限公司的资本是多少?
  18. 《动手学深度学习Pytorch版》中‘d2lzh_pytorch‘模块问题
  19. L2-001 紧急救援 - java
  20. 程序员想转行管理或者产品经理,真难啊

热门文章

  1. 计算机网络-思维导图(1)概述
  2. MapReduce 在Shuffle阶段 内存溢出原因分析及处理方法
  3. 三十七、数据泛化(面向属性的归纳)
  4. matplotlib可视化必知必会富文本绘制方法
  5. Python入门,从19个语法开始!
  6. stl源码剖析_STL之set源码剖析
  7. Mac OS X Leopard 10.5.5 安裝手记 (Dell D830)
  8. element-ui踩坑
  9. IJ-java-com-util-common:
  10. SQL记录-PLSQL异常