Web开发

注册

 

发新话题 回复该主题

浅谈可观测架构模式 [复制链接]

1#
能治好白癜风的医院在哪 http://pf.39.net/bdfyy/bjzkbdfyy/190321/6983144.html

文章来源

阿里巴巴中间件团队

可观测性(Observability)主要是指了解程序内部运行情况的能力。我们不希望应用发布上线后,对应用的内部一无所知。对于我们来说,整个应用就是一个黑盒子。即便应用出现错误或者发生崩溃,我们也可以得到崩溃前的所有相关数据,这也是飞机黑匣子(FlightRecorder)设计的出发点,如图1所示。

图1飞行记录仪之日志、度量和追踪

目前,关于可观测性的架构设计主要涉及三个部分:日志(logging)、度量(Metrics)和追踪(Tracing)。下面就从这三个方面详细阐述可观测性架构的设计。

日志

要想了解系统的运行情况,最简单的方法就是查看日志。为此,我们创造了非常多的日志框架、工具和系统,如日志文件打印、日志文件采集工具、日志分析系统等。但是,在实际运维中,我们不能将所有信息事无巨细地全部记录下来,这样做反而没有意义。我们需要为日志设置不同的级别,如debug、error、info等,在开发、测试、生产等不同环境下开启不同的日志级别,并保证在系统运行时能够实时调控这些日志级别。

通常,我们不用考虑日志处理的问题,毕竟日志处理技术经过长时间的发展,目前已经非常成熟,几乎所有的编程语言都有对应的日志框架。目前,云厂商基本上都会提供日志服务,对接非常简单,或者自行安装成熟的日志处理系统,如ElasticStack等。

度量

度量不仅包括CPU负载、内存使用量等技术指标的度量,还包括非常多的业务度量(BusinessMetrics),如每分钟的交易额、每分钟会员登录数等。对于这些业务度量参数,我们在做架构设计的时候,需要以参考指标的方式全部罗列出来,以便于观测上线后的数据,并做出相应的业务决策。

这里可能会有读者产生疑问,我们已经使用日志记录了相关的数据,数据库中也保存了最终的数据,为什么还要增加对数据的记录?为了解答这个问题,我们首先看一下如下区别。

第一,日志记录的是发生在某个时间点的事情,其中包含非常多的细节,可以说是事无巨细的。

第二,数据库记录的是当前数据的最新快照,我们通常不会

分享 转发
TOP
发新话题 回复该主题