当前位置:首页 > 科技  > 软件

十分钟三个步骤集成使用SkyWalking

来源: 责编: 时间:2023-10-13 14:36:29 384观看
导读随着业务发展壮大,微服务越来越多,调用链路越来越复杂,需要快速建立链路跟踪系统,以及建立系统的可观测性,以便快速了解系统的整体运行情况。此时就非常推荐SkyWalking了,SkyWalking不仅仅是一款链路跟踪工具,还可以作为一个

随着业务发展壮大,微服务越来越多,调用链路越来越复杂,需要快速建立链路跟踪系统,以及建立系统的可观测性,以便快速了解系统的整体运行情况。此时就非常推荐SkyWalking了,SkyWalking不仅仅是一款链路跟踪工具,还可以作为一个系统监控工具,还具有告警功能。使用简便、上手又快。真可谓快、准、狠。K1q28资讯网——每日最新资讯28at.com

本文主要介绍如何快速集成使用SkyWalking,从3个方面入手:原理、搭建、使用。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

一、原理

1.概括

SkyWalking整体分为4个部分:探针采集层、数据传输和逻辑处理层、数据存储层、数据展示层。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

2.探针采集层

所谓探针,实际上是一种动态代理技术,只不过不是我们常用的Java代理类,而是在类加载时,就生成了增强过的代理类的字节码,增强了数据拦截和采集上报的功能。K1q28资讯网——每日最新资讯28at.com

探针技术是在项目启动时通过字节码技术(比如JavaAgent、ByteBuddy)进行类加载和替换,生成新的增强过的Class文件,对性能的影响是一次性的。K1q28资讯网——每日最新资讯28at.com

探针技术,因为在类加载时进行转换,增强了部分功能,所以会增加项目启动时间,同时也会增加内存占用量和线程数量。但是对性能影响不大,官方介绍在5% ~ 10%之间。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

探针层在类转换时,通过各种插件对原有的类进行增强,之后在运行时拦截请求,然后将拦截的数据上报给Skywalking服务端。同时再加上一些定时任务,去采集应用服务器的基础数据,比如JVM信息等。K1q28资讯网——每日最新资讯28at.com

3.数据传输和逻辑处理层

SkyWalking探针层使用了GRPC作为数据传输框架,将采集的数据上报到SkyWalking服务端。K1q28资讯网——每日最新资讯28at.com

SkyWalking服务端接收数据后,利用各种插件来进行数据的分析和逻辑处理。比如:JVM相关插件,主要用于处理上报上来的JVM信息,数据库插件用来分析访问数据库的信息。然后在将数据存入到数据存储层。K1q28资讯网——每日最新资讯28at.com

4.数据存储层

SkyWalking的数据存储层支持多种主流数据库,可以自行到配置文件里查阅。我推荐使用ElasticSearch,存储量大,搜索性能又好。K1q28资讯网——每日最新资讯28at.com

5.数据展示层

SkyWalking 通过 Rocketbot 进行页面UI展示。可以在页面的左上角看到这个可爱的Rocketbot。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

二、搭建

知道了原理,搭建就很轻松了,使用SkyWalking其实就3个步骤:K1q28资讯网——每日最新资讯28at.com

  • 搭建数据存储部件。
  • 搭建SkyWalking服务端。
  • 应用通过agent探针技术将数据采集上报给SkyWalking服务端。

1.搭建数据存储部件

SkyWalking支持多种存储方式,此处推荐采用Elasticsearch作为存储组件,存储的数据量较大,搜索响应快。K1q28资讯网——每日最新资讯28at.com

快速搭建Elasticsearch:K1q28资讯网——每日最新资讯28at.com

  • 安装java:yum install java-1.8.0-openjdk-devel.x86_64
  • 下载Elasticsearch安装包:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-1
  • 修改elasticsearch.yml文件的部分字段:cluster.name,node.name,path.data,path.logs,network.host,http.port,discovery.seed_hosts,cluster.initial_master_nodes。将字段的值改成对应的值。
  • 在Elasticsearch的bin目录下执行./elasticsearch启动服务。
  • 访问http://es-ip:9200,看到如下界面就代表安装成功。
{  "name": "node-1",  "cluster_name": "my-application",  "cluster_uuid": "GvK7v9HhS4qgCvfvU6lYCQ",  "version": {    "number": "7.17.1",    "build_flavor": "default",    "build_type": "rpm",    "build_hash": "e5acb99f822233d6ad4sdf44ce45a454xxxaasdfas323ab",    "build_date": "2023-02-23T22:20:54.153567231Z",    "build_snapshot": false,    "lucene_version": "8.11.1",    "minimum_wire_compatibility_version": "6.8.0",    "minimum_index_compatibility_version": "6.0.0-beta1"  },  "tagline": "You Know, for Search"}

