add tracing

This commit is contained in:
Asim Aslam 2020-01-30 23:24:46 +00:00
parent 21e0932339
commit 0be22c98c6
5 changed files with 97 additions and 87 deletions

View File

@ -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",

View File

@ -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{}

View File

@ -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,
}

View File

@ -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,18 +46,61 @@ 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) 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...)
if err != nil {
return nil, err
}
if err := stream.Send(in); err != nil {
return nil, err
}
return &debugServiceLog{stream}, nil
}
type Debug_LogService interface {
Context() context.Context
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Recv() (*Record, error)
}
type debugServiceLog struct {
stream client.Stream
}
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)
}
func (x *debugServiceLog) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *debugServiceLog) Recv() (*Record, error) {
m := new(Record)
err := x.stream.Recv(m)
if err != nil {
return nil, err
}
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)
@ -78,50 +121,6 @@ func (c *debugService) Stats(ctx context.Context, in *StatsRequest, opts ...clie
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...)
if err != nil {
return nil, err
}
if err := stream.Send(in); err != nil {
return nil, err
}
return &debugServiceLog{stream}, nil
}
type Debug_LogService interface {
SendMsg(interface{}) error
RecvMsg(interface{}) error
Close() error
Recv() (*Record, error)
}
type debugServiceLog struct {
stream client.Stream
}
func (x *debugServiceLog) Close() error {
return x.stream.Close()
}
func (x *debugServiceLog) SendMsg(m interface{}) error {
return x.stream.Send(m)
}
func (x *debugServiceLog) RecvMsg(m interface{}) error {
return x.stream.Recv(m)
}
func (x *debugServiceLog) Recv() (*Record, error) {
m := new(Record)
err := x.stream.Recv(m)
if err != nil {
return nil, err
}
return m, 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)
}

View File

@ -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) {};
}