mirror of
https://github.com/go-kratos/kratos.git
synced 2025-11-06 08:59:18 +02:00
Style:trace (#2017)
* Update metadata.go * Update span.go * Update statsHandler.go
This commit is contained in:
@@ -26,16 +26,16 @@ func (b Metadata) Inject(ctx context.Context, carrier propagation.TextMapCarrier
|
||||
// Extract returns a copy of parent with the metadata from the carrier added.
|
||||
func (b Metadata) Extract(parent context.Context, carrier propagation.TextMapCarrier) context.Context {
|
||||
name := carrier.Get(serviceHeader)
|
||||
if name != "" {
|
||||
if md, ok := metadata.FromServerContext(parent); ok {
|
||||
md.Set(serviceHeader, name)
|
||||
} else {
|
||||
md := metadata.New()
|
||||
md.Set(serviceHeader, name)
|
||||
parent = metadata.NewServerContext(parent, md)
|
||||
}
|
||||
if name == "" {
|
||||
return parent
|
||||
}
|
||||
|
||||
if md, ok := metadata.FromServerContext(parent); ok {
|
||||
md.Set(serviceHeader, name)
|
||||
return parent
|
||||
}
|
||||
md := metadata.New()
|
||||
md.Set(serviceHeader, name)
|
||||
parent = metadata.NewServerContext(parent, md)
|
||||
return parent
|
||||
}
|
||||
|
||||
|
||||
@@ -22,10 +22,12 @@ func setClientSpan(ctx context.Context, span trace.Span, m interface{}) {
|
||||
var remote string
|
||||
var operation string
|
||||
var rpcKind string
|
||||
if tr, ok := transport.FromClientContext(ctx); ok {
|
||||
tr, ok := transport.FromClientContext(ctx)
|
||||
if ok {
|
||||
operation = tr.Operation()
|
||||
rpcKind = tr.Kind().String()
|
||||
if tr.Kind() == transport.KindHTTP {
|
||||
switch tr.Kind() {
|
||||
case transport.KindHTTP:
|
||||
if ht, ok := tr.(http.Transporter); ok {
|
||||
method := ht.Request().Method
|
||||
route := ht.PathTemplate()
|
||||
@@ -35,7 +37,7 @@ func setClientSpan(ctx context.Context, span trace.Span, m interface{}) {
|
||||
attrs = append(attrs, semconv.HTTPTargetKey.String(path))
|
||||
remote = ht.Request().Host
|
||||
}
|
||||
} else if tr.Kind() == transport.KindGRPC {
|
||||
case transport.KindGRPC:
|
||||
remote, _ = parseTarget(tr.Endpoint())
|
||||
}
|
||||
}
|
||||
@@ -57,10 +59,12 @@ func setServerSpan(ctx context.Context, span trace.Span, m interface{}) {
|
||||
var remote string
|
||||
var operation string
|
||||
var rpcKind string
|
||||
if tr, ok := transport.FromServerContext(ctx); ok {
|
||||
tr, ok := transport.FromServerContext(ctx)
|
||||
if ok {
|
||||
operation = tr.Operation()
|
||||
rpcKind = tr.Kind().String()
|
||||
if tr.Kind() == transport.KindHTTP {
|
||||
switch tr.Kind() {
|
||||
case transport.KindHTTP:
|
||||
if ht, ok := tr.(http.Transporter); ok {
|
||||
method := ht.Request().Method
|
||||
route := ht.PathTemplate()
|
||||
@@ -70,7 +74,7 @@ func setServerSpan(ctx context.Context, span trace.Span, m interface{}) {
|
||||
attrs = append(attrs, semconv.HTTPTargetKey.String(path))
|
||||
remote = ht.Request().RemoteAddr
|
||||
}
|
||||
} else if tr.Kind() == transport.KindGRPC {
|
||||
case transport.KindGRPC:
|
||||
if p, ok := peer.FromContext(ctx); ok {
|
||||
remote = p.Addr.String()
|
||||
}
|
||||
|
||||
@@ -22,13 +22,16 @@ func (c *ClientHandler) TagConn(ctx context.Context, cti *stats.ConnTagInfo) con
|
||||
|
||||
// HandleRPC implements per-RPC tracing and stats instrumentation.
|
||||
func (c *ClientHandler) HandleRPC(ctx context.Context, rs stats.RPCStats) {
|
||||
if _, ok := rs.(*stats.OutHeader); ok {
|
||||
if p, ok := peer.FromContext(ctx); ok {
|
||||
remoteAddr := p.Addr.String()
|
||||
if span := trace.SpanFromContext(ctx); span.SpanContext().IsValid() {
|
||||
span.SetAttributes(peerAttr(remoteAddr)...)
|
||||
}
|
||||
}
|
||||
if _, ok := rs.(*stats.OutHeader); !ok {
|
||||
return
|
||||
}
|
||||
p, ok := peer.FromContext(ctx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
remoteAddr := p.Addr.String()
|
||||
if span := trace.SpanFromContext(ctx); span.SpanContext().IsValid() {
|
||||
span.SetAttributes(peerAttr(remoteAddr)...)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user