tracer and logger improvements
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		| @@ -5,11 +5,33 @@ import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"sort" | ||||
|  | ||||
| 	"go.unistack.org/micro/v3/logger" | ||||
| ) | ||||
|  | ||||
| // DefaultTracer is the global default tracer | ||||
| var DefaultTracer = NewTracer() | ||||
|  | ||||
| var ( | ||||
| 	// TraceIDKey is the key used for the trace id in the log call | ||||
| 	TraceIDKey = "trace-id" | ||||
| 	// SpanIDKey is the key used for the span id in the log call | ||||
| 	SpanIDKey = "span-id" | ||||
| ) | ||||
|  | ||||
| func init() { | ||||
| 	logger.DefaultContextAttrFuncs = append(logger.DefaultContextAttrFuncs, | ||||
| 		func(ctx context.Context) []interface{} { | ||||
| 			if span, ok := SpanFromContext(ctx); ok { | ||||
| 				return []interface{}{ | ||||
| 					TraceIDKey, span.TraceID(), | ||||
| 					SpanIDKey, span.SpanID(), | ||||
| 				} | ||||
| 			} | ||||
| 			return nil | ||||
| 		}) | ||||
| } | ||||
|  | ||||
| // Tracer is an interface for distributed tracing | ||||
| type Tracer interface { | ||||
| 	// Name return tracer name | ||||
| @@ -43,6 +65,10 @@ type Span interface { | ||||
| 	AddLogs(kv ...interface{}) | ||||
| 	// Kind returns span kind | ||||
| 	Kind() SpanKind | ||||
| 	// TraceID returns trace id | ||||
| 	TraceID() string | ||||
| 	// SpanID returns span id | ||||
| 	SpanID() string | ||||
| } | ||||
|  | ||||
| // sort labels alphabeticaly by label name | ||||
|   | ||||
		Reference in New Issue
	
	Block a user