【可观测性系列】 Opentelemetry 介绍

本文涉及的产品
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
日志服务 SLS,月写入数据量 50GB 1个月
可观测链路 OpenTelemetry 版,每月50GB免费额度
简介: 大家好,我是蓝胖子,随着微服务的流行,服务的可观测性概念被越来越多人提及到,究竟什么是可观测性?我们应该如何构建服务的可观测性?我将会在这篇文章中逐步提及到,并对和可观测性相关的工具 Opentelemetry做一个大致的介绍。

🎬作者简介:大家好,我是蓝胖子🥇

☁️博客首页:CSDN主页蓝胖子的编程梦

🌄每日一句:人生的烦恼,多在于明白的太多,而做的太少

可观测性系列(1).jpeg

大家好,我是蓝胖子,随着微服务的流行,服务的可观测性概念被越来越多人提及到,究竟什么是可观测性?我们应该如何构建服务的可观测性?我将会在这篇文章中逐步提及到,并对和可观测性相关的工具 Opentelemetry做一个大致的介绍。

🦋可观测性指的是什么

首先,我们来看看什么是可观测性。

传统的服务监控是资源维度的监控,通常是对cpu,内存,磁盘io这些硬件资源做的监控,但是这种维度的监控往往是结果导向的,也就是由于线上bug才导致这些硬件指标异常,我们从这些异常指标中被动发现问题。这样导致,不容易定位到发生bug的根本原因。

而可观测性的理念则要求不仅要发现问题,还要发现问题的根本原因。讲究从应用维度去做监控设计,上到用户体验,下到基础设施都被囊括进了监控的范畴。

通过日志,指标,链路追踪技术,构建服务的监控体系,覆盖上到用户体验,下到基础设施的监控内容,并将它们相互联系起来,这样当问题发生时,从这些监控内容中寻找联系从而定位到发生问题的根本原因就是可观测性要做的事情,可观测性就是一种理念。

通常很多时候我们也会说APM(应用服务性能监控),我认为可观测性是对APM中的相关概念和理念的延升。

最初始的APM则脱离于原始的传统服务监控,讲究从应用维度建立监控体系,并将日志,指标,链路追踪技术在应用层互相结合起来建立监控体系,如今提到的APM系统则和可观测性基本一致了,上到用户体验,下到基础设施都被囊括监进了监控的范畴,不仅仅体现在对应用层的监控。

🦋Opentelemetry是什么

在了解了可观测性是什么后,我们来看看一个比较🔥火热的开源工具 Opentelemetry,从上面可以知道,构建可观测性监控体系的时候,通常是通过日志,指标,链路追踪技术,这3个技术可以说是构建服务可观测性的3大基石。

日志数据,指标数据,链路追踪数据也被称为遥测数据(telemetry data)。

但最开始开发者在将这3个手段融入到项目中时没有统一的标准,Opentelemetry 则是为了统一创建和管理这些遥测数据(例如 日志数据,指标数据,链路追踪数据 )而产生的。

Opentelemetry 规范了客户端在创建和使用遥测数据的规范,并且Opentelemetry是和具体的监控组件是无关的,你可以将Opentelemetry的链路追踪数据导入jaeger或者其他链路追踪系统比如skywalking。

也就是说,Opentelemetry只负责创建和管理,导出遥测数据,但是遥测数据的存储和可视化需要其他开源或商业软件去完成

🦋Opentelemetry 的组成

在了解了Opentelemetry 是什么后,我们来看看Opentelemetry项目包含哪些组件。

Opentelemetry不是一个软件,是一个构建可观测性的工具集。

所以它提供了各种语言的客户端SDK,客户端SDK拥有统一的生成和导出遥测数据的逻辑,所以用上SDK就拥有统一的标准。

同时,Opentelemetry还提供了一个Opentelemetry Collector的代理软件,它能将发往jaeger或者prometheus或者其他的开源组件的遥测数据,预先经过Opentelemetry Collector处理后再发送到对端。Opentelemetry Collector对遥测数据提供了强大的预处理遥测数据的功能。比如jaeger对链路追踪数据只有前置采样功能,但我们能通过Opentelemetry Collector实现对链路追踪的后置采样。

除此以外,在Opentelemetry 项目中,还提供了自动化注入监控功能的机制,例如java的客户端SDK已经有成熟的探针机制,在golang方面,社区正在开发使用ebpf技术来实现golang服务的自动化能力。

另外,Opentelemetry项目中还包含了其他工具项目,比如OpenTelemetry Operator for Kubernetes, OpenTelemetry Helm Charts, and community assets for FaaS

Opentelemetry 开维护了一个系统 library ecosystem 查找用于使用和扩展 OpenTelemetry 的库、插件、集成和其他有用工具。我们可以在上面查找到想要的组件并且查看到其用法。

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
3月前
|
SQL 运维 监控
ARMS全链路监控
【8月更文挑战第22天】
84 3
|
6月前
|
运维 Prometheus 监控
阿里云可观测可视化 Grafana 版
阿里云可观测可视化 Grafana 版
172 0
|
存储 Prometheus Cloud Native
OpenTelemetry项目
OpenTelemetry项目
|
6月前
|
存储 Prometheus 监控
当 OpenTelemetry 遇上阿里云 Prometheus
本文以构建系统可观测(重点为指标监控体系)为切入点,对比 OpenTelemetry 与 Prometheus 的相同与差异,后重点介绍如何将应用的 OpenTelemetry 指标接入 Prometheus 及背后原理,最后介绍阿里云可观测监控 Prometheus 版拥抱 OpenTelemetry 及相关落地实践案例,希望能更好的帮助读者更好的理解 OpenTelemetry 及与 Prometheus 的生态融合。
524 0
|
SQL 弹性计算 Prometheus
统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?
统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?
586 11
统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?
|
6月前
|
消息中间件 Prometheus 监控
统一观测|Prometheus 监测 RocketMQ
RocketMQ 如何接入 PrometheusRocketMQ 诞生于阿里内部的核心电商系统,是业务消息的首选 MQ 平台。上图是 RocketMQ 5.0 的系统全貌,在接入层、核心组件和底层运维方面做了非常大的改进,具有功能多样、高性能、高可靠、可观测、易运维等众多优势。Metrics、Tra...
229 1
统一观测|Prometheus 监测 RocketMQ
|
Prometheus Kubernetes Cloud Native
基于OpenTelemetry进行全链路追踪
Hello folks,我是 Luga,今天我们来分享一下与云原生体系有关的话题- 云原生可观测性-OpenTelemetry。 作为一个云原生“核心”标准,OpenTelemetry在观测分布式微服务应用程序和云基础设施的可见性和控制自动化层面具有举足轻重的意义。
598 0
|
6月前
|
Prometheus 运维 监控
统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?
MSE 云原生网关默认提供了丰富的 Metrics 指标大盘,配合阿里云 Prometheus 监控提供开箱即用的完整可观测性能力,能够帮助用户快捷、高效的搭建自身的微服务网关与对应的可观测体系。
285 6
|
存储 消息中间件 Prometheus
统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?
统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?
统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?
下一篇
无影云桌面