公司微服务架构用了有些时间了,微服务架构下的链接调用问题也越来越明显。人员流失,架构改造等原因,想人工维护架构图是不大可能了。常见的
APM
工具有cat
、zipkin
、pinpoint
,SkyWalking
也不是解决该问题的“银弹”,只是能完整绘制出链路数据流。
SkyWalking
是针对分布式系统的应用性能监控,天生吻合微服务、云原生和面向容器的分布式系统架构。PHP
应用也可接入,但需以插件方式接入,偶尔也会有一些坑。
主要有以下特性:
SkyWalking支持从多种数据源,收集不同格式的遥感数据,包括
最新有8.x架构图如下,较复杂,但实际应用起来还算简单
archat
参考官方教程, 安装完成后需要对 config/elasticsearch.yml 做如下修改:
# 修改
# 如果 cluster.name 不设置为 CollectorDBCluster ,则需要修改 SkyWalking 的配置文件
cluster.name: CollectorDBCluster
network.host: 0.0.0.0
# 增加
thread_pool.bulk.queue_size: 1000
tar -xvf skywalking-dist.tar.gz
解压,windows环境中选择zip包.bin/startup.sh
,windows环境运行 bin/startup.bat
你可以使用config / application.yml
的默认值
顺利的话,访问自己 http://localhost:8080 就能查看页面了。想进一步完善的话,可以申请域名,做80跳转。
首页
参考官网 https://github.com/apache/skywalking/blob/5.x/docs/cn/Deploy-skywalking-agent-CN.md,这里不做赘述。
参考官网 https://github.com/SkyAPM/SkyAPM-dotnet, 这里不做赘述
参考官网 https://github.com/SkyAPM/SkyAPM-php-sdk/blob/master/docs/install.md,这里不做赘述
看起来很酷炫,数据很详尽,实际上没多大用。
global-map
single-detail
jvm-gc
selector
可以指定状态来,比如下图,我指定 error状态,选择指定时间段后,会把这段时间内的程序异常搜索出来,点击具体条目,会显示错误详情。这个功能还是很赞的
error-list
error-detail
Skywalking
的同学PHP
接入后,如果产生程序日志,服务池中是不会显示服务器列表的。Java
项目倒未发现这个问题。其它语言有待考查