add trace to handler
This commit is contained in:
		| @@ -8,6 +8,7 @@ import ( | ||||
| 	"github.com/micro/go-micro/debug/log" | ||||
| 	proto "github.com/micro/go-micro/debug/service/proto" | ||||
| 	"github.com/micro/go-micro/debug/stats" | ||||
| 	"github.com/micro/go-micro/debug/trace" | ||||
| 	"github.com/micro/go-micro/server" | ||||
| ) | ||||
|  | ||||
| @@ -23,6 +24,8 @@ type Debug struct { | ||||
| 	log log.Log | ||||
| 	// the stats collector | ||||
| 	stats stats.Stats | ||||
| 	// the tracer | ||||
| 	trace trace.Trace | ||||
| } | ||||
|  | ||||
| func newDebug() *Debug { | ||||
| @@ -60,6 +63,27 @@ func (d *Debug) Stats(ctx context.Context, req *proto.StatsRequest, rsp *proto.S | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (d *Debug) Trace(ctx context.Context, req *proto.TraceRequest, rsp *proto.TraceResponse) error { | ||||
| 	traces, err := d.trace.Read(trace.ReadTrace(req.Id)) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	for _, trace := range traces { | ||||
| 		rsp.Spans = append(rsp.Spans, &proto.Span{ | ||||
| 			Trace:    trace.Trace, | ||||
| 			Id:       trace.Id, | ||||
| 			Parent:   trace.Parent, | ||||
| 			Name:     trace.Name, | ||||
| 			Started:  uint64(trace.Started.UnixNano()), | ||||
| 			Duration: uint64(trace.Duration.Nanoseconds()), | ||||
| 			Metadata: trace.Metadata, | ||||
| 		}) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (d *Debug) Log(ctx context.Context, stream server.Stream) error { | ||||
| 	req := new(proto.LogRequest) | ||||
| 	if err := stream.Recv(req); err != nil { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user