Go 探针接入
如果你的服务涉及到 Go,可以参考该文档。本文以 Go gin应用为例讲解如何将 Gin 的endpoints 接入到分布式链路追踪。
前置条件
依赖包与环境安装
- 环境 go 1.15.4 
- Go agent包可以通过一下方式安装: 
go get -u github.com/SkyAPM/go2sky
本文档示例中其他库安装:
//go2sky的gin插件
go get -u github.com/SkyAPM/go2sky-plugins/gin/v3
go get -u github.com/gin-gonic/gin
探针接入
package main
import (
    "log"
    "github.com/SkyAPM/go2sky"
    v3 "github.com/SkyAPM/go2sky-plugins/gin/v3"
    "github.com/SkyAPM/go2sky/reporter"
    "github.com/gin-gonic/gin"
)
func main() {
    /*
    参数说明:
    @serverAddr:SkyWalking 后端收集器地址
    */
    re, err := reporter.NewGRPCReporter("172.16.200.201:11800")
    if err != nil {
        log.Fatalf("new reporter error %v \n", err)
    }
    defer re.Close()
    /*
    参数说明:
    @service 服务名字, 规则:租户Code::namespace(K8S)::服务名,通过 :: 链接。
    @opts 固定格式,一个Reporter的实例
    */
    tracer, err := go2sky.NewTracer("devTenant::dmp-t::go-gin-test", go2sky.WithReporter(re))
    if err != nil {
        log.Fatalf("create tracer error %v \n", err)
    }
    gin.SetMode(gin.ReleaseMode)
    r := gin.New()
    //gin加载go2sky的中间件(插件)实现路径追踪
    r.Use(v3.Middleware(r, tracer))
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "hi gin",
        })
    })
    r.Run()
}
其他已经实现的插件:
配合go agent的插件,使用以上go web框架开发的endpoints可以自动接入到分布式链路追踪。