in operatortrace-go/pkg/client/annotations.go [17:39]
func addTraceIDAnnotation(ctx context.Context, obj client.Object) {
span := trace.SpanFromContext(ctx)
traceID := span.SpanContext().TraceID().String()
if traceID != "" {
if obj.GetAnnotations() == nil {
obj.SetAnnotations(map[string]string{})
}
annotations := obj.GetAnnotations()
annotations[constants.TraceIDAnnotation] = traceID
// This gets reset when the object is updated so if the object is constantly being updated, there could be a long running traceID
annotations[constants.TraceIDTimeAnnotation] = time.Now().Format(time.RFC3339)
obj.SetAnnotations(annotations)
}
spanID := span.SpanContext().SpanID().String()
if spanID != "" {
if obj.GetAnnotations() == nil {
obj.SetAnnotations(map[string]string{})
}
annotations := obj.GetAnnotations()
annotations[constants.SpanIDAnnotation] = spanID
obj.SetAnnotations(annotations)
}
}