skywalking 部署教程
贼简单
1、下载安装包 linux版的
https://skywalking.apache.org/downloads/ 选中distribution 选择版本 选择 es6 或者7 的进行下载 我选择了 6版本
2、 上传到服务器/server/tools
apache-skywalking-apm-8.6.0.tar.gz
3、解压
tar zxf apache-skywalking-apm-8.6.0.tar.gz
mv xxx /app/skywalking
cd /app/skywalking
vim config/application.yml 修改后端存储为elasticsearch 默认为h2 如果es安装的是7,则修改为对应的版本
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.11.200:9200}
cd /app/skywalking/bin/
sh start.sh
会启动2个服务 1个是8080端口的 ui 1个是11800 接收上报的11800 端口
4、编写代码 额 过程很痛苦 go是通过sdk go2sky:https://gitee.com/OpenSkywalking/go2sky +gin plugin: https://gitee.com/cmlfxz/go2sky-plugins/tree/master/gin/v3完成的
GO sdk文档: https://gitee.com/OpenSkywalking/go2sky
一定搞清楚上下游:
download(下游) upstream(上游)
user--->service1--------------->service2
CreateLocalSpan 可以创建root span 和 本地 span
CreateEntrySpan 从下游提取上下文
CreateExitSpan 为上游注入上下文
entry 和 exit是把调用链串起来的关键
设计思路:
这里简化为svca--httpclient---svcb---httpclient-------svcc
svca在gin中间件中用CreateLocalSpan创建本地span,并在httpclient封装的函数中用CreateExitSpan向上游注入上下文
svcb在中间件用CreateEntrySpan 从上游提取上下文 ,如果还访问了 svcc 则httpclient封装的函数中 用CreateExitSpan向上游注入上下文