阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?
本文根据作者在「TakinTalks 稳定性社区 」公开分享整理而成
#一分钟精华速览#
全栈可观测是一种更全面、更综合和更深入的观测能力,能协助全面了解和监测系统的各个层面和组件,它不仅仅是一个技术上的概念,更多地是技术与业务的结合。在“以业务为导向”的大前提下,全栈可观测正在成为趋势。
本文分享了阿里云可观测平台服务作为全球分布的超大业务系统,同时也作为服务全球企业用户的可观测平台提供方,在故障洞察提效中遇到的业务挑战,以及 6 个关键技术点和 2 个应用案例。

背景
全栈可观测是一个技术和业务相结合的领域,单从技术维度理解,可观测包含了基础设施、应用服务、客户端等等,而是更广义的维度则关注这项技术如何支撑企业的业务, 提供跨越各个层面的数据收集、分析和可视化,帮助企业更好地理解和管理其系统和应用。从技术开源到各类头部厂商的产品,再到国内外多个业务组织的落地,都可以看出全栈可观测已经成为一种技术趋势。

Gartner 报告显示,落地可观测性具有相当高的战略价值
这一观点也在 Gartner 的报告中得到印证,根据 Gartner 的预测,到 2026 年,成功应用可观测性的 70% 组织将能够实现更短的决策响应时间,从而为目标业务或 IT 流程带来竞争优势,这说明可观测技术已经突破了技术层面,进入业务层面。
所以从业务视角来看,业务的变化(规模,复杂性,稳定性要求)必然驱动企业对可观测技术提出更高的要求。 阿里云可观测平台服务作为一个全球分布的超大业务系统,同时也作为服务全球企业用户的可观测平台提供方,由于其支撑的业务架构的不断变化,驱动了可观测技术栈的不断演进。
今天我将结合阿里云的可观测业务挑战,重点从几项关键性技术和场景,与大家交流我对可观测技术的思考。
01 业务如何推动阿里云观测技术演进?

阿里云可观测性技术发展时间线
2012 年鹰眼系统打通应用和中间件: 阿里云可观测性技术起点可以追溯到 11 年前,当时淘宝开始逐步实施微服务架构,这导致了大量服务之间相互调用非常复杂。因此,在这个时期我们构建了鹰眼监控系统(EagleEye),来解决不同业务之间的调用问题。可以说,正是淘宝业务的快速发展和微服务架构的演进,才促成了这一技术的产生,也为后期的可观测体系打下了基础。
2013-2015 年引入指标和日志: 这个阶段,从社区的角度来看,容器技术和开源项目开始出现。同时,类似于 Service Mesh 这样的项目也应运而生。由于底层基础设施的改变,即容器化的普及,监控领域出现了新的需求和要求。我们的监控技术方向也逐步从打通应用和中间件之间的调用链,演进到引入观测指标和日志等。
2017 年 ARMS 云服务: “可观测性”这个词正式出现并明确了其定义,即关注的数据维度,如指标等。阿里云随即基于原有的鹰眼监控系统,推出了产品化的服务 ARMS。
2022 年全栈可观测套件: 在上云容器化、平台化的前提下,开源社区的发展带来了相对规范的可观测技术栈,所以阿里云在 2022 年发布了全栈的可观测相关技术,基于开源的规范实现相关的云服务。
从阿里近 10 年的监控技术发展可以看出,技术并不是自发演进的,更多是由于业务架构和基础设施架构的变化推动了可观测性技术的架构改变。
02 阿里云的可观测遇到了哪些挑战?
2.1 作为平台方:服务全球企业用户

