From 0be22c98c6691562aa16bfbe4159807b3918ca11 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Thu, 30 Jan 2020 23:24:46 +0000 Subject: [PATCH] add tracing --- config/cmd/cmd.go | 1 - debug/service/client.go | 9 +++- debug/service/proto/debug.pb.go | 46 ++++++++-------- debug/service/proto/debug.pb.micro.go | 78 ++++++++++++++------------- debug/service/proto/debug.proto | 2 +- 5 files changed, 73 insertions(+), 63 deletions(-) diff --git a/config/cmd/cmd.go b/config/cmd/cmd.go index c576df2dc4..6bbaacd440 100644 --- a/config/cmd/cmd.go +++ b/config/cmd/cmd.go @@ -217,7 +217,6 @@ var ( Name: "tracer", EnvVars: []string{"MICRO_TRACER"}, Usage: "Tracer for distributed tracing, e.g. memory, jaeger", - Value: "memory", }, &cli.StringFlag{ Name: "tracer_address", diff --git a/debug/service/client.go b/debug/service/client.go index 192101f3a6..6b6affd144 100644 --- a/debug/service/client.go +++ b/debug/service/client.go @@ -6,7 +6,6 @@ import ( "time" "github.com/micro/go-micro/v2/client" - "github.com/micro/go-micro/v2/debug/log" pb "github.com/micro/go-micro/v2/debug/service/proto" ) @@ -16,6 +15,14 @@ type debugClient struct { Client pb.DebugService } +func (d *debugClient) Trace() ([]*pb.Span, error) { + rsp, err := d.Client.Trace(context.Background(), &pb.TraceRequest{}) + if err != nil { + return nil, err + } + return rsp.Spans, nil +} + // Logs queries the services logs and returns a channel to read the logs from func (d *debugClient) Log(since time.Time, count int, stream bool) (log.Stream, error) { req := &pb.LogRequest{} diff --git a/debug/service/proto/debug.pb.go b/debug/service/proto/debug.pb.go index 6e513462c1..a2378b3049 100644 --- a/debug/service/proto/debug.pb.go +++ b/debug/service/proto/debug.pb.go @@ -564,40 +564,40 @@ func init() { } var fileDescriptor_dea322649cde1ef2 = []byte{ - // 554 bytes of a gzipped FileDescriptorProto + // 553 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcd, 0x6e, 0xd4, 0x30, 0x10, 0xde, 0x24, 0x9b, 0xdd, 0xcd, 0xb4, 0x09, 0xc8, 0xfc, 0x28, 0x0a, 0x08, 0x2a, 0x9f, 0x16, 0x01, 0x5e, 0x28, 0x17, 0x04, 0x57, 0x90, 0x38, 0x94, 0x8b, 0xcb, 0x0b, 0xb8, 0x89, 0x95, 0x06, 0x9a, 0x38, 0xd8, 0x4e, 0xa5, 0x7d, 0x24, 0x6e, 0xbc, 0x0c, 0x6f, 0xc3, 0x01, 0xf9, 0x27, 0xdb, - 0x44, 0x08, 0xf5, 0xc0, 0xcd, 0xdf, 0xe7, 0x99, 0x2f, 0x33, 0x9f, 0x67, 0x02, 0xa4, 0x6d, 0x4a, + 0x44, 0x08, 0xf5, 0xc0, 0xcd, 0xdf, 0xe7, 0xf1, 0x97, 0x99, 0x6f, 0x66, 0x02, 0xa4, 0x6d, 0x4a, 0x29, 0x76, 0xb5, 0x78, 0xe9, 0x0e, 0x15, 0xbf, 0x18, 0xea, 0x9d, 0xe2, 0xf2, 0xba, 0x29, 0xf9, 0xae, 0x97, 0x42, 0x7b, 0x8e, 0xd8, 0x33, 0x7e, 0x06, 0xe9, 0x27, 0xce, 0xae, 0xf4, 0x25, 0xe5, 0xdf, 0x07, 0xae, 0x34, 0xca, 0x61, 0xed, 0xa3, 0xf3, 0xe0, 0x24, 0xd8, 0x26, 0x74, 0x84, 0x78, 0x0b, 0xd9, 0x18, 0xaa, 0x7a, 0xd1, 0x29, 0x8e, 0x1e, 0xc2, 0x4a, 0x69, 0xa6, 0x07, 0xe5, 0x43, 0x3d, 0xc2, 0x5b, 0x38, 0x3e, 0xd7, 0x4c, 0xab, 0xdb, 0x35, 0x7f, 0x05, 0x90, 0xfa, 0x50, 0xaf, 0xf9, 0x18, 0x12, 0xdd, 0xb4, 0x5c, 0x69, 0xd6, 0xf6, 0x36, 0x7a, 0x49, 0x6f, 0x08, 0xab, 0xa4, - 0x99, 0xd4, 0xbc, 0xca, 0x43, 0x7b, 0x37, 0x42, 0x53, 0xcb, 0xd0, 0x9b, 0xc0, 0x3c, 0xb2, 0x17, + 0x99, 0xd4, 0xbc, 0xca, 0x43, 0x7b, 0x37, 0x42, 0x93, 0xcb, 0xd0, 0x9b, 0xc0, 0x3c, 0xb2, 0x17, 0x1e, 0x19, 0xbe, 0xe5, 0xad, 0x90, 0xfb, 0x7c, 0xe9, 0x78, 0x87, 0x8c, 0x92, 0xbe, 0x94, 0x9c, 0x55, 0x2a, 0x8f, 0x9d, 0x92, 0x87, 0x28, 0x83, 0xb0, 0x2e, 0xf3, 0x95, 0x25, 0xc3, 0xba, 0x44, - 0x05, 0x6c, 0xa4, 0x6b, 0x44, 0xe5, 0x6b, 0xcb, 0x1e, 0xb0, 0x51, 0xe7, 0x52, 0x0a, 0xa9, 0xf2, - 0x8d, 0x53, 0x77, 0x08, 0x7f, 0x05, 0x38, 0x13, 0xf5, 0xad, 0xfd, 0x3b, 0x07, 0x25, 0x67, 0xad, - 0x6d, 0x67, 0x43, 0x3d, 0x42, 0xf7, 0x21, 0x2e, 0xc5, 0xd0, 0x69, 0xdb, 0x4c, 0x44, 0x1d, 0x30, - 0xac, 0x6a, 0xba, 0x92, 0xdb, 0x56, 0x22, 0xea, 0x00, 0xfe, 0x19, 0xc0, 0x8a, 0xf2, 0x52, 0xc8, + 0x05, 0x6c, 0xa4, 0x2b, 0x44, 0xe5, 0x6b, 0xcb, 0x1e, 0xb0, 0x51, 0xe7, 0x52, 0x0a, 0xa9, 0xf2, + 0x8d, 0x53, 0x77, 0x08, 0x7f, 0x05, 0x38, 0x13, 0xf5, 0xad, 0xf5, 0x3b, 0x07, 0x25, 0x67, 0xad, + 0x2d, 0x67, 0x43, 0x3d, 0x42, 0xf7, 0x21, 0x2e, 0xc5, 0xd0, 0x69, 0x5b, 0x4c, 0x44, 0x1d, 0x30, + 0xac, 0x6a, 0xba, 0x92, 0xdb, 0x52, 0x22, 0xea, 0x00, 0xfe, 0x19, 0xc0, 0x8a, 0xf2, 0x52, 0xc8, 0xea, 0x6f, 0xf3, 0xa2, 0xa9, 0x79, 0xaf, 0x61, 0xd3, 0x72, 0xcd, 0x2a, 0xa6, 0x59, 0x1e, 0x9e, - 0x44, 0xdb, 0xa3, 0xd3, 0x07, 0xc4, 0x25, 0x92, 0xcf, 0x9e, 0xff, 0xd8, 0x69, 0xb9, 0xa7, 0x87, - 0x30, 0x53, 0x79, 0xcb, 0x95, 0x62, 0xb5, 0xb3, 0x35, 0xa1, 0x23, 0x2c, 0xde, 0x43, 0x3a, 0x4b, - 0x42, 0x77, 0x21, 0xfa, 0xc6, 0xf7, 0xbe, 0x41, 0x73, 0x34, 0xe5, 0x5e, 0xb3, 0xab, 0x81, 0xdb, - 0xde, 0x12, 0xea, 0xc0, 0xbb, 0xf0, 0x6d, 0x80, 0x9f, 0xc0, 0xf1, 0x17, 0xc9, 0x4a, 0x3e, 0x1a, - 0x94, 0x41, 0xd8, 0x54, 0x3e, 0x35, 0x6c, 0x2a, 0xfc, 0x02, 0x52, 0x7f, 0xef, 0xa7, 0xe2, 0x11, - 0xc4, 0xaa, 0x67, 0x9d, 0x19, 0x34, 0x53, 0x77, 0x4c, 0xce, 0x7b, 0xd6, 0x51, 0xc7, 0xe1, 0xdf, - 0x01, 0x2c, 0x0d, 0x36, 0x1f, 0xd4, 0x26, 0xcd, 0x2b, 0x39, 0xe0, 0xc5, 0xc3, 0x51, 0xdc, 0x78, - 0xde, 0x33, 0xc9, 0xbd, 0xb9, 0x09, 0xf5, 0x08, 0x21, 0x58, 0x76, 0xac, 0x75, 0xe6, 0x26, 0xd4, - 0x9e, 0xa7, 0xf3, 0x16, 0xcf, 0xe7, 0xad, 0x80, 0x4d, 0x35, 0x48, 0xa6, 0x1b, 0xd1, 0xf9, 0x59, - 0x39, 0x60, 0xb4, 0x9b, 0x18, 0xbd, 0xb6, 0x05, 0xdf, 0xb3, 0x05, 0xff, 0xcb, 0xe6, 0xff, 0x32, - 0xf3, 0xf4, 0x47, 0x00, 0xf1, 0x07, 0xb3, 0xd2, 0xe8, 0x39, 0xac, 0xdc, 0x86, 0xa2, 0x8c, 0xcc, - 0xb6, 0xba, 0xb8, 0x43, 0xe6, 0xab, 0x8b, 0x17, 0x68, 0x0b, 0xb1, 0xdd, 0x3c, 0x94, 0x92, 0xe9, - 0xb2, 0x16, 0x19, 0x99, 0x2d, 0x24, 0x5e, 0xa0, 0xa7, 0x10, 0x9d, 0x89, 0x1a, 0x1d, 0x91, 0x9b, - 0x91, 0x2e, 0xd6, 0x7e, 0x72, 0xf0, 0xe2, 0x55, 0x60, 0xa4, 0xec, 0x73, 0xa1, 0x94, 0x4c, 0x9f, - 0xb5, 0xc8, 0xc8, 0xec, 0x15, 0xf1, 0xe2, 0x62, 0x65, 0xff, 0x3a, 0x6f, 0xfe, 0x04, 0x00, 0x00, - 0xff, 0xff, 0x02, 0xa2, 0x4d, 0xc9, 0xa7, 0x04, 0x00, 0x00, + 0x44, 0xdb, 0xa3, 0xd3, 0x07, 0xc4, 0x3d, 0x24, 0x9f, 0x3d, 0xff, 0xb1, 0xd3, 0x72, 0x4f, 0x0f, + 0x61, 0x26, 0xf3, 0x96, 0x2b, 0xc5, 0x6a, 0x67, 0x6b, 0x42, 0x47, 0x58, 0xbc, 0x87, 0x74, 0xf6, + 0x08, 0xdd, 0x85, 0xe8, 0x1b, 0xdf, 0xfb, 0x02, 0xcd, 0xd1, 0xa4, 0x7b, 0xcd, 0xae, 0x06, 0x6e, + 0x6b, 0x4b, 0xa8, 0x03, 0xef, 0xc2, 0xb7, 0x01, 0x7e, 0x02, 0xc7, 0x5f, 0x24, 0x2b, 0xf9, 0x68, + 0x50, 0x06, 0x61, 0x53, 0xf9, 0xa7, 0x61, 0x53, 0xe1, 0x17, 0x90, 0xfa, 0x7b, 0x3f, 0x15, 0x8f, + 0x20, 0x56, 0x3d, 0xeb, 0xcc, 0xa0, 0x99, 0xbc, 0x63, 0x72, 0xde, 0xb3, 0x8e, 0x3a, 0x0e, 0xff, + 0x0e, 0x60, 0x69, 0xb0, 0xf9, 0xa0, 0x36, 0xcf, 0xbc, 0x92, 0x03, 0x5e, 0x3c, 0x1c, 0xc5, 0x8d, + 0xe7, 0x3d, 0x93, 0xdc, 0x9b, 0x9b, 0x50, 0x8f, 0x10, 0x82, 0x65, 0xc7, 0x5a, 0x67, 0x6e, 0x42, + 0xed, 0x79, 0x3a, 0x6f, 0xf1, 0x7c, 0xde, 0x0a, 0xd8, 0x54, 0x83, 0x64, 0xba, 0x11, 0x9d, 0x9f, + 0x95, 0x03, 0x46, 0xbb, 0x89, 0xd1, 0x6b, 0x9b, 0xf0, 0x3d, 0x9b, 0xf0, 0xbf, 0x6c, 0xfe, 0x2f, + 0x33, 0x4f, 0x7f, 0x04, 0x10, 0x7f, 0x30, 0x2b, 0x8d, 0x9e, 0x42, 0x74, 0x26, 0x6a, 0x74, 0x44, + 0x6e, 0x66, 0xaf, 0x58, 0xfb, 0x16, 0xe3, 0xc5, 0xab, 0x00, 0x3d, 0x87, 0x95, 0x5b, 0x61, 0x94, + 0x91, 0xd9, 0xda, 0x17, 0x77, 0xc8, 0x7c, 0xb7, 0xf1, 0x02, 0x6d, 0x21, 0xb6, 0xab, 0x89, 0x52, + 0x32, 0xdd, 0xe6, 0x22, 0x23, 0xb3, 0x8d, 0x75, 0x91, 0xb6, 0x5d, 0x28, 0x25, 0xd3, 0xb6, 0x16, + 0x19, 0x99, 0x75, 0x11, 0x2f, 0x2e, 0x56, 0xf6, 0xaf, 0xf3, 0xe6, 0x4f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xc7, 0x3f, 0xbe, 0xe3, 0xa7, 0x04, 0x00, 0x00, } diff --git a/debug/service/proto/debug.pb.micro.go b/debug/service/proto/debug.pb.micro.go index a5f773e190..0692209c21 100644 --- a/debug/service/proto/debug.pb.micro.go +++ b/debug/service/proto/debug.pb.micro.go @@ -34,9 +34,9 @@ var _ server.Option // Client API for Debug service type DebugService interface { + Log(ctx context.Context, in *LogRequest, opts ...client.CallOption) (Debug_LogService, error) Health(ctx context.Context, in *HealthRequest, opts ...client.CallOption) (*HealthResponse, error) Stats(ctx context.Context, in *StatsRequest, opts ...client.CallOption) (*StatsResponse, error) - Log(ctx context.Context, in *LogRequest, opts ...client.CallOption) (Debug_LogService, error) Trace(ctx context.Context, in *TraceRequest, opts ...client.CallOption) (*TraceResponse, error) } @@ -46,38 +46,12 @@ type debugService struct { } func NewDebugService(name string, c client.Client) DebugService { - if c == nil { - c = client.NewClient() - } - if len(name) == 0 { - name = "debug" - } return &debugService{ c: c, name: name, } } -func (c *debugService) Health(ctx context.Context, in *HealthRequest, opts ...client.CallOption) (*HealthResponse, error) { - req := c.c.NewRequest(c.name, "Debug.Health", in) - out := new(HealthResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *debugService) Stats(ctx context.Context, in *StatsRequest, opts ...client.CallOption) (*StatsResponse, error) { - req := c.c.NewRequest(c.name, "Debug.Stats", in) - out := new(StatsResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *debugService) Log(ctx context.Context, in *LogRequest, opts ...client.CallOption) (Debug_LogService, error) { req := c.c.NewRequest(c.name, "Debug.Log", &LogRequest{}) stream, err := c.c.Stream(ctx, req, opts...) @@ -91,6 +65,7 @@ func (c *debugService) Log(ctx context.Context, in *LogRequest, opts ...client.C } type Debug_LogService interface { + Context() context.Context SendMsg(interface{}) error RecvMsg(interface{}) error Close() error @@ -105,6 +80,10 @@ func (x *debugServiceLog) Close() error { return x.stream.Close() } +func (x *debugServiceLog) Context() context.Context { + return x.stream.Context() +} + func (x *debugServiceLog) SendMsg(m interface{}) error { return x.stream.Send(m) } @@ -122,6 +101,26 @@ func (x *debugServiceLog) Recv() (*Record, error) { return m, nil } +func (c *debugService) Health(ctx context.Context, in *HealthRequest, opts ...client.CallOption) (*HealthResponse, error) { + req := c.c.NewRequest(c.name, "Debug.Health", in) + out := new(HealthResponse) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *debugService) Stats(ctx context.Context, in *StatsRequest, opts ...client.CallOption) (*StatsResponse, error) { + req := c.c.NewRequest(c.name, "Debug.Stats", in) + out := new(StatsResponse) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *debugService) Trace(ctx context.Context, in *TraceRequest, opts ...client.CallOption) (*TraceResponse, error) { req := c.c.NewRequest(c.name, "Debug.Trace", in) out := new(TraceResponse) @@ -135,17 +134,17 @@ func (c *debugService) Trace(ctx context.Context, in *TraceRequest, opts ...clie // Server API for Debug service type DebugHandler interface { + Log(context.Context, *LogRequest, Debug_LogStream) error Health(context.Context, *HealthRequest, *HealthResponse) error Stats(context.Context, *StatsRequest, *StatsResponse) error - Log(context.Context, *LogRequest, Debug_LogStream) error Trace(context.Context, *TraceRequest, *TraceResponse) error } func RegisterDebugHandler(s server.Server, hdlr DebugHandler, opts ...server.HandlerOption) error { type debug interface { + Log(ctx context.Context, stream server.Stream) error Health(ctx context.Context, in *HealthRequest, out *HealthResponse) error Stats(ctx context.Context, in *StatsRequest, out *StatsResponse) error - Log(ctx context.Context, stream server.Stream) error Trace(ctx context.Context, in *TraceRequest, out *TraceResponse) error } type Debug struct { @@ -159,14 +158,6 @@ type debugHandler struct { DebugHandler } -func (h *debugHandler) Health(ctx context.Context, in *HealthRequest, out *HealthResponse) error { - return h.DebugHandler.Health(ctx, in, out) -} - -func (h *debugHandler) Stats(ctx context.Context, in *StatsRequest, out *StatsResponse) error { - return h.DebugHandler.Stats(ctx, in, out) -} - func (h *debugHandler) Log(ctx context.Context, stream server.Stream) error { m := new(LogRequest) if err := stream.Recv(m); err != nil { @@ -176,6 +167,7 @@ func (h *debugHandler) Log(ctx context.Context, stream server.Stream) error { } type Debug_LogStream interface { + Context() context.Context SendMsg(interface{}) error RecvMsg(interface{}) error Close() error @@ -190,6 +182,10 @@ func (x *debugLogStream) Close() error { return x.stream.Close() } +func (x *debugLogStream) Context() context.Context { + return x.stream.Context() +} + func (x *debugLogStream) SendMsg(m interface{}) error { return x.stream.Send(m) } @@ -202,6 +198,14 @@ func (x *debugLogStream) Send(m *Record) error { return x.stream.Send(m) } +func (h *debugHandler) Health(ctx context.Context, in *HealthRequest, out *HealthResponse) error { + return h.DebugHandler.Health(ctx, in, out) +} + +func (h *debugHandler) Stats(ctx context.Context, in *StatsRequest, out *StatsResponse) error { + return h.DebugHandler.Stats(ctx, in, out) +} + func (h *debugHandler) Trace(ctx context.Context, in *TraceRequest, out *TraceResponse) error { return h.DebugHandler.Trace(ctx, in, out) } diff --git a/debug/service/proto/debug.proto b/debug/service/proto/debug.proto index 140b2d91e9..81eb44b8e7 100644 --- a/debug/service/proto/debug.proto +++ b/debug/service/proto/debug.proto @@ -1,9 +1,9 @@ syntax = "proto3"; service Debug { + rpc Log(LogRequest) returns (stream Record) {}; rpc Health(HealthRequest) returns (HealthResponse) {}; rpc Stats(StatsRequest) returns (StatsResponse) {}; - rpc Log(LogRequest) returns (stream Record) {}; rpc Trace(TraceRequest) returns (TraceResponse) {}; }