• 模块化,UI、存储、集群管理多种机制可选
  • 支持告警
  • 优秀的可视化方案

技术架构

上图看了是不是比较乱,其实Skywalking总体可以分为四部分
1、Skywalking Agent:使用Javaagent做字节码植入,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到Skywalking Collector
2、Skywalking Collector :链路数据收集器,对agent传过来的数据进行整合分析处理并落入相关的数据存储中。
3、Storage:Skywalking的存储,在6.x版本中支持以ElasticSearch(推荐)、Mysql、TiDB、H2、作为存储介质进行数据存储。
4、UI :Web可视化平台,用来展示落地的数据。

下载并启动 SkyWalking

官方已经为我们准备好了编译过的服务端版本,现在最新版本为6.4.0

下载地址为 http://skywalking.apache.org/downloads/

配置 SkyWalking

下载完成后解压缩

tar -xvf apache-skywalking-apm-6.4.0.tar

mv apache-skywalking-apm-bin /usr/local/skywalking

cd /usr/local/skywalking

修改配置

cd config

vim application.yml@

配置存储方式,默认H2,官方推荐elasticsearch
这里需要做三件事

  1. 注释 H2 存储方案
  2. 启用 ElasticSearch 存储方案
  3. 修改 ElasticSearch 服务器地址

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}

启动 SkyWalking

修改完配置后,进入 skywalking\bin 目录,运行startup.bat启动服务端

通过浏览器访问 http://localhost:8080 出现如下界面即表示启动成功
###

默认的用户名密码为:admin/admin,登录成功后,效果如下图

Java Agent 服务器探针

agent简单的理解就是放一个插件,随着应用程序启动,监控数据、收集数据、发送数据的作用。
探针文件在skywalking/agent目录下

启动方式

在以前启动应用程序时,加上一些参数

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=shop-goods-provider
-Dskywalking.collector.backend_service=localhost:11800
-jar yourApp.jar

参数含义:

  • **-javaagent:**用于指定探针路径
  • **-Dskywalking.agent.service_name:**用于重写 agent/config/agent.config 配置文件中的服务名
  • **-Dskywalking.collector.backend_service:**用于重写 agent/config/agent.config 配置文件中的服务地址

启动后,访问链接,就会发现 Service 与 Endpoint 已经成功检测到了

表示 SkyWalking 链路追踪配置成功。

Service Topology监控

调用链路监控可以从两个角度去看待。我们先从整体上来认识一下我们所监控的系统。

通过给服务添加探针并产生实际的调用之后,我们可以通过Skywalking的前端UI查看服务之间的调用关系。

从图中可以看到:

有两个服务节点:provider & consumer
有一个数据库节点:localhost【mysql】
consumer消费了provider提供出来的接口。

一个系统的拓扑图让我们清晰的认识到系统之间的应用的依赖关系以及当前状态下的业务流转流程。

细心的小伙伴们可能发现图示节点consumer上有一部分是红色的,红色是什么意思呢?

红色代表当前流经consumer节点的请求有一断时间内是响应异常的。当节点全部变红的时候证明服务现阶段内就彻底不可用了。运维人员可以通过Topology迅速发现某一个服务潜在的问题,并进行下一步的排查并做到预防。

Skywalking Trace监控

Skywalking通过业务调用监控进行依赖分析,提供给我们了服务之间的服务调用拓扑关系、以及针对每个endpoint的trace记录。
我们在之前看到consumer节点服务中发生了错误,让我们一起来定位下错误是发生在了什么地方又是什么原因呢?!

在每一条trace的信息中都可以看到当前请求的时间、GloableId、以及请求被调用的时间。我们分别看一看正确的调用和异常的调用。

Trace调用链路监控

上图展示的是一次正常的响应,这条响应总耗时19ms;可以详细点击每个span查看详细信息

Service JVM信息监控

Skywalking还可以监控到Service运行时的CPU、堆内存、非堆内存使用率、以及GC情况。这些信息来源于JVM

Skywalking 服务告警

上面我们提到了通过查看拓扑图以及调用链路可以定位问题,可是运维人员又不可能一直盯着这些数据,那么我们就需要告警能力,在异常达到一定阈值的时候主动的提示我们去查看系统状态。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
家的学习有所帮助,也希望大家多多支持。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