2.搭建SkyWalking服务端

搭建SkyWalking服务端只需要4步:K1q28资讯网——每日最新资讯28at.com

(1)下载并解压skywalking:https://archive.apache.org/dist/skywalking/8.9.0/K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

(2) 进入到安装目录下的修改配置文件:config/apllication.yaml。将存储修改为elasticsearch。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

(3)进入到安装目录下的bin目录,执行./startup.sh启动SkyWalking服务端。K1q28资讯网——每日最新资讯28at.com

(4)此时使用jps命令,应该可以看到如下2个进程。一个是web页面进程,一个是接受和处理上报数据的进程。如果没有jps命令,那自行查看下是否配置了Java环境变量。同时访问http://ip:8080应该可以看到如下界面。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

3.应用采集上报数据

应用采集并且上报数据,直接使用agent探针方式。分为以下3步:K1q28资讯网——每日最新资讯28at.com

(1)下载解压agent:https://archive.apache.org/dist/skywalking/java-agent/8.9.0/,找到skywalking-agent.jarK1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

(2)添加启动参数K1q28资讯网——每日最新资讯28at.com

应用如果是jar命令启动,则直接添加启动参数即可:K1q28资讯网——每日最新资讯28at.com

java -javaagent:/自定义path/skywalking-agent.jar -Dskywalking.collector.backend_service={{agentUrl}} -jar xxxxxx.jar 

此处的{{agentUrl}}是SkyWalking服务端安装的地址,再加上11800端口。比如:10.20.0.55:11800。K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

应用如果是Docker镜像的部署方式,则需要将skywalking-agent.jar打到镜像里,类似下图:K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

(3)启动项目后,即可看到监控数据,如下图:K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

三、UI页面使用

原理和搭建已经介绍完毕,接下来快速介绍UI页面的功能。下图标红的部分是重点关注区域:K1q28资讯网——每日最新资讯28at.com

1.仪表盘

  • APM:以全局(Global)、服务(Service)、服务实例(Instance)、端点(Endpoint)的维度展示各项指标。
  • Database:展示数据库的各项指标。

K1q28资讯网——每日最新资讯28at.com

  • 服务(Service):某个微服务,或者某个应用。
  • 服务实例(Instance):某个微服务或者某个应用集群的一台实例或者一台负载。
  • 端点(Endpoint):某个Http请求的接口,或者 某个接口名+方法名。

K1q28资讯网——每日最新资讯28at.com

K1q28资讯网——每日最新资讯28at.com

2.拓扑图

K1q28资讯网——每日最新资讯28at.com

3.追踪

K1q28资讯网——每日最新资讯28at.com

总结

本文主要从3个方面入手:原理、搭建、使用,介绍如何快速集成使用SkyWalking。核心重点:K1q28资讯网——每日最新资讯28at.com

  • SkyWalking其实就4部分组成:探针采集上报、数据分析和逻辑处理、数据存储、数据展示。安装使用简单、易上手。
  • 探针技术是SkyWalking的基石,说白了就是:在类加载时进行字节码转换增强,然后去拦截请求,采集上报数据。
  • UI页面的使用,多用用就熟悉了。

本文链接:http://www.28at.com/showinfo-26-13275-0.html十分钟三个步骤集成使用SkyWalking

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 并发编程的艺术-“程”:探索进程、线程、协程、纤程与管程

下一篇: Java机器视觉:利用OpenCV进行图像处理和识别

标签:
  • 热门焦点
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 谷歌KDD'23工作:如何提升推荐系统Ranking模型训练稳定性

    谷歌在KDD 2023发表了一篇工作,探索了推荐系统ranking模型的训练稳定性问题,分析了造成训练稳定性存在问题的潜在原因,以及现有的一些提升模型稳定性方法的不足,并提出了一种新
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 认真聊聊东方甄选:如何告别低垂的果实

    来源:山核桃作者:财经无忌爆火一年后,俞敏洪和他的东方甄选依旧是颇受外界关心的“网红”。7月5日至9日,为期5天的东方甄选“甘肃行”首次在自有App内直播,
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
Top