opentracing是一套分布式链路跟踪规范,jaeger(Uber开源)是该规范的go语言实现,分布式链路跟踪主要用于复杂分布式系统(如微服务)的调用链跟踪及性能分析
jaeger提供了docker的all-in-one包,里面包含了agent,collector,query,ui等组件,安装:
docker run -d -p 5775:5775/udp -p 16686:16686 -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 14268:14268 jaegertracing/all-in-one:latest
启动后可在http://ip:16686查看跟踪的数据
客户端代码:
package main
import (
// "context"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
"time"
"github.com/uber/jaeger-client-go"
"github.com/opentracing/opentracing-go"
// "github.com/opentracing/opentracing-go/log"
"github.com/uber/jaeger-client-go/config"
)
const (
URL = "http://localhost:8080"
LIST_API = "/getList"
)
var (
flag = make(chan bool)
)
func TraceInit(serviceName str