Just relax, take it easy..

0%

如果一个bug可以在本地重现, 那基本上已经解决了一半.

最近遇到一个无法在本地重现的多线程bug, 和同事花了一个星期终于解决了, 真的是更深的理解了上面这句话.

读大学的时候, 每个周末都会买好啤酒和花生, 陷入一部精彩的电影. 虽然无数的青春的夜晚就被这么“浪费”, 却不知不觉的洗刷着我的价值观和世界观. 最近看的一部剧(天空之城), 竟有些勾起那些悠闲日子的回忆, 写篇博客漫无目的记录一些感触.

日常 Python 编程若遇到性能瓶颈, 大部分还是由于 I/O 密集型 的操作导致, 例如调用外部接口请求数据超时, 造成整个处理流程的阻塞. 一般会采用多线程来解决这类问题, 但不知道就为什么陷入了多进程, 多线程, 协程的迷惑之中. 用这篇文章记录自己零零星星的学习和思考.

除夕前一天中午吃过午饭, 摸了会鱼, 便踏上了新春回家之路. 由于临时改签了车票(去女朋友家吃个饭), 直接打车去的杭州东站. 万万没想到路上很通畅, 不到半个小时便抵达了火车站, 进站也如丝般润滑, 给刷脸实名制进站点赞👍

结果比预期早到了半个小时, 坐等发车~

说起运维, 大家可能想到的第一个词就是“苦逼”🤔。 但近些年来, 这个职位发生了翻天覆地的变化: 人肉运维(PE) → 自动化运维(DevOps) → 智能运维(AIOps)。 身为SRE 大军中的一员(什么是 SRE), 也在智能运维的边缘试探: 希望打造监控告警「智能降噪」, 「根因定位」, 「自愈」的处理流程, 终极目标就是让每个人都睡个好觉。

而上述流程中不是核心, 却不可或缺的一部分就是投递告警时, 将隐晦的告警消息(文字)可视化,转化为生动的图片与诊断结果。 由于我们的整个平台是由 Python 搭建的, 关于绘图调研过多个第三方工具, 但不是太慢就是依赖过重, 最终选择了经典的 Matplotlib.

近半年工作,一大部分时间在探索监控报警的智能降噪。用这篇博客整理个人点点滴滴的思考,希望可以不断的持续更新..

背景介绍

监控的重要性不言而喻,它就相当于 SRE 的眼睛。但由于监控系统静态规则的局限性,经常会产生一些误报,e.g. 促销冲高回落(尖刺),小流量波动, 季节性趋势下跌,入口下跌等等。轻则形成针对人的「DDOS攻击」,重则导致真正的故障被忽略(狼来了的故事)。所以如何利用算法自动识别噪音,已成为当务之急,将会大大降低人肉处理报警的成本,为公司节省成本。

每次写完博客后, 需要手动执行自定义的deploy.sh脚本进行手动部署. 虽然已经做到一键发射了, 但作为一名 SRE, 内心还是有几分惭愧的. 特别是每次深夜等待部署的那么两三分钟, 都会陷入无尽的沉思🤔. 毕竟以自动化工具为荣,以人肉操作为耻 XD

所以理想情况下: 当 push 代码成功之后, 就可以合上笔记本呼呼大睡了. 稍微调查了一下, 主要有三个解决方案进入的我的视野, 请容我一一道来.