gin+skywalking

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向上游注入上下文

上一篇:经历了研发困局、运维之痛,同程微服务从1到1w的旅程


下一篇:golang学习笔记: gin框架的ShouldBind绑定参数