OpenTelemetry 可观察性入门

核心可观察性概念。

什么是可观察性?

可观察性让我们从外部了解系统,让我们在不知道其内部运作的情况下提出有关该系统的问题,此外,它使我们能够轻松地解决和处理新问题(即“未知的未知数”),并帮助我们回答问题,”为什么会这样?“

为了能够询问系统的这些问题,必须对应用程序进行适当的检测。也就是说,应用程序代码必须发出信号,例如traces、metrics和logs。当应用程序是恰好被仪表化的,当故障发生时,开发者就不需要再添加仪表去排除故障,因为他们有需要的所有的信息。

OpenTelemetry 是检测应用程序代码的装置,有助于使系统可观察。

可靠性&指标

遥测是指从系统发出的关于其行为的数据,这些数据可以来自traces、metrics和logs的形式。

可靠性回答了 ”该服务是否在做用户期望它做的事情?“的问题,系统可以100%的时间在线,但是如果用户点击”添加购物车“去添加黑色的裤子到他们的购物车,但是系统确是添加了一条红色的裤子,那么这个时候就可以说系统是不可靠的。

指标是聚合了基础设施或者应用程序一段时间内的可观测数据,例如包括:系统错误率、CPU使用率、给定服务的请求率。

SLI,服务级别指标,表示对服务行为的度量,一个好的SLI从用户的角度来衡量你的服务,SLI 的一个示例可以是网页加载的速度。

SLO,服务级别目标,是向组织/其他团队传达可靠性的方式,这是通过将一个或多个 SLI 附加到业务价值来实现的。

了解分布式跟踪

要了解分布式跟踪,让我们从一些基础知识开始。

Logs

日志是由服务或其他组件发出的带有时间戳的消息,然而,与traces不同的是,它们不一定与任何特定的用户请求或交易相关联。它们在软件中几乎无处不在,过去,开发人员和运维人员都非常依赖它来帮助他们了解系统行为。

log的例子:

I, [2021-02-23T13:26:23.505892 #22473]  INFO -- : [6459ffe1-ea53-4044-aaa3-bf902868f730] Started GET "/" for ::1 at 2021-02-23 13:26:23 -0800

不幸的是,日志对于跟踪代码执行不是很有用,因为它们通常缺乏上下文信息,例如它们是从哪里被调用的。当它们被当做span的一部分的时候,它们会变得更加有用。

Spans

span表示一个操作的单元,它跟踪一个请求的特定操作,秒回该操作执行期间所发生的事情。一个span包含名称、时间相关数据、结构化的日志消息、其他元数据(即属性),为它跟踪的操作提供信息。

Span 属性

下表包含 span 属性的示例:

KeyValue
net.transportIP.TCP
net.peer.ip10.244.0.1
net.peer.port10243
net.host.namelocalhost
http.methodGET
http.target/cart
http.server_namefrontend
http.route/cart
http.schemehttp
http.hostlocalhost
http.flavor1.1
http.status_code200
http.user_agentMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36

有关span及其与 OTel 的关系的更多信息,请看Spans

分布式跟踪

分布式跟踪,通常称为跟踪,记录请求所采用的路径(由一个应用或者是用户产生);当它们通过多服务架构传播时,如微服务或者severless应用。

如果没有跟踪,就很难查明分布式系统中故障或者性能问题的原因。它提高了我们应用程序或系统健康状况的可见性并且让我们调试难以在本地重现的行为,跟踪对于分布式系统至关重要,分布式系统通常存在不确定性问题或过于复杂而无法在本地重现。

跟踪通过分解请求流经分布式系统时发生的情况,使调试和理解分布式系统变得不那么令人生畏。

一个跟踪有一个或者多个span组成,第一个span被称作根span,每个根span代表一个从头到尾的请求。父级下的span提供了请求期间发生的事情的更深入的上下文(或者构成请求的步骤)。

许多可观察性后端将跟踪可视化为瀑布图,可能看起来像这样:

瀑布图显示根span与其子span之间的父子关系,当一个 span 封装另一个 span 时,这也代表了一种嵌套关系。

有关跟踪及其与 OTel 的关系的更多信息,请查看Traces

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值