in xray/segment.go [584:609]
func (seg *Segment) AddAnnotation(key string, value interface{}) error {
// If SDK is disabled then return
if SdkDisabled() {
return nil
}
seg.Lock()
defer seg.Unlock()
// If segment is dummy we return
if seg.Dummy {
return nil
}
switch value.(type) {
case bool, int, uint, float32, float64, string:
default:
return fmt.Errorf("failed to add annotation key: %q value: %q to subsegment %q. value must be of type string, number or boolean", key, value, seg.Name)
}
if seg.Annotations == nil {
seg.Annotations = map[string]interface{}{}
}
seg.Annotations[key] = value
return nil
}