skywalking 简单操作文档

1.1. 基础概念

1.1.1. 概述

SkyWalking是 apache基金会下面的一个开源 APM项目,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。Skywalking支持链路追踪和监控应用组件基本涵盖主流框架和容器,如国产 RPC Dubbo和 motan等,国际化的 spring boot,spring cloud。

下面是 Skywalking的几大特点:多语言自动探针,Java,.NET Core和 Node.JS。多种监控手段,语言探针和 service mesh。轻量高效。不需要额外搭建大数据平台。模块化架构。UI、存储、集群管理多种机制可选。支持告警。优秀的可视化效果。

Skywalking 提供 Tracing(跟踪)和 Metrics(指标)数据的获取和聚合。Metric的特点是,它是可累加的:他们具有原子性,每个都是一个逻辑计量单元,或者一个时间段内的柱状图。例如:队列的当前深度可以被定义为一个计量单元,在写入或读取时被更新统计;输入 HTTP请求的数量可以被定义为一个计数器,用于简单累加;请求的执行时间可以被定义为一个柱状图,在指定时间片上更新和统计汇总。Tracing的大特点就是,它在单次请求的范围内,处理信息。任何的数据、元数据信息都被绑定到系统中的单个事务上。例如:一次调用远程服务的 RPC执行过程;一次实际的 SQL查询语句;一次 HTTP请求的业务性 ID。总结,Metric主要用来进行数据的统计,比如 HTTP请求数的计算。Tracing主要包含了某一次请求的链路数据。

1.1.2. 优势

Skywalking相比较其他的分布式链路监控工具,具有以下特点:社区相当活跃。Skywalking已经进入 apache孵化,目前的 start数已经超过 11K,新版本6.5.0已经发布。开发者是国人,可以直接和项目发起人交流进行问题的解决。Skywalking支持 Java,.NET Core和 Node.JS语言。相对于其他平台:比如 Pinpoint支持Java和PHP,具有较大的优势。探针无倾入性。对比 CAT具有倾入性的探针,优势较大。不修改原有项目一行代码就可以进行集成。探针性能优秀。有网友对 Pinpoint和 Skywalking进行过测试,由于 Pinpoint收集的数据过多,所以对性能损耗较大,而 Skywalking探针性能十分出色。支持组件较多。特别是对 Rpc框架的支持,这是其他框架所不具备的。Skywalking对 Dubbo、gRpc等有原生的支持,甚至连小众的 motan和 sofarpc都支持。

1.1.3. 主要概念

使用如下案例来进行 Skywalking主要概念的介绍,Skywalking主要概念包含:

  • 服务(service)
  • 端点(endpoint)
  • 实例(instance)

上图中,我们编写了用户服务,这是一个 web项目,在生产中部署了两个节点:192.168.1.100和192.168.1.101。用户服务就是 Skywalking的服务(Service),用户服务其实就是一个独立的应用(Application),在 6.0之后的 Skywalking将应用更名为服务(Service)。用户服务对外提供的 HTTP接口/usr/queryAll就是一个端点,端点就是对外提供的接口。192.168.1.100和 192.168.1.101这两个相同服务部署的节点就是实例,实例指同一服务可以部署多个。

1.1.4. 开发需要注意的问题

框架支持接入skywalking 作为链路监控,同时对于服务器资源不足的客户,也可以生成自定义的traceId(当然这种自定义的模块除了 能把日志串联起来,其他功能是没有的)

1、使用skywalking

增加配置luna.framework.starter.apm.skywalking.enable=true

2、使用自定义traceid

增加配置luna.framework.starter.apm.luna-trace.enable=true

skywalking和自定义的traceId只能使用一个,默认开启的是skywalking,且两个只能有一个enable为true。一旦开启了自定义的traceId,skywalking的功能将失效。

1.2. 管理页面使用

Skywalking的管理页面主要用于监控整个系统的状态,当出现问题时,可以快速的了解系统当前的情况,问题可能的原因。

1.2.1. 服务监控

Skywalking可以监控服务的状态,当系统出现问题时,可以从一些关键参数,如延迟、请求成功率来快速定位问题出现的服务。

服务监控管理页面可以看到服务请求的整体状态:

1.2.2. 链路监控

链路监控处可以看到请求的具体耗时,请求的整体链路,可以快速帮助我们定位问题。

关于请求的链路有四种视图,列表、树结构、表格和 统计,可以清晰的看到整个请求链路的状态

1.2.3. 实例监控

实例监控可以监控到具体的实例,也可以看到JVM占用的情况,当请求变慢等特殊情况出现时,可以通过分析实例JVM数据,辅助定位问题原因。

1.2.4. 端点监控

端点监控和上面的监控情况一致,可以帮助我们定位系统变慢等问题的原因。

如下,可以看到各个端点的一些数据:

1.2.5. 拓扑图

1.2.6. 告警

相关推荐
随风,奔跑2 天前
Spring Cloud Alibaba(六)-链路追踪SkyWalking
java·后端·spring·skywalking
tsyjjOvO3 天前
分布式事务 Seata 与链路追踪 SkyWalking 全解析
分布式·skywalking
小旭95273 天前
分布式事务 Seata 详解 + 链路追踪 SkyWalking 实战
java·分布式·后端·信息可视化·skywalking
dEso RSET10 天前
Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
spring boot·后端·skywalking
身如柳絮随风扬14 天前
链路追踪SkyWalking 架构了解
架构·skywalking
洒满阳光的午后18 天前
我做了一个“能理解业务语义”的可观测性 MCP Server:统一接入 Prometheus、OpenObserve 和 SkyWalking
人工智能·ai·prometheus·skywalking·openobserve·mcp
梵得儿SHI18 天前
SpringCloud 实战落地:可观测性建设(SkyWalking + Prometheus + Grafana)从 0 到 1 生产级部署
grafana·prometheus·springcloud·skywalking·微服务可观测性·线上问题排查
Jinkxs20 天前
SkyWalking - Spring Cloud Alibaba 全链路追踪实战
skywalking
烛之武21 天前
Skywalking服务链路追踪与Jemeter压力测试
压力测试·skywalking
鬼先生_sir22 天前
Spring Cloud 微服务监控实战:SkyWalking + Prometheus+Grafana 全栈解决方案
运维·spring cloud·grafana·prometheus·skywalking