skywalking java探针
一、探针linux安装全链路追踪工具skywalking8.0
SkyWalking是探针一个针对分布式系统的APM(应用性能监控)系统,特别针对微服务、探针cloud native和容器化架构,探针其核心是探针个分布式追踪系统。它通过探针自动收集所需的探针指标,且基于探针技术对应用零侵入零耦合。探针通过这些调用链路以及指标,探针SkyWalking APM会感知应用间关系和服务间关系,探针并进行相应的探针指标统计。
解压后,探针进入目录,探针默认自带了agent,探针这个是探针用来追踪java项目的。我因为是探针用来追踪php项目,所以这个用不上,如果要追踪php项目,需要另外安装php的agent,请查看我另外一篇文章( linux安装sky-php-agent)
bin里面是启动文件
config目录里面是配置文件
webapp目录里面是UI界面项目文件和配置文件
默认情况下,只需要更改一下 config/application.yml文件
默认的restHost和gRPCHost的IP为0.0.0.0,我这里改成我这边内网的IP。这里要注意一下,一旦改了IP,就只能用这个IP,比如我这里改成了内网IP,那么用127.0.0.1都不能访问。
如果需要更改UI界面访问的端口,可以修改 webapp/webapp.yml,里面配置文件很简单
注意一下,如果要想能够让受控端访问到skywalking服务,那么必须将12800端口对受控端服务器打开。WEB界面的端口,我这里是8081,大家可以改成自己需要的端口。
变更完配置后,就可以进去bin目录下,运行 startup.sh,服务就会启动。然后通过http://服务器ip:8081进行界面访问。
受控端如果也启动了的话,这个时候,界面里就自动会出现数据了。
emmmm.....这里有个坑,默认情况下,打开界面什么数据都看不到,这个需要点击右上角的“自动”按钮,让按钮变成蓝色,这个时候就会有数据出现了。
如果还是没有出现数据,那就检查受控端服务是不是已经启动了,或者去看一下logs目录下的日志。如果受控端连接服务端出现错误,就看skywalking-oap-server.log;如果受控端一切正常,界面数据还是不显示,就看webapp.log
我在安装的时候,使用startup.sh启动文件,又遇到一个坑。这个启动文件,无论中间是不是有报错,都会提示启动成功。而且因为没有停止的命令,如果重复运行startup.sh,日志里会提示端口占用。这个时候,需要使用命令先查看占用端口的进程,然后杀掉进程,再重新运营启动文件才可以。
二、skywalking影响性能吗
不。
Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
三、skywalking 如何统计调用时间
用ByteBuddy和Java agent技术来统计方法的调用时长。
byteBuddy框架致力于解决字节码操作和instrumentaton API的复杂性。ByteBuddy所声称目标是先将显示的字节码操作隐藏在一个类型安全的领域的特定语言背后。ByteBuddy提供了额外的API来生成Javaagent。
Skywalking是一个国产的开源框架,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
参考资料:SkyWalking