每个运维监控工具,一般要追踪数十万个内部性能指标。学会对哪些事件进行告警以及监控确实需要花费想当长的一段时间。因为,并非所有的指标等级都是一致。因此我们需要摸索出一套简单的方法,便于管理所有指标,而且简单易学。以下为我们总结的 Datadog 的一些实践经验。

监控目标

首先我们应该了解我们为什么你要花费心力实现更好的监控? 以下三点为总结的监控目标:

  1. 在客户及老板觉察之前发现问题

  2. 了解系统以及应用的运行状况

  3. 尽可能降低你的压力水平

指标分类

在了解目标后,应该清楚各个指标的种类。如你的监控工具追踪了哪些指标 ? 常见的指标有:CPU 使用量,内存使用量,数据库或 Web 请求。指标的种类多种多样,但是所有指标都可归入基本的两大类:工作指标以及资源指标。

工作指标

一般来说工作指标有两大类:

  1. 工作指标测量系统或应用生产的有价值的事物的量。例如,数据库每秒返回的查询数量,Web 服务器每秒发送的网页数量。因为,数据库的主要功能在于返回查询结果,Web 服务器则在于为网页提供服务。

  2. 应用带来的经济效益,比如收入。这种指标可以直观地追踪应用以及基础架构的可用性,便于了解其运行效率,因此更加有用。

资源指标

资源是用于生产价值所消耗的事物。因此,资源指标用于测量完成某项工作、生产某些内容所消耗的事物的量。

你若是问“数据库使用了多少 CPU ?”,这种问题往往无益于判定应用的效用。因为一般的回答是:“ 我有足够的 CPU ”,或者 “ 我的 CPU 使用量已经到达极限了 ”。

对于内存,磁盘,网页带宽等资源的提问也是如此。通常,资源指标会用于容量规划,而非可用性管理。

优化监控方案

了解了工作指标与资源指标之后,我们可以进一步讨论最佳实践方案。

1.将关键指标分为工作或资源指标

审视关键指标,尤其是那些是你真正在意的指标。再将它们归类为工作指标或资源指标。

2.仅为工作指标设置告警

分类完成之后(请务必花时间进行分类,这很重要),你需要确定为哪些指标设置告警。事实上,你应该仅为工作指标设置告警。换言之,你应该为测量系统可用程度的指标设置告警。

不过,给指示应用宕机的首要资源指标设置告警也很有益。比如,磁盘空间是一种资源指标。然而,如果磁盘空间耗尽了,整个应用就无法运转,因此,为这类指标设置告警也很重要。但是,总体而言,为资源指标设置告警的情况非常罕见。

3.仅为可操作的工作指标设置告警

针对上一条最佳实践的一点修正是:仅为可操作的工作指标设置告警。换言之,你应该为可以采取行动的工作指标设置告警。

例如,对于 Web 服务器而已,可操作的工作指标可以是每秒内无错误服务的网页数量。这之所以是可操作的工作指标,是因为如果 Web 服务器服务的网页数量为零,网站肯定不再运行,而是宕机了。这时候,你必须采取行动了。

无法操作的工作指标可以是 Web 服务器每秒服务的 404 页面数量。该指标之所以无法操作,是因为其完全取决于访客的行为。如果他们访问许多不存在的 URL,那么肯定会生成许多 404 页面。这并不是说网站性能不好,而是访客的行为超出了预期。因此,你不应该为不可操作的工作指标设置告警。

4.定期回顾检查指标与告警

第四点,也可能是最难坚持的一点,是定期地回顾并检查指标与告警。你可以一周一次,两周一次,或者一个月一次,但请一定要在繁忙的任务表中划出一些时间,与团队一起进行回顾。

回到目标

现在,让我们将这些最佳实践与前文提到的监控目标结合起来。请注意:将关键指标分类为工作指标或资源指标是一切的前提。

1. 在客户及老板觉察之前发现问题

仅为工作指标设置告警,可以避免一些无用的告警,从而达到更好的监控结果。

2. 尽可能降低你的压力水平

仅为可操作的工作指标设置告警,因为你不打算获得无法控制的告警信息。

3. 了解系统以及应用的运行状况

定期回顾并检查指标与告警,可以对系统的运行状况与性能趋势有更深刻的感知,从而方便性能调优。

通过这些最佳实践,可以增强你的监控策略。国内外有很多优秀的监控工具,如 Zabbix 、Nagios 、Datadog 、阿里云 、监控宝、腾讯云等。此外 OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性。

本文转自 OneAPM 官方博客

