Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 1.13 KB

README.md

File metadata and controls

56 lines (44 loc) · 1.13 KB

Go2sky with grpc(unary)

Note

This plugin works just for gRPC server and client in unary mode, streaming has not been supported.

Installation

go get -u github.com/SkyAPM/go2sky-plugins/grpc

Usage

func ExampleInterceptorFunction() {
	re, err := reporter.NewLogReporter()
	if err != nil {
		log.Fatalf("new reporter error %v \n", err)
	}

	defer re.Close()

	tracer, err := go2sky.NewTracer("grpc", go2sky.WithReporter(re))
	if err != nil {
		log.Fatalf("create tracer error %v \n", err)
	}

	go func() {
		lis, err := net.Listen("tcp", "0.0.0.0:18088")
		if err != nil {
			log.Fatalf("failed to listen: %v", err)
		}
		traceInterceptor := grpc2.NewUnaryServerTraceInterceptor(tracer)
		s := grpc.NewServer(grpc.UnaryInterceptor(traceInterceptor))
		demo.RegisterGreeterServer(s, &demoServer{})
		if err := s.Serve(lis); err != nil {
			log.Fatalf("failed to serve: %v", err)
		}
	}()

	// // Wait for the server to start
	time.Sleep(time.Second)

	wg := sync.WaitGroup{}
	wg.Add(1)

	go func() {
		defer wg.Done()
		request(tracer)
	}()
	wg.Wait()
	// Output:
}

See more.