Opentracing support
This commit is contained in:
parent
8394549857
commit
30ffba78e6
272 changed files with 44352 additions and 63 deletions
61
vendor/github.com/openzipkin/zipkin-go-opentracing/context.go
generated
vendored
Normal file
61
vendor/github.com/openzipkin/zipkin-go-opentracing/context.go
generated
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
package zipkintracer
|
||||
|
||||
import (
|
||||
"github.com/openzipkin/zipkin-go-opentracing/flag"
|
||||
"github.com/openzipkin/zipkin-go-opentracing/types"
|
||||
)
|
||||
|
||||
// SpanContext holds the basic Span metadata.
|
||||
type SpanContext struct {
|
||||
// A probabilistically unique identifier for a [multi-span] trace.
|
||||
TraceID types.TraceID
|
||||
|
||||
// A probabilistically unique identifier for a span.
|
||||
SpanID uint64
|
||||
|
||||
// Whether the trace is sampled.
|
||||
Sampled bool
|
||||
|
||||
// The span's associated baggage.
|
||||
Baggage map[string]string // initialized on first use
|
||||
|
||||
// The SpanID of this Context's parent, or nil if there is no parent.
|
||||
ParentSpanID *uint64
|
||||
|
||||
// Flags provides the ability to create and communicate feature flags.
|
||||
Flags flag.Flags
|
||||
|
||||
// Whether the span is owned by the current process
|
||||
Owner bool
|
||||
}
|
||||
|
||||
// ForeachBaggageItem belongs to the opentracing.SpanContext interface
|
||||
func (c SpanContext) ForeachBaggageItem(handler func(k, v string) bool) {
|
||||
for k, v := range c.Baggage {
|
||||
if !handler(k, v) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WithBaggageItem returns an entirely new basictracer SpanContext with the
|
||||
// given key:value baggage pair set.
|
||||
func (c SpanContext) WithBaggageItem(key, val string) SpanContext {
|
||||
var newBaggage map[string]string
|
||||
if c.Baggage == nil {
|
||||
newBaggage = map[string]string{key: val}
|
||||
} else {
|
||||
newBaggage = make(map[string]string, len(c.Baggage)+1)
|
||||
for k, v := range c.Baggage {
|
||||
newBaggage[k] = v
|
||||
}
|
||||
newBaggage[key] = val
|
||||
}
|
||||
var parentSpanID *uint64
|
||||
if c.ParentSpanID != nil {
|
||||
parentSpanID = new(uint64)
|
||||
*parentSpanID = *c.ParentSpanID
|
||||
}
|
||||
// Use positional parameters so the compiler will help catch new fields.
|
||||
return SpanContext{c.TraceID, c.SpanID, c.Sampled, newBaggage, parentSpanID, c.Flags, c.Owner}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue