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

    HTML5 中的新属性.   属性 值 描述 accept mime_type 规定通过文件上传来提交的文件的类型. align left right top middle bottom 不赞成使用. ...

  2. eclipse 手动安装皮肤

    关于自动使用eclipse 主题不成功的给出现在手动的安装方法和jar包 http://pan.baidu.com/s/1kVNEiYr http://pan.baidu.com/s/1cyTZrS ...

  3. 初次使用nodejs的问题

    使用npm install -g 'xxx' 之后仍然报 Cannot find module 'xxx' 错误,可以通过设置环境变量来解决: export NODE_PATH=/usr/local/ ...

  4. js 函数命名

    1 函数命名可以使用匿名: var f=function(x){return x*2;} 2 可以使用变量: function double(x){return x*2;} 二者区别:后者会绑定到与其 ...

  5. iOS-scrollview及其子类适配iOS7

    问题描述: 在iOS7之后如果在导航控制器中所属的字控制器中嵌入scrollview及其子类的视图,当scrollview的尺寸太小的话不会调用返回cell的方法.控制器的嵌套层级结构如下图所示,着重 ...

  6. PHP学习笔记(八)

    关于PHP中的缓存函数ob_start() and ob_end_flush(). PHP输出机制:输出内容->缓存->输出到浏览器.ob_start(callback function) ...

  7. struts 模型驱动

    情景: 有一个用来处理用户的UserAction 类, 该动作类实现了 ModelDriven 接口. 当用户触发UserAction 动作时, ModelDriven 拦截器将调用相关UserAct ...

  8. Codevs 4560 NOIP2015 D2T2 子串

    > 4560 NOIP2015 D2T2 子串 时间限制: 1 s 空间限制: 128000 KB 题目等级:黄金 Gold 题目描述 Description 有两个仅包含小写英文字母的字符串A ...

  9. caffe源码阅读(2)-Layer

    神经网络是由层组成的,深度神经网络就是层数多了.layer对应神经网络的层.数据以Blob的形式,在不同的layer之间流动.caffe定义的神经网络已protobuf形式定义.例如: layer { ...

  10. HTML教程:link标记

    开发php语言的网站,<head>里link标签这样:<link href="xmlrpc.php?rsd=1" title="rsd" ty ...