作者回复: 1,从需求出发,先去访谈你的需求方 2,可以试试 github.com/ccfos/nightingale 这个项目,把告警规则、记录规则都可视化管理了
作者回复: 前两个问题和另一个同学的重复了,你翻一下吧。 3,这个指标表示从硬盘读 4,中心化探测就是找一个机器部署categraf,用这个categraf探测你们公司的所有mysql实例 5,我看到的实践是很少放容器里,也有放的 6,专栏介绍页面,有高亮文字提示
作者回复: 这是个好问题。网上没看到讨论。普通web服务的SLI通常制定为可用性、延迟、成功率。 对于mysql而言,可用性显然也是一个重要的SLI。 延迟,取决于sql复杂度,mysql自身倒是难以控制,没法作为一个SLI,不具有mysql建设指导意义。 成功率,典型的是客户端发的sql本身有问题所以报错(非mysql问题),连接数过多所以报错,最大连接数如果设置不合理是mysql的锅,如果设置合理了,还是连接数过多,就是上层业务的锅了。这个指标可以作为SLI,但具体故障定责的时候,还得case by case 的看。 另外,mysql是存储数据的,自身还要保证数据可靠性。可靠性应该要定指标。 综上,对mysql而言,最靠谱的SLI我感觉是可用性和可靠性。
作者回复: 文章中还提到了一些其他的项,比如slow_query、吞吐量之类的,监控大盘里配置的那些项也需要挨个梳理一下
作者回复: mysql是单实例的,多个实例是啥意思?通常要做区分度,都是通过附加标签的方式哈。比如 select 'n9e' as service, xxx from xx 这里就会在结果列里出现service列,value是n9e,此时就可以把service列设置为标签列
作者回复: 1,前面介绍过promql的使用,慢查询的指标外层包一个increase函数,指定一个时间段,比如1m,就可以计算1m内的慢查询增量 2,http://www.mysqlcalculator.com/ 可以用这个工具来测算,连接越多,占用的内存越大。或者就简单点,直接把max_connections设置的巨大,然后观察其他指标,比如cpu、内存之类的在达到最大连接数之前肯定就先有问题了
作者回复: 是皮秒哈,没错的