前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​Top99 超时排查思路

​Top99 超时排查思路

作者头像
每天晒白牙
发布2020-12-08 11:16:56
6700
发布2020-12-08 11:16:56
举报
文章被收录于专栏:每天晒白牙

这篇文章想分享 Top99 超时排查的思路和在工作中主动向身边的同事学习的一种意识

背景介绍

我们的系统 Top90 稳定在 19ms 左右,Top99 稳定在 46 ms 左右,Top999 稳定在 50ms 左右,监控报警主要用的 Prometheus + Grafana + 自研报警平台

报警

晚上和小伙伴们出去吃饭了,突然收到了报警,一个工程的 top99 超过了 200 ms,持续时间大于了 10 分钟。同时合作方 ADX 那边反馈我们的 DSP 延迟比较严重。

报警

分析

在开始排查这个问题时,先看当时有没有人上线了,确实有同事在报警发生时间点上线了,但通过查看 CR ,并没有什么问题

开始时我做了很多无用功,查看该服务所有的一台机器的日志,也没看出啥问题,从服务管理平台检查调用依赖服务是否超时严重,经排查依赖服务都是正常的,顿时没啥思路了

我同事找到了一个突破口,我们系统 Top90 稳定在 19ms 左右,Top99 稳定在 46 ms 左右,Top999 稳定在 50ms 左右,而这次报警发生时,Top99 和 Top999 都达到了 200ms,而 Top90 是 20ms,显然 Top90 没怎么波动,这是非常重要的一个线索,从这些指标可以推断出只有部分流量或节点出了问题

排查

我们的业务指标监控用的 Prometheus,在工程中埋点,数据收集到 Prometheus,然后在 Grafana 中展示,目前只是显示了集群的 Top90、Top99、Top999 指标,同事在 Grafana 中操作了一番,然后发了一张图(图未截全)

排序后的Top999

原来他将 Top999 按实例分组,并将值按倒序排序了,发现确实只有很小一部分节点出了问题,然后就留了一个节点保留现场用于排查,将剩余超时的节点重启了,随后 Top999 就降下来了

后面通过排查保留现场的那个节点,发现是服务初始化时,调用一个依赖服务超时了,然后有问题的节点就一直超时了,这个主要是因为上线时并行上线的节点数比较多,且间隔时间有点短,对依赖服务方造成了压力

反思

首先我从同事身上学到了一种排查思路,Top99 和 Top999 超时比较严重,但 Top90 几乎没怎么变化,这就说明只是部分节点或部分流量出了问题,集群的大部分都是正常工作的。然后就顺藤摸瓜,按实例分组展示指标,并做排序找到有问题的节点,然后有针对性的处理和排查

虽然问题解决了,但同事在 Grafana 上操作了什么我不得而知,确实有冲动想问他那个语句怎么写的,但都被自己打住了,在请教别人问题前,还是需要自己好好先查查的,然后我就看 Prometheus 官方文档中的 Functions 部分

sort_desc()文档介绍

然后开始在 Grafana 上操作,最后终于自己整出来了,对应的语句和操作如下所示

grafana语句

我搞出来后,这个排查思路我就掌握了,然后第二天又有了相同的报警,我第一时间介入了,快速处理了问题

工作中要主动向身边的同事学习,将其技能内化成自己的!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 每天晒白牙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 报警
  • 分析
  • 排查
  • 反思
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档