从 IT 中断中学到的最佳监控实践的更多相关文章

  1. JAVA异常的最佳工程学实践探索

    此文已由作者占金武授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 先说明一下背景: 项目日志中的Exception会被哨兵统一监控并报警 比较多的项目基于dubbo在做服务化 ...

  2. java多线程中最佳的实践方案是什么?

    java多线程中最佳的实践方案是什么? 给你的线程起个有意义的名字.这样可以方便找bug或追踪.OrderProcessor, QuoteProcessor or TradeProcessor 这种名 ...

  3. Kubernetes监控实践

    一.Kubernetes介绍 Kubernetes(K8s)是一个开源平台,能够有效简化应用管理.应用部署和应用扩展环节的手动操作流程,让用户更加灵活地部署管理云端应用. 作为可扩展的容错平台,K8s ...

  4. 【译】Kubernetes监控实践(2):可行监控方案之Prometheus和Sensu

    本文介绍两个可行的K8s监控方案:Prometheus和Sensu.两个方案都能全面提供系统级的监控数据,帮助开发人员跟踪K8s关键组件的性能.定位故障.接收预警. 拓展阅读:Kubernetes监控 ...

  5. Windows性能计数器监控实践

    Windows性能计数器(Performance Counter)是Windows提供的一种系统功能,它能实时采集.分析系统内的应用程序.服务.驱动程序等的性能数据,以此来分析系统的瓶颈.监控组件的表 ...

  6. Kubernetes 最佳安全实践指南

    原文链接:https://fuckcloudnative.io/posts/security-best-practices-for-kubernetes-pods/ 对于大部分 Kubernetes ...

  7. react、react-router、redux 也许是最佳小实践1

    小前言 这是一个小小的有关react的小例子,希望通过一个小例子,可以让新手更好的了解到react.react-router4.0.redux的集中使用方法. 这是基于create-react-app ...

  8. NOS服务监控实践

    本文来自网易云社区 作者:王健 一.  背景 此处所说的服务监控程序,是通过模拟用户的请求,对一个系统的服务质量进行监控的程序.服务监控程序的主要目的是,从用户的角度出发,通过发送端到端的请求,确认系 ...

  9. 20 个 OpenSSH 最佳安全实践

    来源:https://linux.cn/article-9394-1.html OpenSSH 是 SSH 协议的一个实现.一般通过 scp 或 sftp 用于远程登录.备份.远程文件传输等功能.SS ...

随机推荐

  1. Hessian

    一.远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, http . ...

  2. Java 并发——多线程基础

    Thead类与Runnable接口 Java的线程,即一个Thread实例. Java的线程执行过程有两种实现方式: 子类继承Thread类,并且重写void run()方法. 自定义类实现Runna ...

  3. 四种方式写按钮点击事件和Android 中常用的布局

    1.匿名内部类的方式 2.创建一个类实现onClickListener,实现onClick方法,设置控件点击时传一个类的对象 3.让当前类实现onClickListener,设置控件点击事件时传递一个 ...

  4. 转:四种方案解决ScrollView嵌套ListView问题

    转载自:http://blog.sina.com.cn/s/blog_46798aa80101lxbk.html 原始的连接已经不知道是哪里了,项目中遇到了同样的问题,花了一下午都没有想到是嵌套引起的 ...

  5. Android画廊控件之Gallery

    Gallery:用来显示图片列表.可以左右拖动. 如图: 图片取自http://www.cnblogs.com/menlsh/archive/2013/02/26/2934434.html 在Gall ...

  6. jsf taglib定义函数

    创建文件   在文件中添加function标签 <function> <function-name>getFileContent</function-name> & ...

  7. @class的基本使用

    2-@class 的基本使用 1, @class的作用 @class 允许简单的引用类,即类的声明.告诉编译器,后面代码中可能会使用到的类名. 好比函数声明一样. 2, #import的作用 与 #i ...

  8. html-----014---统一资源定位器

    HTML 统一资源定位器 URL 可以由单词组成,比如 “w3school.com.cn”,或者是因特网协议(IP)地址:192.168.1.253.大多数人在网上冲浪时,会键入网址的域名,因为名称比 ...

  9. python 自动化之路 day 08 面向对象进阶

    面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 面向对象高级语法部分 经典类vs新式类 把下面代码用python2 和python3都执行一下 1 2 ...

  10. Check Mysql Database Size

    SELECT ROUND( SUM(data_length + index_length) / 1024 / 1024 ) TOTAL_MB, ROUND(SUM(data_length) / 102 ...