我们是如何构建自己的可观测性的

news2024/11/16 1:55:45

引言

近日,关于云平台自身的可靠性问题又成为大家关注的焦点。系统一定会有故障,相信作为用户都能理解,但用户需要在故障发生后,能尽快知晓造成故障的根本原因和修复计划,以便有效调整受影响的业务来降低损失;也需要在一次故障解决后,开发运维团队可以总结出经验教训,来提升自己管理运营能力,和提出之后的预防措施。过程中,最好有详细、准确和实时的数据作为佐证,使团队间的沟通无阻、协同高效,这就需要提到可观测性能力。

「观测云」guance.com 是一个可提供强大的系统可观测能力的 SaaS 平台,帮助用户确保他们的系统持续健康和稳定地运行。可作为一个 SaaS 平台,观测云是如何实现自我监测的呢?观测云提供的可观测服务,能用来监测自己吗,还是需要用到其他更厉害的工具,或是更复杂的方法?

一、对观测云节点的整体自监测方案

有句话是神医难自医,当医生自己生病了,只能找另一个医生来治疗自己。监测平台对自身的监测亦是如此,因为自身已在功能故障的情况下,无法确保可对自身实施有效的故障诊断和修复。

「观测云」的自监测的解决方案,利用了本身多站点的特性,实现不同站点间的互相监测。「观测云」目前有中国区1(杭州)、中国区2(宁夏)、中国区3(张家口)、中国区4(广州)四个国内 SaaS 服务节点,以及一个海外1(俄勒冈)节点,互相作为对方的观测平台。同时,「观测云」会公开发布各节点服务功能的状态页,使用户可以随时知晓观测云功能的可用性。

二、可用性监测

可用性监测是指站点、API 等在不同地域、不同运营商网络下的定时拨测,观测云的可用性监测支持国内四大地域(华北、华东、西南、西北)、三大网络运营商网络(移动、电信、联通)的 12 个节点,以及四个海外节点。对于观测云自身,我们从三个维度进行可用性监控:URL、地域、网络运营商,可用性监控的目的是监控我们的站点或 API URL 在不同地域及网络运营商下的可用性及响应延时情况,但是由于不同网络运营商可能存在的网络波动,因此我们需要考虑一个容差,我们的最佳实践是某个 URL 在某个地域的网络运营商下,15 分钟内超过 3 次不可用,视为此 URL 不可用,需要进行告警。实际可以根据业务的需要来进行最佳实践配置监控。

三、监控告警

监控的告警根据重要级别分为两级,第一级是通过钉钉群通知告警,如发生错误日志、错误链路等,第二级是比如基础设施的不可用等重要监控(比如磁盘剩余过小、数据库等中间件的不可用等)还需要对相关人进行短信通知,第二级问题的响应度需要更高。

四、平台业务指标监测

平台业务指标,采集了平台所有的主要指标,主要包括每一项数据的增量、工作空间维度的数据增量、活跃程度等等统计指标数据。这些业务指标既不是数据库等各种标准中间件,也不是业务服务自身可以吐露出来的指标,需要自己编程去各种业务数据存储中去定时统计采集出来,以指标或日志的形式打到观测云平台中,我们是利用 Function 数据处理平台来实现的。说明页:func.guance.com。

使用 Function 平台接入业务指标数据架构:

业务看板效果:

五、各个业务服务状态监测

常见的基础设施及标准中间件等组件,可以直接采集其指标及日志等数据;各业务服务自身的指标,需要服务自身来暴露指标,一般都遵循 OpenMetrics 标准。OpenMetrics 是一种云原生下的高度可扩展指标协议,它定义了大规模上报云原生指标的事实标准,同时支持文本表示协议和 Protocol Buffers 协议,它也是云原生下的事实标准监控方案 Prometheus 的标准数据采集方案,使用观测云的采集器 DataKit 也可以直接采集,或者对接 Prometheus 获取数据。

  • 任务调度服务,我们需要重点关注 任务队列排队任务数任务调度总数等指标
  • 数据的接收、预处理、写入存储、查询服务,我们需要重点关注的是 查询响应时间、写入响应时间、写入错误数、数据队列中的待写入数量等指标
  • 用户平台后端,我们需要重点关注当前在线用户数、每个工作空间活跃用户、Redis 用量等指标

每个服务暴露了自身的指标后,需要配置应用的服务指标仪表板,这里的一大原则是服务暴露的指标可以尽量多,仪表板可以只展示最重要的指标,一个仪表板上指标过多,会让看的人抓不到重点。其余的可以作为监控指标,去配置监控项。

以观测云的数据服务 Kodo 为例,它的服务指标观测仪表板:

六、问题汇总和 SLO

「观测云」内部的各开发和运维团队,可通过仪表板获得多维度的数据汇聚展示,即可将前端收集到的所有需关注事件、告警、或报错都汇总到同一个仪表板上,做到一目了然,不必在各个不同的仪表板,甚至不同监测工具间频繁切换。当需要定位一个具体的报错来源时,通过点击该报错条目在仪表板上的关联链接,即可下钻到对应的数据查看器,展示出相关联的上下文数据条目,每个条目又可以再次下钻出更多细节,所以能很快挖掘到故障根因。

观测云的问题汇总仪表版如下:

各维度问题统计仪表板:

当前阶段的系统运行状态,会通过 SLO 信息同步给所有团队。SLO 是对 SLI 的一个度量,用来度量产品的服务质量情况。SLI 是一个比较复杂的定义过程,需要根据不同服务场景以及服务等级需求来定义,最基本的是基于可用性的定义,比如站点 URL 拨测达到不可用次数、链路或日志的错误率达到一个比值(我们定义的是错误率达到 0.05%)。SLI 标准的定义一般可以从系统的性能、可用性、服务质量等几方面来考虑,实际应用中的 SLI 度量值需要根据实际业务来调整实践。

SLO 仪表板:

结语

观测云的使命是「向全球用户提供最好的可观测性服务」,希望通过这篇对自身可观测性构建的简述,为更多用户提供借鉴,有任何想法和建议欢迎在留言区内或加入社群讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盘点2022年电视行业:科技与美学的战场三星缔造“生活方式”的全新价值

作者 | 曾响铃 文 | 响铃说 前不久,中国质量协会第十一次组织开展了本年度电视行业用户满意度监测,监测对象为市场占有率达90%以上的10个主流电视品牌,结果显示2022年电视行业用户满意度为83分,同比持平,处于较高水平…

【Ctfer训练计划】——(三)

作者名:Demo不是emo 主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座…

Linux系统安装Zookeeper教程

原文链接 在root账户下创建zookeeper安装目录: mkdir /home/zookeeper进入zookeeper目录: cd /home/zookeeper通过wget命令下载zookeeper安装包: wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0…

spring+jsp面向社区健康服务的医疗平台

目录 第一章 绪论 5 1.1 研究背景 5 1.2系统研究现状 5 1.3 系统实现的功能 6 1.4系统实现的特点 6 1.5 本文的组织结构 6 第二章开发技术与环境配置 7 2.1 Java语言简介 7 2.2JSP技术 8 2.3 MySQL环境配置 8 2.5 mysql数据库介绍 9 2.6 B/S架构 9 第三章系统分析与设计 11 3…

WebDAV之葫芦儿·派盘+FX文件管理器

FX文件管理器 支持WebDAV方式连接葫芦儿派盘。 想要一款几乎强大到极致的文件/媒体管理器,同时支持手机、电脑文件共享?推荐您选择FX File Explorer,您就可以快速轻松地管理您手机或平板上的所有内容。 FX File Explorer是一个多功能的手机文件流量和管理工具。它的界面美…

拆解一个居家隔离监测的无线门磁

捡到了一个居家隔离监测的无线门磁,拆开来看看: 门磁整体照: 一套门磁分两部分,一个主机,一个磁铁; 可以看到,使用的是两节干电池供电,内置弹簧天线。 拆下来PCBA,可…

(二十)Vue之单文件组件

