SkyWalking是一个开源的可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础架构的数据。SkyWalking提供了一种简单的方法来保持我们的分布式系统的清晰视图,甚至跨云。它是一个现代的APM,专门为云原生的、基于容器的分布式系统而设计。
使用 SkyWalking 时,用户可以看到服务与端点之间的拓扑结构以及每个服务、服务实例和端点的性能指标,还可以设置报警规则。
服务(service):表示对请求提供相同行为的一组工作负载。在使用打点代理或 SDK 的时候,在使用Agent时可以定义服务的名字。
实例(service instance)上述的一组工作负载中的每一个工作负载称为一个实例, 就像 Kubernetes 中的 pods 一样,服务实例未必就是操作系统上的一个进程。 但当我们在使用打点代理的时候,一个服务实例实际就是操作系统上的一个真实进程。
端点(Endpoint) :对于特定服务所接收的请求路径, 如HTTP的URI路径和gRPC服务的类名 + 方法签名;
探针(agent):集成到目标系统中的代理或SDK库,它负责收集遥测数据,包括链路追踪和性能指标。
进程(process): 一个操作系统进程。在某些情况下,实例(service instance)不是一个进程,就像一个 Kubernetes中的pod可能包含多个进程。
层(layer):层表示计算机科学中的抽象框架,例如操作系统(OS_LINUX层)和Kubernetes(k8s层)。层是服务(service)的抽象集合。一个服务通常只属于一个层,但在某些场景中,一个服务可以属于多个层。例如,一个服务可以部署在一个Istio服务网格中,它可以属于网格和mesh-dp(网格数据平面)层。
Tracing: 支持SkyWalking原生数据格式以及v1和v2格式的Zipkin跟踪。
Metrics: SkyWalking支持成熟的度量格式,包括原生度量格式、OTEL度量格式和Telegraf格式。SkyWalking与Service Mesh平台(通常为Istio和Envoy)集成,以在数据平面或控制平面中构建可观测性。此外,SkyWalking本机代理可以在指标模式下运行,这大大提高了性能。
Logging: 包括从磁盘或通过网络收集的日志。本地代理可以自动将跟踪上下文与日志绑定,或者使用SkyWalking通过文本内容绑定跟踪和日志。
Profiling:Profiling是一个强大的度量分析工具,可以帮助开发人员从代码行的角度理解应用程序的性能。SkyWalking提供捆绑在本地语言代理和独立ebpf代理中的profiling功能。
Event:事件是一种特殊的数据,用于记录系统中的重要时刻,如版本升级、配置变更等。将事件与指标联系起来可以帮助解释指标中的波峰或波谷,将事件与跟踪和日志联系起来可以帮助排除根本原因。
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!