2.2 作为业务系统:全球分布
2.2.1 确保较高的业务能见度
我们经常面临用户无法找到其观测数据的问题。这是一个常见的挑战,需要我们思考,从数据采集到存储和消费如何确保高度的业务可见性。
2.2.2 如何确保SLA达标
上述的问题只是一个表面现象,我们需要深入了解问题的根本原因。可观测性数据链路非常长,涵盖了从数据采集、端侧处理、服务端处理、存储到查询等全链路的业务系统。因此,我们需要快速诊断故障,确定是哪个环节出现了问题,或者是否是由于用户配置问题导致的等等。我们需要在最短的时间内诊断用户数据链路故障并可视化故障,将平均定位时间从 10 分钟降低到 5 分钟或更低。我将在后面分享具体的实践方式。
2.2.3 如何支撑业务决策
同时,我们自身也需要做出许多决策,无论是关于服务和产品的模式、架构,还是产品运营的形态等等。我们要知道用户需要哪些可观测生态能力,并建立观测数据模型进行精确评估。
03 有哪些关键性技术需要突破?
3.1 我们需要什么样的观测数据?

对于关注可观测性技术的同学来说,这个图应该很熟悉。开源社区对可观测性的定义是指标、日志、调用链和 Profiles,这四类数据实际上存在很多交叉,而不是完全分离的。这个交叉意味着这几种数据本质上是相似的,它们都用于反映业务运行的技术状态和业务数据状态,只是捕获数据的渠道和形式不同。如果要比较这几种数据,可以从以下维度考虑。
指标(Metrics):
相对而言,指标数据是成本最低的,因为它们是提前计算好的数据。通常情况下,我们可以通过分析日志等方式来计算得到这些数据。例如,每天的请求数(QPS)等指标可以直接反映我们想要了解的数据。当然,如果要从日志中计算这些指标,就需要大量的数据才能得出结果。可以说指标数据是相对有效和直接的数据形式,通常以数字形式呈现。但对于开发者来说,如果可观测平台的建设者和开发者是分离的,开发者可能不太愿意进行较多的改动,因为这些改动会有一定代码侵入性。
日志(Logging):
日志数据的有效信息密度相对较低,因此完全存储和检索它的成本较高。不过,在不同的业务系统中,日志通常被细分为访问日志、业务日志、错误日志等等。因此,使用日志来快速定位系统故障是最方便的方法,打印一条日志或编写一行代码是相对容易的操作。对于事件类的日志通常作为审计的原始数据,低成本存储也是大多数业务希望的。
调用链(Tracing):
调用链是在日志基础上增加关联性的一种衍生数据。它将一次请求的前后调用关联起来,从而产生增强效果。调用链具有较强的数据关联性,但也伴随较高的成本。因此,我们需要考虑采样问题。
调用链的好处是能够快速定位复杂系统故障,特别是涉及多个服务的情况。 通过调用链,我们可以准确定位 API 请求故障的具体位置。相比之下,仅从日志出发可能需要进行回溯并对业务有一定了解。而指标数据可能只是一种侧面的统计模式。在这些不同数据类型之间有很多转化点,我们将在后面具体介绍。
Profiles:
这是近年来受到更多关注的数据类型。它深入到了我们应用程序的细节,当然不同的开发语言可能有所不同。一般情况下,我们会在需要提升性能或者发现内存泄漏、CPU 占用过高等疑难杂症时使用这种观测数据模式。它能够快速定位到代码中出现问题的具体位置。
在全栈可观测体系中,以上几种数据类型通常会被统一使用。同时,考虑到成本问题,我们会进行转换和选择性存储,最终综合利用这些数据。如果只能选择一种数据类型的话,指标是最直接的一种观测数据。
3.2 关键点 1:多种部署形态下的数据采集架构
在现代的部署环境中,特别是云上的环境,我们可以将其分为容器集群、ECS 主机和云服务。在考虑全栈时,我们的业务系统可能是自研的,以容器的形式运行在云上或自建机房中;也可能是相对传统的结构,在虚拟机上运行。云服务中间件也是大多数企业的选择。因此,在建立全栈的数据采集时,我们必须考虑这些不同的维度。

再说说探针核心要考虑的维度——
3.2.1 不丢数据
这是最基础的要求,但实际上也是最难的要求。有经验的探针开发人员都知道,在面对超大规模集群时,日志采集、应用 Tracing 数据采集和指标采集,数据量都是海量的。因此,如何确保不丢失数据是探针开发中必要的设计因素。
根据部署形态或架构形态,探针可以分为运行在集群、节点、应用这样三个维度。
应用维度的探针,它采集的数据主要以调用链为主,因为只有调用链才必须侵入应用。而无侵入的调用链形态,目前还在发展过程中,不同的开发语言还没有太好的方法能够实现。因此,在 APM 形态下,都以应用探针为主。
节点维度的探针,它面对的是在同一内核的业务,即容器化部署后,同一个节点上会有多个容器,可能几十到几百个不等。同理,在 ECS 上也是节点级别的,它可以借助 eBPF 相关技术实现无侵入采集指标、业务日志等等。无侵入 Tracing 采集也是在节点探针这个维度考量。
集群维度的探针,它的核心是作为数据中转, 将前置数据采集的逻辑在单集群侧先进行计算,比如日志本身的转化、Relable 等等。同时,也需要实现服务发现去采集一些指标的数据,比如常见的业务暴露指标,错误数、请求数等等。
通过多级的 Agent 模式 , 帮助我们在大集群中分类采集不同的数据,然后上传到服务端。上传数据时会采用分包原则,确保每一个数据包都上传到网关。网关仅接受数据压缩包立即转到背后的消息中间件,不拆包。继而可以保障高性能接受数据包,确保在 Agent 侧不阻塞。
3.2.2 实时采集
另一个维度是实时采集,即需要降低延迟,避免数据在几分钟甚至更长时间后才被存储到服务端并供用户查询到。因此,我们需要尽快采集数据,让 Agnet 在处理大量数据时的并行能力需要足够强大。
所以集群探针的多副本采集是关键技术之一。当我们面对多个采集 Target 采集目标时,需要创建多个采集工作副本,自动均衡采集不同 Target 的指标,并在短时间内将其发送到后端。Tracing 等应用端数据天然分散式采集。
3.2.3 就近处理
当考虑全链路的实时性时,除了采集外,存储处理的逻辑也是必须要考虑的。这里引出了另外一个重要问题是就近处理,其目的是为了降低成本。因为一旦将数据发送到服务端,就会带来计算和存储的成本。面向日志和特定 Tracing 数据,我们可以降采样或做转化,通过在端侧提前处理,最终产出的指标数据成本会相对较低。
3.2.4 智能关联/打标签
在进行全栈数据查询时,智能关联和打标签是关键。在采集不同的应用时,它可能会有多种标签,例如某个 APP ID、访问域名。通过对原始数据进行处理,我们可以统一打上标签,并在查询时将它们关联起来。
3.2.5 无侵入采集
目前在可观测领域,无侵入的采集方式被视为关键技术,因为它能够降低对业务代码的侵入,使技术栈更容易落地。下面我将重点讲解。
3.3 关键点 2:基于 eBPF 的无侵入数据采集能力
eBPF 作为一种无侵入的数据采集能力,被认为是非常重要的技术手段。无侵入的采集方式能够减少对研发的影响,使得技术栈的部署更加顺利。目前,这种采集方式在社区和实践中得到广泛应用。
无侵入采集方式不会对业务代码产生干扰,它是在运行的内核中工作,例如 Linux 内核可以采集 IO 数据,其中包括网络 IO、文本文件 IO 等。目前最常用的是网络 IO,也就是请求的黄金三指标数据。通过从内核直接捕获这些数据,则能快速计算出黄金三指标。 我们可以从图中简单了解它的工作模式。

我们通过节点探针向内核下发相关的 eBPF 脚本,内核会自动加载并捕获当前节点下的所有网络调用。然后,它会自动解码应用的协议,并计算出黄金三指标。这种模式适用于不同的通信协议,可以计算出具体的黄金三指标。这些指标以及一些分段的 Tracing 数据会被发送到集群探针侧进行处理,或者直接存储。
在这个过程中,我们可以从这个大图中看到一个完整的业务系统可能使用不同的开发语言,如 Node.js、Java、PHP 等。对于 Java 来说,由于其侵入性(侵入 Jvm 运行时)探针的发展相对成熟,它的探针功能更丰富。而对于其他语言,业界更多地使用无侵入的 eBPF 技术来分析指标和调用链,建立整个链路。 因此,我们可以从不同的技术栈采集相关的指标数据,从而得到整体架构。

网络通信版本的全栈可观测架构图
这个图展示了通信、进程和协议等更详细的信息,还可以标识每个请求之间的关联 Span ID 等。这些信息分析后可以方便我们进行整体的可观测性。
然而,这些技术也面临一些挑战,比如会占用较高的资源。 由于需要分析网络协议,解码通信包,就会消耗大量的 CPU 资源,相比于直接注入 Java 探针或者业务方编写代码来体现指标,无侵入方式的资源占用更高。如果我们要选择的话,更好的方式是让业务开发者以一种标准的方式生成指标,以提升业务自身的可观测性。
另外一个挑战是智能识别通信链路中的每个节点。 我们可以通过域名、IP 地址等维度来识别通信的目标,例如 RDS 是否基于某个云服务或自建服务,需要进行识别并进行关联。
所以,这个技术的门槛相对较高,但好在开源社区和阿里云上都有相关的技术和产品可供使用。
3.4 关键点 3:存储成本控制的技术要点
在讨论采集和存储的过程中,我想重点谈一谈降低成本的问题。因为可观测的核心是需要处理大量的数据,而数据处理会产生成本,这也是很多团队决策更快引入可观测性的一个重要因素。在这个过程中,有很多技术性的因素需要考虑,我举几个例子来说明。
3.4.1 Metrics 成本陡增的真相

问题背景:
举一个例子来说明,在指标处理这个方面,假设我们通过一种旁路的方式捕获到了一个指标,比如请求的状态。这种指标很简单,它可以用来标记每天的请求数量。然而,如果我们在设计中没有很好地把握,比如在标签中引入了一个变化量很大的变量,例如 User ID,而业务系统有 1000 万活跃用户,那么就会同时产生 1000 万条时间线。这样的数据量相对其价值通常是不成正比的。这是我们在为大多数用户提供服务的过程中经常遇到的成本爆炸场景之一。
解决思路:
那么,如何解决这个问题呢?其实解决思路还是相对简单明了的。首先,我们在生成指标时要避免出现这样的模式。如果我们不需要如此详细的数据(一般情况下是不需要的),就不要设计这样的指标标签。这是最根本的解决思路。然而,作为平台方,很难要求所有用户都遵循这个规则。因此,我们需要考虑从服务端提供一些机制来处理这个问题。
具体方案:
第一个是 Prometheus 社区的方案,即在采集数据时对标签进行重写,将变化较大的数字转换为通配符, 从而降低整个指标。然而,这种方法依赖于用户具备相关经验,并能配置相关策略。
那么,是否有更简单、更智能的方式?我们在服务端采用了一种自动处理的方式。 当数据流进入处理流程后,系统会自动判断指标是否开始发散。如果发现这样的事件发生,服务会触发生成相应的规则,并将规则注入到处理的链路过程中。这样,1000 万条数据就自动转化,最终存储中可能只有一条数据。这种自动转化的逻辑依赖于发散数据。整个过程背后需要有经验的积累,才能生成相应规则来自动处理这样的事件。
另外,一些厂商还会使用存储降成本的逻辑, 即数据是否可以取消更多索引,但这会增加成本并可能对存储的非通用性要求更多。
我个人认为,最简单的方式还是在产生指标时就考虑这个问题。将指标的合理的设计纳入到技术设计中。
3.4.2 如何有效降低 Traces 成本

问题背景:
以图为例,我们通常认为 90% 以上的测试数据和日志一样,大多数情况下是没有用的。除非出现问题或者想了解某个调用链的背后调用,否则一般不会去查看它的调用链是否正确。因此,存储全量数据后再使用全量数据,则会带来很高的成本。但如果只是简单按比例采样,数据失真也是非常可怕的,可能会错过一些错误,也失去了观测的意义。有什么方法可以解决这个问题呢?
解决思路:
在实践中,我们尝试了几种方法,这里分享一种按业务语义来处理数据的方式。

我们分析数据时,通常用户在调用产生后的短期内(例如 30 分钟)会去查询调用链的状态。随着时间的推移,查询比例通常会非常低,这是基于业务分析的结果。因此,我们提出了热数据和冷数据的分类方式。
热数据用于实时查询,冷数据则用于排查问题或进行最终统计。在热数据转化为冷数据的过程中,我们需要存储有错误的调用链,而其他数据则按一定比例进行采样存储。通过这样的存储模式,我们不能用冷数据产生的统计指标来评估业务的性能,它只是作为从调用链维度进行分析的参考数据。因此,我们非常关注错误的,或较慢的调用链的数据,必须将其保存下来。总体而言,这种处理思路降低了冷数据存储的成本,同时也降低了最终用户查询的成本。
3.5 关键点 4:预先提取关键数据

3.5.1 Trace2Metric
以调用链为例,通常我们关注的场景是单条调用链的上下游追溯。但更多的情况是基于 Trace 数据进行统计分析,统计业务的请求量、错误和耗时等黄金指标。
在构建追踪系统时,我们将其分为两类查询:一类是查询调用链,另一类是基于调用链生成的统计数据,我们称之为指标。对于这些指标的计算,我们可以将其前移以降低成本。 具体而言,我们引入了 Trace2Metric 的模式,将追踪数据进入处理链路后先进行处理,生成统计指标,比如某两个服务之间调用的数量、错误数和耗时等指标,然后将其存储到指标存储系统中。至于其他原始 Trace 数据,可以通过之前提到的冷热数据方式进行处理,或以低成本的方式全量存储,例如去掉所有索引,只存储原始文本数据。
通过这样的方式分流数据,我们在用户端通过可视化系统进行查询时,更频繁地查询的是指标,而较低频的查询则是原始 Trace 数据。因此,在整体上降低了低频查询的存储成本,而高频查询的指标是聚合的,所以指标量也较小。通过这样的处理模式,我们可以逐步演进数据处理链路。
3.5.2 Log2Metric
在处理日志的指标时,思考模式与 Tracing 类似。实际上,日志更容易产生指标,特别是访问日志,如网关日志或业务的访问日志。这类日志通常需要统计整体业务或基于业务维度的数据,而单点查询很少。例如,统计哪些用户访问了哪个业务系统。因此,在采集日志数据后,我们可以直接进行产生指标的处理。
在开源社区中已有相关的方案,如 Vector 模式,它对日志进行前置处理并生成指标。后续的存储方式与前面的 Trace 类似。
综上所述,我们主要从以上几个维度考虑来降低存储成本。
3.6 关键点 5:观测数据全局聚合查询

3.6.1 应用场景
数据的使用取决于存储形态。以指标为例,业务指标的数据可能存在几种场景。
跨账号的数据聚合查询: 在云上可能存在不同账号的数据,每个账号对应不同的业务团队。但是在整体视角下进行可观测时,需要将相关数据聚合在一起进行可视化、告警等操作。
跨 Region 的数据聚合查询: 从技术角度来看,可能存在跨地域、甚至跨国的数据查询需求。例如,北京可能有相关业务,杭州也有相关业务,北美也有相关业务。在观测整个业务系统时,需要从这些不同地域甚至跨国 Region 查询相应的数据。
跨实例(数据域)的数据聚合查询: 这个场景颗粒度更小,是数据的多租存储,即分不同的实例存储。此时最基础的粒度则是跨实例(数据域)。比如,某个实例存储后端服务的观测数据,另一个实例存储前端和 APP 的观测数据,还有一个实例存储云服务的观测数据。在做全栈观测时,需要将不同场景的数据进行聚合查询。
3.6.2 解决思路
为了实现这一目标,我们需要选择合适的技术来进行聚合查询。那么聚合查询是这么做的?
这里得益于开源规范,在指标处理的链路中,以 Prometheus 规范为主。 该规范定义了丰富的算子和查询语法。所有 PromQL 的查询语法进入到聚合查询实例后,就会拆解里面的每个算子,并将其发送到目标数据存储实例进行计算。然后将这些数据重新流回聚合实例进行聚合,并响应给用户。对于用户来说,这种计算和汇总的逻辑是透明的,因为他们只需要提供一个查询语法即可。同时,通过指标加标签的机制,我们可以很好地分辨出数据的共同标签、差异化标签,从而了解这些数据的来源。这种模式能够帮助我们构建不同场景的可观测性视图。
3.7 关键点 6:构建无处不在的可观测基础设施
有了采集、存储、查询等基础设施后,构建全栈的可观测能力就必然需要面向场景。

在场景方面,通常可以分为基础设施的观测、应用的实时观测、前端的观测、APP 的观测以及主动的云拨测等。这些观测点都能从可观测平台进行分类。
在具体的业务场景中,则不需要考虑这些,直接根据业务形态选择适合的观测方式。 在提供这些能力时,我们要考虑开源的兼容性。因此,以开箱即用的方式提供开源和云服务的观测方案是非常重要的。开箱即用意味着每个场景的告警、大盘数据源、数据采集和处理规则等都以独立的聚合方案的形式直接可用。这对于构建可观测平台是一个重要参考。我们提供给开发者和业务团队的,不能仅仅是技术的基础设施,而是应该是基于开源视角、业务视角和公共服务视角的最佳实践, 以包装好的方式提供给平台用户使用。同时这种包装需要是标准化,可扩展的,我们的研发甚至是用户可以根据需求随时定义新的插件,利用平台已有的能力,形成可复用的解决方案。
04 可观测平台的实践和落地效果
4.1 自身实践:阿里云构建全域 SLA 可观测
作为一个全球分布的业务系统,阿里云云原生可观测团队需要关注自身的观测和降低用户故障发现的时间。为此,我们需要构建一个全面的可观测团队视图。涵盖几个关键维度的数据:SLA 可用性、成本和稳定性、用户运营(用户规模、新增用户数量等)。

从这些需求中可以看到,我们的观测需求是广义上的全栈可观测。从 SRE、稳定性、业务运营等多个维度建立观测视图。
再细分 SLA 的可观测性需求,它涉及到了全球不同地域的数据采集、存储和使用侧的聚合查询。再根据不同的业务形态选择不同的观测手段。在数据层面,我们统一进行用户、地域和业务域等维度打标和数据查询。
对于我们的业务分布,一个是控制面,一个是数据面,我们需要针对不同的维度进行面向用户的聚合。在控制面中,我们关注用户的操作,例如开通哪些实例等。在数据链路中,我们关注每个用户在特定环境中的数据采集、存储和查询情况。应用各种观测技术手段,我们可以从下往上进行聚合,最终形成完整的观测视图。我们可以通过两个截图来说明。

第一个截图展示了 Agent 采集侧的 SLA 观测大盘,支持从用户维度、地域维度和用户环境维度观测数据采集状态,发现故障域,以及通过指标、日志等手段直接定位采集细节状态,达到洞察故障的效果。
第二个截图展示了存储侧的聚合数据,可以让我们直接看到 SLA 的情况。支持从用户维度、地域维度和用户实例维度观测数据写入 SLA,先于用户发现写入环节故障。
即使我们支持用户工单的同学具有不同的技术背景,也可以通过全栈观测大盘快速发现用户问题,解决效率大大提高。我们内部数据统计,通过建立多维度的观测大盘,整体故障洞察效率提升了 50%。
4.2 用户实践:传音的全栈可观测实践
作为“非洲手机之王”,传音从事以手机为核心的智能终端的设计、研发、生产、销售和品牌运营,是新兴市场消费者喜爱的智能终端产品和移动互联服务提供商。据 IDC 报告显示 2021 年占据非洲智能手机出货量的 47.9%。传音移动互联广告平台是传音控股的重要业务之一,是非洲最为主流的营销平台之一。
客户痛点:
在技术架构方面,传音控股采用 Spring Cloud 进行全面微服务化, 应用运行在阿里云容器服务 ACK 之上,并分布在欧洲、亚洲等多个地区,真正实现了多地区服务体系。对于该体系而言,要构建完整的可观测体系,挑战非常大。

需求概述:
- 可观测性应覆盖从研发到生产的全周期。
- 同时需要监控全球多个容器集群,云服务基础设施。
- 打通应用和基础设施观测,统一观测调用链和性能、可用性指标。
方案概述:
- 自建流水线数据采集系统,通过 Grafana 展示应用构建数据
- 采用 ARMS Prometheus 产品监控容器集群和应用性能及调用链,集成 Grafana 完成多集群统一监控
- SLS 产品完成业务日志、应用日志、容器日志的采集/存储/展示,并通过查询语句生成指标,在 Grafana 中展示
- 统一采集云服务观测数据,结合基础应用数据统一观测。
落地成效:
传音在建立全新的可观测技术能力后,不仅提升了问题诊断效率,还提升了用户体验。在此基础上,结合其他云原生新技术方案,业务上线效率提高了 60%, 对于高效业务创新起到了至关重要的作用。
05 总结与展望
开源技术和开源社区的发展带来了标准化,覆盖了全栈技术和全栈业务方向的数据收集、存储和可视化等方面。而可观测性的厂商推出了全栈可观测的综合方案,引领用户实践,使得全栈状态更易实现。在此基础上,全栈可观测的实践案例得以在更多业务组织中落地。

当然应用可观测性技术带来了业务能见度、决策支持、成本优化和组织合作改进等收益,但同时,大多数业务组织也面临着技术复杂性、成本控制、组织文化变革、数据管理等方面的挑战。
我们可以看到,越来越多的企业正在克服这些难题,让可观测技术突破技术层面,进入业务层面,并得到更加广泛的落地。可观测,无处不在!
作者介绍

阿里云智能技术专家——曾庆国(悦达)
TakinTalks 社区专家团成员。KubeVela 社区 Maintainer。长期从事云原生可观测、应用持续交付、基础设施管理等云原生领域,积累大量基于 Kubernetes 的云原生应用管理平台建设经验和可观测领域实践经验。曾帮助工业互联网、金融和企业办公等多个行业头部用户完成云原生 DevOps 转型。ArchSummit、Gopher、SDCon、A2M 等大会讲师。
点击此处,了解更多产品详情
相关文章:
阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?
本文根据作者在「TakinTalks 稳定性社区 」公开分享整理而成 #一分钟精华速览# 全栈可观测是一种更全面、更综合和更深入的观测能力,能协助全面了解和监测系统的各个层面和组件,它不仅仅是一个技术上的概念,更多地是技术与业务的结合。在“…...
docker run 命令30个常用参数详解
文章目录 0.前言docker run 命令示例 2.Docker run 多种用法知其然知其所以然1. 基本用法2. 启动交互式容器3. 映射端口4. 挂载文件/目录5. 设置环境变量6. 指定容器名称7. 后台运行容器8. 重启策略9. 其他参数 2. docker run 命令参数详解1. -d:以后台模式…...
[kali]kali linux镜像下载地址
百度网盘地址 链接:https://pan.baidu.com/s/1cxySSyQdLIkox-w_CSka4Q 提取码:cevu 官方下载合集 https://www.kali.org/downloads/(所有版本) 独立链接: 2020.3版本 64位:https://cdimage.kali.org/kali-2020.…...
考研408 | 【操作系统】操作系统的概述
操作系统的概念和功能 导图 操作系统的功能和目标 1.作为系统资源的管理者 2.向上层提供方便易用的服务 3.作为最接近硬件的层次 操作系统的特征 导图 并发 并发VS并行 共享 并发和共享的关系 虚拟 异步 操作系统的发展和分类 导图 1.手工操作 2.批处理阶段--单道批处理系统…...
VM部署CentOS并且设置网络
最近在准备学习k8s,需要部署服务器,所以需要在虚拟机中部署centOS服务,下面是在虚拟机中部署CentOs服务。 其中VM地址在下面 链接:https://pan.baidu.com/s/1hSKr5RfwsabdzNOvHmZ5kw?pwdkys5 提取码:kys5 其中Cent…...
多维时序 | MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测
多维时序 | MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现KOA-CNN-BiGRU-Attention多变量时间序列预测,KOA-…...
深入Redis线程模型
目录 1.前言 2.Redis为什么快? 3.Redis 为何选择单线程? 3.1可维护性 3.2并发处理 3.3性能瓶颈 4.Reactor设计模式 5.Redis4.0前 单线程模型 - Event Loop 6.Redis4.0后 多线程异步任务 7.Redis6.0后 多线程网络模型 1.前言 这篇文章我们主要围绕…...
idea cannot download sources 解决方法
问题 点击class文件右上角下载源码失败 解决方案 找到idea terminal 控制台cd 至maven工程执行 mvn dependency:resolve -Dclassifiersources...
CS:GO升级 Linux不再是“法外之地”
在前天的VAC大规模封禁中,有不少Linux平台的作弊玩家也迎来了“迟到”的VAC封禁。 一直以来,Linux就是VAC封禁的法外之地。虽然大部分玩家都使用Windows平台进行游戏。但实际上,使用Linux畅玩CS:GO的玩家也不在少数。 以前V社主要打击W…...
手写spring笔记
手写spring笔记 《Spring 手撸专栏》笔记 IoC部分 Bean初始化和属性注入 Bean的信息封装在BeanDefinition中 /*** 用于记录Bean的相关信息*/ public class BeanDefinition {/*** Bean对象的类型*/private Class beanClass;/*** Bean对象中的属性信息*/private PropertyVal…...
shell的两种属性: 交互(interactive)与登录(login)
1. 背景 在看shell变量的时候引起了兴趣: 局部变量,全局变量,环境变量,shell的配置文件,参考博客: http://c.biancheng.net/view/773.html 2. 交互式与非交互式 参考博客: shell的两个属性:是否交互式(interactive), 是否登录…...
实现简单的element-table的拖拽效果
第一步,先随便创建element表格 <el-table ref"dragTable" :data"tableData" style"width: 100%" border fit highlight-current-row><el-table-column label"日期" width"180"><template slot-sc…...
Web网页浏览器远程访问jupyter notebook服务器【内网穿透】
文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook,它是一个交互式的数据科学和计算环境,支持多种编程语言,如…...
干翻Dubbo系列第十一篇:Dubbo常见协议与通信效率对比
文章目录 文章说明 一:协议 1:什么是协议 2:协议和序列化关系 3:协议组成 (一):头信息 (二):体信息 4:Dubbo3中常见的协议 5:…...
春秋云镜 CVE-2020-17530
春秋云镜 CVE-2020-17530 S2-061 靶标介绍 对CVE-2019-0230的绕过,Struts2官方对CVE-2019-0230的修复方式是加强OGNL表达式沙盒,而CVE-2020-17530绕过了该沙盒。当对标签属性中的原始用户输入进行评估时,强制 OGNL 评估可能会导致远程代码执…...
【java毕业设计】基于Spring Boot+Vue+mysql的论坛管理系统设计与实现(程序源码)-论坛管理系统
基于Spring BootVuemysql的论坛管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于Spring BootVuemysql的论坛管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取…...
华为在ospf area 0单区域的情况下结合pbr对数据包的来回路径进行控制
配置思路: 两边去的包在R1上用mqc进行下一跳重定向 两边回程包在R4上用mqc进行下一跳重定向 最终让内网 192.168.10.0出去的数据包来回全走上面R-1-2-4 192.168.20.0出去的数据包来回全走 下面R1-3-4 R2和R3就是简单ospf配置和宣告,其它没有配置&#…...
PyQt5登录界面跳转
目录 1、设计ui界面 2、设计逻辑代码,实现登录界面跳转 3、结果 1、设计ui界面 设计后的ui界面 在这里可以设置密码不显示 这里可以设置快捷键 最后将ui界面转为py文件后获得的逻辑代码为:(文件名为Login.py) # -*- coding: u…...
git add 用法
git add 是 Git 的一个命令,用于将更改的文件加入到暂存区(staging area),准备提交这些更改。以下是该命令的常见用法: 添加单个文件 git add 文件名添加多个文件 git add 文件名1 文件名2 ...添加所有当前目录下的更改…...
系统架构设计师---2018年下午试题1分析与解答(试题三)
系统架构设计师---2018年下午试题1分析与解答 试题三 阅读以下关于嵌入式实时系统相关技术的叙述,在答题纸上回答问题 1 和问题 2。 【说明】 某公司长期从事宇航领域嵌入式实时系统的软件研制任务。公司为了适应未来嵌入式系统网络化、智能化和综合化的技术发展需要,决定…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