文章目录基本使用一、如何定义一个组件?二、如何注册组件?三、如何使用组件?演示程序普通Vue程序单文件组件程序局部注册全局注册几个注意点1.关于组件名2.关于组件标签3.一个简写方式组件的嵌套使用关于VueComponent一个重要的内置关系&…

行业唯一,Eolink 入选信通院“云上软件工程社区汽车云工作组”首批企业成员名单

导读:本月20日,由中国信息通信研究院主办的汽车云专场沙龙成功召开,会上信通院发布了业内首个《汽车行业软件研发效能成熟度模型标准》,并成立了“云上软件工程社区-汽车云工作组”,Eolink 作为 API 管理领域唯一企业入…

下载离线地图多种方式(osm,MapTileDownloader )

目录 效果图: 一 下载离线地图的二种方式 1.osm 的方式下载瓦片 2、下载MapTileDownloader 二 代码(推荐使用osm方式) 效果图: 一 下载离线地图的二种方式 1.osm 的方式下载瓦片 百度网盘分享链接:https://pan.…

平板雷达水位计如何安装?平板雷达水位计怎么用?

1、设备介绍 本产品是一款用于地表水液位监测的非接触式平面雷达水位计,基于精确测量的电磁波测距技术。传感器发射电磁波照射水面并接收其回波,由此获得水面至电磁波发射点的距离、距离变化率(径向速度)、方位、高度等信息。  …

如何在Odoo 16库存中配置批次和序列号

如果您是库存管理操作的新手,您必须熟悉几种识别号,以跟踪和识别从制造到交付过程中的产品。批次和序列号是制造商通过各种产品移动来识别产品的部件。人们常常误解这些是一些随机分配的数字,以便得到产品的总数。但是,当涉及到库…

2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 问题二建模方案及代码实现详解

2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 建模方案及代码实现 更新进展 2022年12月21日 12:20 发布问题一、二思路及问题一的python代码实现 2022年12月22日 15:00 发布问题二python实现的代码 更新完毕 相关链接 &…

【观察】魔方安全:攻击面管理SaaS化创新,让企业在攻防实战中化被动为主动...

近年来,随着网络安全形势的愈加严峻,行业对实战型攻防技术的认知也有了快速的提升。在此背景下,偏向于主动防御且更注重实战对抗的攻击面管理(Attack Surface Management,简称“ASM”)理念以及相关技术&…

使用 ABAP 代码给 OData 元数据增添注解的一些例子

最近有读者向我咨询,关于当系统在 SAP NetWeaver 740 之上运行时,如何向 OData 服务添加注解(annotation)。 虽然使用 SAP NetWeaver 750 及更高版本,可以在 CDS DDL 源代码中添加注解,然而 SAP NetWeaver 740 没有此类支持。 尽…

基于神经网络的宏观经济数据分析研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

redis介绍及使用部署

一、redis介绍 1、redis特点: 开源的(BSD协议),使用ANSI C 编写,基于内存的且支持持久化,高性能的Key-Value的NoSQL数据库单线程运行,省去了线程上下文切换带来的性能开销,效率更高…

Cadence Allegro单个元器件的PCB封装更新操作

Cadence Allegro单个元器件的PCB封装更新操作 在PCB设计中如何对同一种类型的元器件进行封装的更新,有时候会出现这样的情况,出现错误的操作,误删除的其中一个器件的丝印或者是什么的,能否只更新这一个器件呢,其它的不…

Python_3、数据容器和函数进阶

目录 数据容器 列表(list) 元组(tuple) 字符串(str) 集合(set) 字典(dict) 序列的切片 函数 数据容器 数据容器一种可以容纳多份数据的数据类型&#…

校园文件发布系统|基于Springboot实现校园文章发布系统

作者主页:编程千纸鹤 作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 …

05---前后端实现分页查询

现在需要新加一个需求&#xff1a;实现分页查询&#xff0c;模糊查询&#xff0c;&#xff08;例如通过用户名查询出数据&#xff09; 从上往下修改 1、controller层 UserController.java GetMapping("/page")public Map<String,Object> findPage(RequestPar…