Update tracing dependencies
This commit is contained in:
parent
4919b638f9
commit
ed12366d52
98 changed files with 3371 additions and 2808 deletions
50
vendor/github.com/uber/jaeger-client-go/zipkin/propagation.go
generated
vendored
50
vendor/github.com/uber/jaeger-client-go/zipkin/propagation.go
generated
vendored
|
@ -23,13 +23,30 @@ import (
|
|||
"github.com/uber/jaeger-client-go"
|
||||
)
|
||||
|
||||
// Option is a function that sets an option on Propagator
|
||||
type Option func(propagator *Propagator)
|
||||
|
||||
// BaggagePrefix is a function that sets baggage prefix on Propagator
|
||||
func BaggagePrefix(prefix string) Option {
|
||||
return func(propagator *Propagator) {
|
||||
propagator.baggagePrefix = prefix
|
||||
}
|
||||
}
|
||||
|
||||
// Propagator is an Injector and Extractor
|
||||
type Propagator struct{}
|
||||
type Propagator struct {
|
||||
baggagePrefix string
|
||||
}
|
||||
|
||||
// NewZipkinB3HTTPHeaderPropagator creates a Propagator for extracting and injecting
|
||||
// Zipkin HTTP B3 headers into SpanContexts.
|
||||
func NewZipkinB3HTTPHeaderPropagator() Propagator {
|
||||
return Propagator{}
|
||||
// Zipkin HTTP B3 headers into SpanContexts. Baggage is by default enabled and uses prefix
|
||||
// 'baggage-'.
|
||||
func NewZipkinB3HTTPHeaderPropagator(opts ...Option) Propagator {
|
||||
p := Propagator{baggagePrefix: "baggage-"}
|
||||
for _, opt := range opts {
|
||||
opt(&p)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
// Inject conforms to the Injector interface for decoding Zipkin HTTP B3 headers
|
||||
|
@ -42,8 +59,7 @@ func (p Propagator) Inject(
|
|||
return opentracing.ErrInvalidCarrier
|
||||
}
|
||||
|
||||
// TODO this needs to change to support 128bit IDs
|
||||
textMapWriter.Set("x-b3-traceid", strconv.FormatUint(sc.TraceID().Low, 16))
|
||||
textMapWriter.Set("x-b3-traceid", sc.TraceID().String())
|
||||
if sc.ParentID() != 0 {
|
||||
textMapWriter.Set("x-b3-parentspanid", strconv.FormatUint(uint64(sc.ParentID()), 16))
|
||||
}
|
||||
|
@ -53,6 +69,10 @@ func (p Propagator) Inject(
|
|||
} else {
|
||||
textMapWriter.Set("x-b3-sampled", "0")
|
||||
}
|
||||
sc.ForeachBaggageItem(func(k, v string) bool {
|
||||
textMapWriter.Set(p.baggagePrefix+k, v)
|
||||
return true
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -62,21 +82,27 @@ func (p Propagator) Extract(abstractCarrier interface{}) (jaeger.SpanContext, er
|
|||
if !ok {
|
||||
return jaeger.SpanContext{}, opentracing.ErrInvalidCarrier
|
||||
}
|
||||
var traceID uint64
|
||||
var traceID jaeger.TraceID
|
||||
var spanID uint64
|
||||
var parentID uint64
|
||||
sampled := false
|
||||
var baggage map[string]string
|
||||
err := textMapReader.ForeachKey(func(rawKey, value string) error {
|
||||
key := strings.ToLower(rawKey) // TODO not necessary for plain TextMap
|
||||
var err error
|
||||
if key == "x-b3-traceid" {
|
||||
traceID, err = strconv.ParseUint(value, 16, 64)
|
||||
traceID, err = jaeger.TraceIDFromString(value)
|
||||
} else if key == "x-b3-parentspanid" {
|
||||
parentID, err = strconv.ParseUint(value, 16, 64)
|
||||
} else if key == "x-b3-spanid" {
|
||||
spanID, err = strconv.ParseUint(value, 16, 64)
|
||||
} else if key == "x-b3-sampled" && value == "1" {
|
||||
} else if key == "x-b3-sampled" && (value == "1" || value == "true") {
|
||||
sampled = true
|
||||
} else if strings.HasPrefix(key, p.baggagePrefix) {
|
||||
if baggage == nil {
|
||||
baggage = make(map[string]string)
|
||||
}
|
||||
baggage[key[len(p.baggagePrefix):]] = value
|
||||
}
|
||||
return err
|
||||
})
|
||||
|
@ -84,12 +110,12 @@ func (p Propagator) Extract(abstractCarrier interface{}) (jaeger.SpanContext, er
|
|||
if err != nil {
|
||||
return jaeger.SpanContext{}, err
|
||||
}
|
||||
if traceID == 0 {
|
||||
if !traceID.IsValid() {
|
||||
return jaeger.SpanContext{}, opentracing.ErrSpanContextNotFound
|
||||
}
|
||||
return jaeger.NewSpanContext(
|
||||
jaeger.TraceID{Low: traceID},
|
||||
traceID,
|
||||
jaeger.SpanID(spanID),
|
||||
jaeger.SpanID(parentID),
|
||||
sampled, nil), nil
|
||||
sampled, baggage), nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue