【可观测性系列】 Opentelemetry 介绍

简介: 大家好,我是蓝胖子,随着微服务的流行,服务的可观测性概念被越来越多人提及到,究竟什么是可观测性?我们应该如何构建服务的可观测性?我将会在这篇文章中逐步提及到,并对和可观测性相关的工具 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 的库、插件、集成和其他有用工具。我们可以在上面查找到想要的组件并且查看到其用法。

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
存储 Prometheus Kubernetes
OpenTelemetry 简析
OpenTelemetry 是 CNCF 的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方 vendor 无关的服务。 2021.02.10,OpenTelemetry 的 tracing spec 达到 1.0 版本 (link),基于这个里程碑,笔者对 OpenTelemetry 进行了探索,判断在可观测性领域带来的价值和发展前景。 下面给出笔者对 OpenTelemetry 的理解,抛砖引玉。由于笔者能力有限,理解不当的地方请大家指正。
OpenTelemetry 简析
|
Prometheus Cloud Native Java
OpenTelemetry: 经得起考验的工具
OpenTelemetry: 经得起考验的工具
2906 2
|
存储 Prometheus 监控
当 OpenTelemetry 遇上阿里云 Prometheus
本文以构建系统可观测为切入点,对比 OpenTelemetry 与 Prometheus 的相同与差异,重点介绍如何将应用的 OpenTelemetry 指标接入 Prometheus 及背后原理以及介绍阿里云可观测监控 Prometheus 版拥抱 OpenTelemetry及相关落地实践案例。
95256 111
|
前端开发 JavaScript Java
OpenTelemetry × Elastic Observability 系列(一):整体架构介绍
本文介绍了 OpenTelemetry Demo 的整体架构,并演示了如何借助 Elastic Observability 实现链路追踪、日志与指标的统一观测。
446 3
OpenTelemetry × Elastic Observability 系列(一):整体架构介绍
|
Prometheus Kubernetes Cloud Native
基于OpenTelemetry进行全链路追踪
Hello folks,我是 Luga,今天我们来分享一下与云原生体系有关的话题- 云原生可观测性-OpenTelemetry。 作为一个云原生“核心”标准,OpenTelemetry在观测分布式微服务应用程序和云基础设施的可见性和控制自动化层面具有举足轻重的意义。
1800 0
|
Arthas 监控 Java
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
本文介绍了阿里云 Java Agent 4.x 版本在基于 OTel Java Agent 二次开发过程中的实践与思考,并重点从功能、性能、稳定性、兼容性四个方面介绍了所做的工作。同时也介绍了阿里云可观测团队积极参与开源建设取得的丰厚成果。
1614 133
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
|
存储 Prometheus Cloud Native
OpenTelemetry项目
OpenTelemetry项目
|
存储 Web App开发 JSON
OpenTelemetry Log规范解读
本文主要介绍OpenTelemetry Log规范,这一规范来自于Google、Microsoft、AWS、Splunk、DataDog、ES、Fluntd等众多优秀的公司和项目成员,其中有很多点是我们在平时开发、运维需要关注的知识和经验,值得大家一观。
7984 0
OpenTelemetry Log规范解读
|
5月前
|
Kubernetes 监控 Cloud Native
OpenTelemetry + 云监控 2.0:打造你的云原生全栈可观测
本文介绍如何通过 OpenTelemetry 与阿里云云监控 2.0 构建云原生全栈可观测体系,实现从应用到基础设施的端到端可观测能力,为故障快速定位和 AIOps 智能运维奠定基础。
550 41
|
存储 缓存 Prometheus
技术阅读摘要 - 2.OpenTelemetry技术概览
本系列的第二讲,我原先计划聊一下OpenTracing这个技术,但计划赶不上变化,我发现OpenTracing的官网上已经声明:这部分的技术将迁移到OpenTelemetry。
858 0