IT设备服务监控的方法论

Wesley13
• 阅读 546

有方法论提导,在技战术方面才不会偏离目录。

使用服务级别作为关键语,召示着承诺和责任。

https://www.circonus.com/2018/06/comprehensive-container-based-service-monitoring-with-kubernetes-and-istio/

==================================

服务级别目标

这个服务级别目标的简要概述将为我们如何衡量我们的服务健康状况奠定基础。服务级别协议(SLA)的概念已经存在了至少十年。但就在最近,与服务级别目标(SLO)和服务级别指标(SLI)相关的在线内容数量迅速增加。

除了著名的 Google SRE书以外,两本关于 SLO 的新书即将发布。“站点可靠性工作手册”有关于 SLO 的专门章节,Seeking SRE 有关于由 Circonus 创始人兼首席执行官 Theo Schlossnagle 定义 SLO 目标的章节。我们还建议观看Seth Vargo 和 Liz Fong Jones 的 YouTube 视频 “SLI,SLO,SLA,哦,我的!”,以深入了解 SLI,SLO 和 SLA 之间的差异。

总结一下:SLI 驱动 SLO,通知 SLA。

服务级别指标(SLI)是衡量服务健康状况的指标。例如,我可以有一个 SLI,它表示在过去 5 分钟内,我的第95 个百分点的主页请求延迟应小于 300 毫秒。

服务级别目标(SLO)是 SLI 的目标或指标。我们采用 SLI,并扩展其范围以量化我们期望我们的服务在战略时间间隔内执行的情况。使用前面例子中的 SLI,我们可以说,我们希望满足 SLI 为后续年份窗口的 99.9% 设置的标准。

服务级别协议(SLA)是企业与客户之间的协议,定义了未能满足 SLO 的后果。一般来说,您的 SLA 所依据的SLO 将比您的内部 SLO 更宽松,因为我们希望我们的内部面向的目标比我们的外部目标更为严格。

RED 仪表板

SLI 的哪些组合最适合量化主机和服务健康?在过去几年中,出现了一些新兴的标准。最高标准是 USE 方法,RED方法和 Google SRE 手册中讨论的“四个金色信号”。

Brendan Gregg 介绍了USE 方法,该方法旨在根据利用率,饱和度和错误指标量化系统主机的健康状况。对于像CPU 这样的产品,我们可以为用户,系统和闲置百分比使用常见的利用率指标。我们可以使用平均负载量和运行队列进行饱和度的判定。UNIX perf 分析器是测量 CPU 错误事件的好工具。

Tom Wilkie 几年前介绍了 RED方法。用 RED。我们监控请求率,请求错误和请求持续时间。Google SRE 手册讨论了如何使用延迟,流量,错误和饱和度指标。这些“ 四个金色信号 ”以服务健康为目标,与 RED 方法类似,但他添加了饱和度指标。在实践中,可能难以量化服务饱和度。

那么,我们如何监控容器?容器是短期实体。直接监视它们以辨别我们的服务健康状况会出现许多复杂的问题,例如高基数问题。综合监控这些容器的服务输出会更容易和更有效。如果服务是健康的,我们不在乎一个容器是异常。有可能我们的编排框架无论如何都会收获这个容器,并用新的框架取而代之。

让我们考虑如何最好地将 Istio 的 SLI 作为 RED 仪表板的一部分进行集成。为了组成我们的 RED 仪表板,我们来看看 Istio 提供的遥测记录:

  • 请求按响应代码计数
  • 请求时长
  • 请求大小
  • 响应大小
  • 连接收到的字节
  • 连接发送字节
  • 连接时间
  • 基于模板的元数据(度量标签)

Istio 提供了有关它收到的请求,产生响应的延迟和连接级别数据的几个指标。请注意上面列表中的前两项; 我们希望将它们包含在我们的 RED 仪表板中。

Istio 还赋予我们添加度量标签的能力,这就是所谓的尺寸。因此,我们可以通过主机,集群等来分解遥测 。我们可以通过获取请求计数的一阶导数来获得每秒请求的速率。我们可以通过请求不成功的请求计数的派生来获得错误率。Istio 还向我们提供每个请求的请求延迟,因此我们可以记录每个服务请求完成的时间。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这