每个运维监控工具,一般要追踪数十万个内部性能指标。学会对哪些事件进行告警以及监控确实需要花费想当长的一段时间。因为,并非所有的指标等级都是一致。因此我们需要摸索出一套简单的方法,便于管理所有指标,而且简单易学。以下为我们总结的 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. 了解系统以及应用的运行状况

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

通过这些最佳实践,可以增强你的监控策略。国内外有很多优秀的监控工具,如 ZabbixNagios 、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. [转]内嵌页面iframe以及和其兄弟iframe的相互传值

    原文出处 iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法) 主页面调用iframe: iframe页面调用主页面: 主页面的包含的iframe之间相互调用: 主 ...

  2. 关于ASPOSE.WORD使用上的一个小问题

    最近实习期间负责了公司某个项目的一个功能模块里面的word导出功能,使用的是ASPOSE.WORD类库,但是经常导出时候会遇到图中的问题,大概意思就是两个表格不能跨在一起,调试了好几次还是没发现具体的 ...

  3. T-SQL基础 (存储过程,触发器|| 笔记0808)

    一:存储过程 1.使用EXEC 调用存储过程 2.系统存储过程是以SP_开头,SP_ProcedureName.:例子:EXEC sp_columns TableName 查看列信息   扩展存储过程 ...

  4. iOS9 UITableViewCell separatorInset设置为0分割线还是没有顶到头的问题

    只需要在自定义的Cell中添加以下代码即可 override func awakeFromNib() { super.awakeFromNib() layoutMargins = UIEdgeInse ...

  5. spark - 将RDD保存到RMDB(MYSQL)数据库中

    SCALA连接数据库批量插入: scala> import java.sql.DriverManager scala> var url = "jdbc:mysql://local ...

  6. 疯狂学习java web

    因工作需要,疯狂学习java web,只是这么多年一直从事C++开发,突然之间要接手同事的那么一大堆代码,真有无从下手的感觉,首先是要学习html,然后是js, 然后是jsp,当然还有各种框架,想想就 ...

  7. Json 数组排序

    /*********************************************Json 数组排序 ******************************************** ...

  8. [转]Android应用的自动更新

    软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...

  9. PL/SQL学习(一)

    原文参考:http://plsql-tutorial.com/ 组成: 声明部分(可选) 执行部分(必选) 异常处理(可选)       声明:         DECLARE       执行:   ...

  10. 负载均衡-多台机子session不起效:把php.ini中file改为memcache存储

    一 开启memcache服务 二 修改php.ini中session配置 php/lib/php.ini session.save_handler = memcache session.save_pa ...