五分钟了解SkyWalking的核心功能以及必须掌握的重要概念

SkyWalking是一个开源的APM工具,专注于云原生、容器化的分布式系统。文章详细解释了服务、服务实例、端点、探针等核心概念,以及Trace、Span、TraceSegment的关系,还涵盖了Tracing、Metrics、Logging、Profiling和Event等观测性功能。
摘要由CSDN通过智能技术生成

SkyWalking核心

SkyWalking是一个开源的可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础架构的数据。SkyWalking提供了一种简单的方法来保持我们的分布式系统的清晰视图,甚至跨云。它是一个现代的APM,专门为云原生的、基于容器的分布式系统而设计。

使用 SkyWalking 时,用户可以看到服务与端点之间的拓扑结构以及每个服务、服务实例和端点的性能指标,还可以设置报警规则。

核心概念解释

服务(service):表示对请求提供相同行为的一组工作负载。在使用agent或 SDK 的时候,我们可以定义服务的名字。我们可以这样理解。

服务实例(service instance)上述的一组工作负载中的每一个工作负载称为一个实例,  当我们使用SkyWalking的agent 监控一个应用的时候,这个应用就是一个服务实例。一个服务可以包含一个或者多个与其对应的实例。

端点(Endpoint) :对于特定服务所接收的请求路径, 如HTTP的URI路径和gRPC服务的类名 + 方法签名,我们也可以理解为它是一个服务中的其中一个接口。我们可以理解为用户通过Endpoint触发了一个trace。

探针(agent):集成到目标系统中的代理或SDK库,它负责收集遥测数据,包括链路追踪和性能指标。

进程(process): 一个操作系统进程。在某些情况下,实例(service instance)不是一个进程,就像一个 Kubernetes中的pod可能包含多个进程。

层(layer):层表示计算机科学中的抽象框架,例如操作系统(OS_LINUX层)和Kubernetes(k8s层)。层是服务(service)的抽象集合。一个服务通常只属于一个层,但在某些场景中,一个服务可以属于多个层。例如,一个服务可以部署在一个Istio服务网格中,它可以属于网格和mesh-dp(网格数据平面)层。

追踪(Trace):是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。它不是一个具体的数据模型,而是多个 Segment 串起来表示的逻辅对象。在一条链路中 (Trace) ,无论请求分布于多少不同的进程中,这个 Traced 都不会改变。

追踪片段(TraceSegment ):是一个介于 Trace 与 Span 之间的概念,它是一条Trace 的一段,是组成 Trace 的基本单元,Trace 里可以包含多个 TraceSegment 。我们可以理解为TraceSegment 表示一个JVM(以Java应用为例) 进程内的一个线程中的所有操作的集合。

跨度(Span):是Trace的组成部分之一, 表示具体的某一个操作,可以是一个方法调用、一个HTTP请求或者其他类型的操作。一个TraceSegment 包含多个Span,而组合多个TraceSegment 就可以构成一个完整的Trace。Span可以包含多种类型,包括:

  • Entry Span(入口跨度):表示请求进入系统的第一个组件,通常是客户端发起的请求。
  • Exit Span(出口跨度):表示请求离开系统的最后一个组件,通常是系统对外提供的服务。
  • Local Span(本地跨度):表示请求在系统内部的一个组件间的调用。

关于Trace、Span和TraceSegment更详细的信息可以参考文章

一文搞定SkyWalking 中Trace、Tracesegment 和 Span 的关系,非常中重要!-CSDN博客

观测性相关概念解释

Tracing: 支持SkyWalking原生数据格式以及v1和v2格式的Zipkin跟踪。


Metrics: SkyWalking支持成熟的度量格式,包括原生度量格式、OTEL度量格式和Telegraf格式。SkyWalking与Service Mesh平台(通常为Istio和Envoy)集成,以在数据平面或控制平面中构建可观测性。此外,SkyWalking本机代理可以在指标模式下运行,这大大提高了性能。


Logging: 包括从磁盘或通过网络收集的日志。本地代理可以自动将跟踪上下文与日志绑定,或者使用SkyWalking通过文本内容绑定跟踪和日志。


Profiling:Profiling是一个强大的度量分析工具,可以帮助开发人员从代码行的角度理解应用程序的性能。SkyWalking提供捆绑在本地语言代理和独立ebpf代理中的profiling功能。


Event:事件是一种特殊的数据,用于记录系统中的重要时刻,如版本升级、配置变更等。将事件与指标联系起来可以帮助解释指标中的波峰或波谷,将事件与跟踪和日志联系起来可以帮助排除根本原因。

我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值