123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package main
- import (
- "context"
- "flag"
- "fmt"
- "github.com/go-kit/kit/log"
- kitzipkin "github.com/go-kit/kit/tracing/zipkin"
- "github.com/longjoy/micro-go-course/section35/zipkin-kit/client"
- "github.com/openzipkin/zipkin-go"
- zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http"
- "google.golang.org/grpc"
- "os"
- "testing"
- "time"
- )
- func TestMain(m *testing.M) {
- var (
- grpcAddr = flag.String("addr", ":9008", "gRPC address")
- serviceHost = flag.String("service.host", "localhost", "service ip address")
- servicePort = flag.String("service.port", "8009", "service port")
- zipkinURL = flag.String("zipkin.url", "http://114.67.98.210:9411/api/v2/spans", "Zipkin server url")
- )
- flag.Parse()
- var logger log.Logger
- {
- logger = log.NewLogfmtLogger(os.Stderr)
- logger = log.With(logger, "ts", log.DefaultTimestampUTC)
- logger = log.With(logger, "caller", log.DefaultCaller)
- }
- var zipkinTracer *zipkin.Tracer
- {
- var (
- err error
- hostPort = *serviceHost + ":" + *servicePort
- serviceName = "test-service"
- useNoopTracer = (*zipkinURL == "")
- reporter = zipkinhttp.NewReporter(*zipkinURL)
- )
- defer reporter.Close()
- zEP, _ := zipkin.NewEndpoint(serviceName, hostPort)
- zipkinTracer, err = zipkin.NewTracer(
- reporter, zipkin.WithLocalEndpoint(zEP), zipkin.WithNoopTracer(useNoopTracer),
- )
- if err != nil {
- logger.Log("err", err)
- os.Exit(1)
- }
- if !useNoopTracer {
- logger.Log("tracer", "Zipkin", "type", "Native", "URL", *zipkinURL)
- }
- }
- tr := zipkinTracer
- parentSpan := tr.StartSpan("test")
- defer parentSpan.Flush()
- ctx := zipkin.NewContext(context.Background(), parentSpan)
- clientTracer := kitzipkin.GRPCClientTrace(tr)
- conn, err := grpc.Dial(*grpcAddr, grpc.WithInsecure(), grpc.WithTimeout(1*time.Second))
- if err != nil {
- fmt.Println("gRPC dial err:", err)
- }
- defer conn.Close()
- svr := client.StringDiff(conn, clientTracer)
- result, err := svr.Diff(ctx, "Add", "ppsdd")
- if err != nil {
- fmt.Println("Diff error", err.Error())
- }
- fmt.Println("result =", result)
- }
|