出租窝

Grafana最佳实践

grafana最佳实践

前言

上次说到,后面会针对Grafana,使用对于监控指标的可视化方面做个大致的介绍。大致内容有

为什么要讲的是这两点?

前一阵子在做基础监控的项目,既然做监控就离不开展示,做展示大屏又离不开Grafana。做Grafana就想了解下知道最佳实践,最佳实践里有一条Grafana as Code。结合这个路子,正好在这里说几个做监控时的两个小感悟。

  1. 开源产品的展示页基本都比较丑:由奢入俭难,大部分的开源软件的自带dashboard基本上只是可用的级别。
  2. 开发都比较懒,运维也比较懒:如果你是做监控工具的,可以的话就帮开发运维把一些通用的dashboard都做好吧,一穷二白的指望他们自己做不太现实,大家都很忙。不管是出人搞定制化,还是用技术的手段。做工具的服务意识要有。

基于以上的两点,在SRE时代,关于大屏有三个点可能要了解和掌握:

  1. 了解监控指标分类体系,知道在Grafana上如何展示更直观和合理。
  2. 使用代码的方式批量去实现1。
  3. 做好培训和布道,帮助开发和运维去更好的使用,回到1。

The RED Method: How To Instrument Your Services [B] - Tom Wilkie, Kausal

https://grafana.com/files/grafanacon_eu_2018/Tom_Wilkie_GrafanaCon_EU_2018.pdf

将Prometheus,Grafana,RED和USE指标放在一起以改善监控

[一个用于生成Grafana仪表板的Jsonnet库](https://github.com/grafana/grafonnet-lib)

Tanka

网站性能优化

A beginner’s guide to good Grafana dashboard design

监控指标分类体系

监控指标体系目前有三种主要的分类方式:

USE方法

主要适用场景:

基础结构中的硬件资源,例如CPU,内存和网络设备。

RED方法

主要适用场景:

这种方法比较适用于服务级别,尤其是微服务。对于研发提供的服务,建议每个组件的服务都暴露一些这样的指标。因为RED 的方法比较适合做成看板和统计SLO。在grafana最佳实践中:建议一个服务做成一行,横向放置某一接口的速率和错误和持续时间。

SRE黄金指标

此方法与RED方法相似,但包含饱和度。

主要适用场景:

属于较为通用的场景(合集),基本上是个筐,什么都可以往里装。

这里可以说一下Latency里面有一个重要的概念就是Apdex(Application Performance Index)这是一个从APM角度评价性能的标准,主要用于评价用户体验的。比如打开一个服务用的总延迟是多少,根据这个延迟进行一个评分,最后落到0-1之间。

指标分类对比

方法没有好坏之分,比如比较以下从USE和SRE的两个角度来对于基础设施监控的维度,其实都是可以的,只要适合自己的系统情况即可。

USE方法是我自己从经验角度来进行的归类。

SRE方法是来自https://www.jianshu.com/p/b01bc69fcc3b 的内容。

但更推荐看https://medium.com/@steve.mushero/linuxs-sre-golden-signals-af5aaa26ebae 里关于系统监控项的内容。

USE方法

CPU

内存

磁盘

网络

TCP

SRE黄金指标

后续

后面会针对grafana,使用对于监控指标的可视化方面做个大致的介绍。大致内容有

参考文档

https://www.youtube.com/watch?v=pOo0oKNM9I8

https://medium.com/faun/how-to-monitor-the-sre-golden-signals-1391cadc7524

https://mint.splunk.com/static/images/landing/splunk/network.png

https://grafana.github.io/grafonnet-lib/

https://xie.infoq.cn/article/be5d880666c29c66b7eff65dc

https://github.com/weaveworks/grafanalib

https://github.com/K-Phoen/grabana

https://sdgmf.github.io/goproject/