Add Tracing Header Context Name option for Jaeger
This commit is contained in:
parent
f0ee2890b2
commit
156f6b8d3c
17 changed files with 327 additions and 49 deletions
23
vendor/github.com/uber/jaeger-client-go/zipkin_thrift_span.go
generated
vendored
23
vendor/github.com/uber/jaeger-client-go/zipkin_thrift_span.go
generated
vendored
|
@ -27,9 +27,6 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
// maxAnnotationLength is the max length of byte array or string allowed in the annotations
|
||||
maxAnnotationLength = 256
|
||||
|
||||
// Zipkin UI does not work well with non-string tag values
|
||||
allowPackedNumbers = false
|
||||
)
|
||||
|
@ -98,7 +95,7 @@ func buildAnnotations(span *zipkinSpan, endpoint *z.Endpoint) []*z.Annotation {
|
|||
Timestamp: utils.TimeToMicrosecondsSinceEpochInt64(log.Timestamp),
|
||||
Host: endpoint}
|
||||
if content, err := spanlog.MaterializeWithJSON(log.Fields); err == nil {
|
||||
anno.Value = truncateString(string(content))
|
||||
anno.Value = truncateString(string(content), span.tracer.options.maxTagValueLength)
|
||||
} else {
|
||||
anno.Value = err.Error()
|
||||
}
|
||||
|
@ -148,21 +145,21 @@ func buildBinaryAnnotations(span *zipkinSpan, endpoint *z.Endpoint) []*z.BinaryA
|
|||
if _, ok := specialTagHandlers[tag.key]; ok {
|
||||
continue
|
||||
}
|
||||
if anno := buildBinaryAnnotation(tag.key, tag.value, nil); anno != nil {
|
||||
if anno := buildBinaryAnnotation(tag.key, tag.value, span.tracer.options.maxTagValueLength, nil); anno != nil {
|
||||
annotations = append(annotations, anno)
|
||||
}
|
||||
}
|
||||
return annotations
|
||||
}
|
||||
|
||||
func buildBinaryAnnotation(key string, val interface{}, endpoint *z.Endpoint) *z.BinaryAnnotation {
|
||||
func buildBinaryAnnotation(key string, val interface{}, maxTagValueLength int, endpoint *z.Endpoint) *z.BinaryAnnotation {
|
||||
bann := &z.BinaryAnnotation{Key: key, Host: endpoint}
|
||||
if value, ok := val.(string); ok {
|
||||
bann.Value = []byte(truncateString(value))
|
||||
bann.Value = []byte(truncateString(value, maxTagValueLength))
|
||||
bann.AnnotationType = z.AnnotationType_STRING
|
||||
} else if value, ok := val.([]byte); ok {
|
||||
if len(value) > maxAnnotationLength {
|
||||
value = value[:maxAnnotationLength]
|
||||
if len(value) > maxTagValueLength {
|
||||
value = value[:maxTagValueLength]
|
||||
}
|
||||
bann.Value = value
|
||||
bann.AnnotationType = z.AnnotationType_BYTES
|
||||
|
@ -180,7 +177,7 @@ func buildBinaryAnnotation(key string, val interface{}, endpoint *z.Endpoint) *z
|
|||
bann.AnnotationType = z.AnnotationType_BOOL
|
||||
} else {
|
||||
value := stringify(val)
|
||||
bann.Value = []byte(truncateString(value))
|
||||
bann.Value = []byte(truncateString(value, maxTagValueLength))
|
||||
bann.AnnotationType = z.AnnotationType_STRING
|
||||
}
|
||||
return bann
|
||||
|
@ -193,12 +190,12 @@ func stringify(value interface{}) string {
|
|||
return fmt.Sprintf("%+v", value)
|
||||
}
|
||||
|
||||
func truncateString(value string) string {
|
||||
func truncateString(value string, maxLength int) string {
|
||||
// we ignore the problem of utf8 runes possibly being sliced in the middle,
|
||||
// as it is rather expensive to iterate through each tag just to find rune
|
||||
// boundaries.
|
||||
if len(value) > maxAnnotationLength {
|
||||
return value[:maxAnnotationLength]
|
||||
if len(value) > maxLength {
|
||||
return value[:maxLength]
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue