Skip to content

Commit

Permalink
Rename pdata.AttributeValue to pdata.AnyValue
Browse files Browse the repository at this point in the history
`pdata.AttributeValue` is a wrapper over `opentelemetry.proto.common.v1.AnyValue` type. It's not exclusively used with `pdata.AttributeMap`, `pdata.LogRecord.Body` also uses which makes the name misleading. This change renames all API related to `pdata.AttributeValue` to `pdata.AnyValue` keeping the old API as deprecated
  • Loading branch information
dmitryax committed Mar 10, 2022
1 parent 16657c8 commit d961f59
Show file tree
Hide file tree
Showing 14 changed files with 580 additions and 508 deletions.
12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@
- Rename `pdata.AttributeMap.Delete` to `pdata.AttributeMap.Remove` (#4914)
- pdata: deprecate funcs working with InternalRep (#4957)

### 🚩 Deprecations 🚩

- API related to `pdata.AttributeValue` is deprecated in favor of `pdata.AnyValue` (#4975)
- `pdata.AttributeValue` struct is deprecated in favor of `pdata.AnyValue`
- `pdata.AttributeValueType` type is deprecated in favor of `pdata.AnyValueType`
- `pdata.AttributeValueType...` constants are deprecated in favor of `pdata.AnyValueType...`
- `pdata.NewAttributeValue...` funcs are deprecated in favor `pdata.NewAnyValue...`
- `pdata.AttributeValueSlice` struct is deprecated in favor `pdata.AnyValueSlice`
- `pdata.NewAttributeValueSlice` func is deprecated in favor `pdata.NewAnyValueSlice`

### 💡 Enhancements 💡

- Add `pdata.AttributeMap.RemoveIf`, which is a more performant way to remove multiple keys (#4914)
Expand Down Expand Up @@ -1014,7 +1024,7 @@ This release is marked as "bad" since the metrics pipelines will produce bad dat
- Remove NewAttributeValueSlice (#2028) and mark NewAttributeValue as deprecated (#2022)
- Remove pdata.StringValue (#2021)
- Remove pdata.InitFromAttributeMap, use CopyTo if needed (#2042)
- Remove SetMapVal and SetArrayVal for pdata.AttributeValue (#2039)
- Remove SetMapVal and SetArrayVal for pdata.AnyValue (#2039)

### 💡 Enhancements 💡

Expand Down
24 changes: 12 additions & 12 deletions internal/otlptext/databuffer.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func (b *dataBuffer) logAttributeMap(label string, am pdata.AttributeMap) {
}

b.logEntry("%s:", label)
am.Range(func(k string, v pdata.AttributeValue) bool {
am.Range(func(k string, v pdata.AnyValue) bool {
b.logEntry(" -> %s: %s(%s)", k, v.Type().String(), attributeValueToString(v))
return true
})
Expand Down Expand Up @@ -221,7 +221,7 @@ func (b *dataBuffer) logEvents(description string, se pdata.SpanEventSlice) {
continue
}
b.logEntry(" -> Attributes:")
e.Attributes().Range(func(k string, v pdata.AttributeValue) bool {
e.Attributes().Range(func(k string, v pdata.AnyValue) bool {
b.logEntry(" -> %s: %s(%s)", k, v.Type().String(), attributeValueToString(v))
return true
})
Expand All @@ -246,33 +246,33 @@ func (b *dataBuffer) logLinks(description string, sl pdata.SpanLinkSlice) {
continue
}
b.logEntry(" -> Attributes:")
l.Attributes().Range(func(k string, v pdata.AttributeValue) bool {
l.Attributes().Range(func(k string, v pdata.AnyValue) bool {
b.logEntry(" -> %s: %s(%s)", k, v.Type().String(), attributeValueToString(v))
return true
})
}
}

func attributeValueToString(av pdata.AttributeValue) string {
func attributeValueToString(av pdata.AnyValue) string {
switch av.Type() {
case pdata.AttributeValueTypeString:
case pdata.AnyValueTypeString:
return av.StringVal()
case pdata.AttributeValueTypeBool:
case pdata.AnyValueTypeBool:
return strconv.FormatBool(av.BoolVal())
case pdata.AttributeValueTypeDouble:
case pdata.AnyValueTypeDouble:
return strconv.FormatFloat(av.DoubleVal(), 'f', -1, 64)
case pdata.AttributeValueTypeInt:
case pdata.AnyValueTypeInt:
return strconv.FormatInt(av.IntVal(), 10)
case pdata.AttributeValueTypeArray:
case pdata.AnyValueTypeArray:
return attributeValueSliceToString(av.SliceVal())
case pdata.AttributeValueTypeMap:
case pdata.AnyValueTypeMap:
return attributeMapToString(av.MapVal())
default:
return fmt.Sprintf("<Unknown OpenTelemetry attribute value type %q>", av.Type())
}
}

func attributeValueSliceToString(av pdata.AttributeValueSlice) string {
func attributeValueSliceToString(av pdata.AnyValueSlice) string {
var b strings.Builder
b.WriteByte('[')
for i := 0; i < av.Len(); i++ {
Expand All @@ -291,7 +291,7 @@ func attributeMapToString(av pdata.AttributeMap) string {
var b strings.Builder
b.WriteString("{\n")

av.Sort().Range(func(k string, v pdata.AttributeValue) bool {
av.Sort().Range(func(k string, v pdata.AnyValue) bool {
fmt.Fprintf(&b, " -> %s: %s(%s)\n", k, v.Type(), v.AsString())
return true
})
Expand Down
10 changes: 5 additions & 5 deletions internal/otlptext/databuffer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ import (
)

func TestNestedArraySerializesCorrectly(t *testing.T) {
ava := pdata.NewAttributeValueArray()
ava := pdata.NewAnyValueArray()
ava.SliceVal().AppendEmpty().SetStringVal("foo")
ava.SliceVal().AppendEmpty().SetIntVal(42)

ava2 := pdata.NewAttributeValueArray()
ava2 := pdata.NewAnyValueArray()
ava2.SliceVal().AppendEmpty().SetStringVal("bar")
ava2.CopyTo(ava.SliceVal().AppendEmpty())

Expand All @@ -39,11 +39,11 @@ func TestNestedArraySerializesCorrectly(t *testing.T) {
}

func TestNestedMapSerializesCorrectly(t *testing.T) {
ava := pdata.NewAttributeValueMap()
ava := pdata.NewAnyValueMap()
av := ava.MapVal()
av.Insert("foo", pdata.NewAttributeValueString("test"))
av.Insert("foo", pdata.NewAnyValueString("test"))

ava2 := pdata.NewAttributeValueMap()
ava2 := pdata.NewAnyValueMap()
av2 := ava2.MapVal()
av2.InsertInt("bar", 13)
av.Insert("zoo", ava2)
Expand Down
12 changes: 6 additions & 6 deletions internal/testdata/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ import (
)

var (
resourceAttributes1 = pdata.NewAttributeMapFromMap(map[string]pdata.AttributeValue{"resource-attr": pdata.NewAttributeValueString("resource-attr-val-1")})
resourceAttributes2 = pdata.NewAttributeMapFromMap(map[string]pdata.AttributeValue{"resource-attr": pdata.NewAttributeValueString("resource-attr-val-2")})
spanEventAttributes = pdata.NewAttributeMapFromMap(map[string]pdata.AttributeValue{"span-event-attr": pdata.NewAttributeValueString("span-event-attr-val")})
spanLinkAttributes = pdata.NewAttributeMapFromMap(map[string]pdata.AttributeValue{"span-link-attr": pdata.NewAttributeValueString("span-link-attr-val")})
spanAttributes = pdata.NewAttributeMapFromMap(map[string]pdata.AttributeValue{"span-attr": pdata.NewAttributeValueString("span-attr-val")})
metricAttachment = pdata.NewAttributeMapFromMap(map[string]pdata.AttributeValue{"exemplar-attachment": pdata.NewAttributeValueString("exemplar-attachment-value")})
resourceAttributes1 = pdata.NewAttributeMapFromMap(map[string]pdata.AnyValue{"resource-attr": pdata.NewAnyValueString("resource-attr-val-1")})
resourceAttributes2 = pdata.NewAttributeMapFromMap(map[string]pdata.AnyValue{"resource-attr": pdata.NewAnyValueString("resource-attr-val-2")})
spanEventAttributes = pdata.NewAttributeMapFromMap(map[string]pdata.AnyValue{"span-event-attr": pdata.NewAnyValueString("span-event-attr-val")})
spanLinkAttributes = pdata.NewAttributeMapFromMap(map[string]pdata.AnyValue{"span-link-attr": pdata.NewAnyValueString("span-link-attr-val")})
spanAttributes = pdata.NewAttributeMapFromMap(map[string]pdata.AnyValue{"span-attr": pdata.NewAnyValueString("span-attr-val")})
metricAttachment = pdata.NewAttributeMapFromMap(map[string]pdata.AnyValue{"exemplar-attachment": pdata.NewAnyValueString("exemplar-attachment-value")})
)

const (
Expand Down
8 changes: 4 additions & 4 deletions model/internal/cmd/pdatagen/internal/common_structs.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ var commonFile = &File{
},
structs: []baseStruct{
instrumentationLibrary,
attributeValueArray,
anyValueArray,
},
}

Expand Down Expand Up @@ -105,12 +105,12 @@ var nameField = &primitiveField{
}

var anyValue = &messageValueStruct{
structName: "AttributeValue",
structName: "AnyValue",
originFullName: "otlpcommon.AnyValue",
}

var attributeValueArray = &sliceOfValues{
structName: "AttributeValueSlice",
var anyValueArray = &sliceOfValues{
structName: "AnyValueSlice",
element: anyValue,
}

Expand Down
Loading

0 comments on commit d961f59

Please sign in to comment.