sky walking 监听程序的性能开源项目 - 不忘初心,方得始终。 - ITeye博客

apm (Application Performance Managment :应用性能管理)简写,业界有很多成熟的收费工具,听云、OneAPM等。当然也有开源的apm,git地址: https://github.com/wu-sheng/sky-walking。功能方面当然和收费的没法比,但是了解一下也挺不错的,skywalking采用elasticsearch数据存储。了解es以及看过skywalking原码的肯定会说有很多弊端,毕竟是开源的嘛,分享精神以及设计架构挺值得学习的,希望越来越好,本期针对V3.1版本,整体大致分为 collector、web、agent、es 这几部分,应用到项目中也肯容易。v3.1支持es版本为5.2x,5.3x。官网文档 wiki地址

  1.首先搭建es 下载地址,Mac选择TAR,

   解压:

 

tar -zxvf elasticsearch-5.3.3.tar.gz
 cd elasticsearch-5.3.2

    config下面elasticsearch.yml为es的配置文件 

 

   配置  cluster.name: myesdb。此名称需要和collector配置文件一致。

    启动es

 

./bin/elasticsearch

 2安装部署collector

 

     下载 collector,

     解压安装包 tar -xvf skywalking-collector.tar.gz,windows用户可以选择zip包;

     设置config目录下的 collector.config配置文件;

     

#配置es(节点,多个逗号分隔)
es.cluster.nodes=127.0.0.1:9300
#es集群名称
es.cluster.name = myesdb
es.cluster.transport.sniffer = true
#collector当前主机名或者IP地址,请使用真实的地址,默认为127.0.0.1
cluster.current.hostname = 127.0.0.1
# 监听端口.
cluster.current.port = 11800
#RESTful
http.hostname=127.0.0.1
http.port=12800

   启动:

 

./bin/startup.sh 
Starting collector....
Collector started successfully!       
注意:collector-service.sh文件中请检查自己的JAVA_HOME是否配置,.sh文件中名称也要对应到环境变量中

  3配置web

     下载地址

     解压tar -xvf skywalking-web.tar.gz 同样windows用户可以选择zip包;

     设置config目录下的collector_config.properties配置文件

#collector服务配置
collector.servers[0]=127.0.0.1:12800

   设置config目录下的application.properties 配置文件

#web服务端口
server.port = 8088

   启动

./bin/startup.sh
Starting web service....
Skywalking Web started successfully!

   打开http://localhost:8088/ 可以看到


sky walking 监听程序的性能开源项目 - 不忘初心,方得始终。 - ITeye博客_第1张图片
 

    空白无所谓,因为还没有在项目中部署agent,没有收集到数据,下面我们开始部署 agent

     文档地址

    按照文档在agent.jar同级目录下创建sky-walking.config 文件

  

# 当前的应用编码,最终会显示在webui上。
# 建议一个应用的多个实例,使用有相同的application_code。请使用英文
agent.application_code=myproject

# 默认为1,表示启动采样机制,即每条调用链都会被追踪并上报
# 大于一时,则表示每N次访问,上报一条。
# 小于等于0位非法。
agent.sampling_cycle=1

# Collector REST-Service 服务地址.
# e.g.
# 单节点配置:SERVERS="127.0.0.1:8080"
# 集群配置:SERVERS="10.2.45.126:8080,10.2.45.127:7600"
collector.servers=127.0.0.1:12800

# Collector 接受追踪信息REST-Service 服务名称.
# 默认不需要修改
collector.service_name=/segments

# 向collector发送数据时,单次调用的最大容量
collector.batch_size=50

# 内部缓冲池大小,此值必须是2的指数倍。
# 相关资料: https://github.com/LMAX-Exchange/disruptor
buffer.size=512

# 日志文件名称
logging.file_name=skywalking-api.log

# 日志文件路径
# 默认为空, 使用"system.out"输出日志,一般会输出到中间件或者应用的控制台日志中。
logging.dir=

# 日志文件最大大小
# 如果超过此大小,则会生成新文件。
# 默认为300M
logging.max_file_size=314572800

# 日志级别,默认为DEBUG。
logging.level=DEBUG
    启动我们项目

 

    

java -javaagent:/Users/xxx/java/software/skywalking-agent.jar -jar  wp-xx-SNAPSHOT-exec.jar --server.port=8081 

 

 访问我们项目产生访问数据,刷新我们skywalking-web 页面 看到数据呈现效果:


sky walking 监听程序的性能开源项目 - 不忘初心,方得始终。 - ITeye博客_第2张图片
 同样我们可以观察某次请求结果


sky walking 监听程序的性能开源项目 - 不忘初心,方得始终。 - ITeye博客_第3张图片
 

以上是整个部署后的效果,其中很多程序在ping redis,检测线程的可用性。然后几分钟后统计了下es里的数据条数,没有正常访问数据的情况下产生了近 "hits": {"total": 13487, 条数据,用在生成环境堪忧,esindex没有按照规定生成,后期数据处理的话,很费劲。感谢开源,感谢分享,一些测试环境排查问题还是不错的。

你可能感兴趣的:(sky walking 监听程序的性能开源项目 - 不忘初心,方得始终。 - ITeye博客)