Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pkg/stanza/adapter] Remove deprecated Convert and ConvertFrom #18259

Merged
merged 1 commit into from
Feb 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .chloggen/stanza-remove-deprecated-convert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: new_component

# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
component: pkg/stanza

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Remove deprecated `adapter.Convert` and `adapter.ConvertFrom` functions.

# One or more tracking issues related to the change
issues: [17429]
21 changes: 0 additions & 21 deletions pkg/stanza/adapter/converter.go
Original file line number Diff line number Diff line change
Expand Up @@ -285,27 +285,6 @@ func convert(ent *entry.Entry) plog.LogRecord {
return dest
}

// Convert converts one entry.Entry into plog.Logs.
// To be used in a stateless setting like tests where ease of use is more
// important than performance or throughput.
// Deprecated: [v0.68.0] Unnecessarily exported API.
// Please add a comment in https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/17429
// if you use it.
func Convert(ent *entry.Entry) plog.Logs {
pLogs := plog.NewLogs()
logs := pLogs.ResourceLogs()

rls := logs.AppendEmpty()

resource := rls.Resource()
upsertToMap(ent.Resource, resource.Attributes())

ills := rls.ScopeLogs().AppendEmpty()
lr := ills.LogRecords().AppendEmpty()
convertInto(ent, lr)
return pLogs
}

// convertInto converts entry.Entry into provided plog.LogRecord.
func convertInto(ent *entry.Entry, dest plog.LogRecord) {
if !ent.Timestamp.IsZero() {
Expand Down
77 changes: 0 additions & 77 deletions pkg/stanza/adapter/converter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,83 +151,6 @@ func complexEntry() *entry.Entry {
return e
}

func TestConvert(t *testing.T) {
ent := func() *entry.Entry {
e := entry.New()
e.Severity = entry.Error
e.SeverityText = "E"
e.Resource = map[string]interface{}{
"bool": true,
"int": 123,
"double": 12.34,
"string": "hello",
"object": map[string]interface{}{},
}
e.Attributes = map[string]interface{}{
"bool": true,
"int": 123,
"double": 12.34,
"string": "hello",
"object": map[string]interface{}{},
}
e.Body = map[string]interface{}{
"bool": true,
"int": 123,
"double": 12.34,
"string": "hello",
"bytes": []byte("asdf"),
}
return e
}()

pLogs := Convert(ent)
require.Equal(t, 1, pLogs.ResourceLogs().Len())
rls := pLogs.ResourceLogs().At(0)
resAttrs := rls.Resource().Attributes()

if assert.Equal(t, 5, resAttrs.Len()) {
m := pcommon.NewMap()
m.PutBool("bool", true)
m.PutDouble("double", 12.34)
m.PutInt("int", 123)
m.PutEmptyMap("object")
m.PutStr("string", "hello")
assert.Equal(t, m.AsRaw(), resAttrs.AsRaw())
}

ills := rls.ScopeLogs()
require.Equal(t, 1, ills.Len())

logs := ills.At(0).LogRecords()
require.Equal(t, 1, logs.Len())

lr := logs.At(0)
lrAttrs := lr.Attributes()

assert.Equal(t, plog.SeverityNumberError, lr.SeverityNumber())
assert.Equal(t, "E", lr.SeverityText())

if assert.Equal(t, 5, lrAttrs.Len()) {
m := pcommon.NewMap()
m.PutBool("bool", true)
m.PutDouble("double", 12.34)
m.PutInt("int", 123)
m.PutEmptyMap("object")
m.PutStr("string", "hello")
assert.EqualValues(t, m.AsRaw(), lrAttrs.AsRaw())
}

if assert.Equal(t, pcommon.ValueTypeMap, lr.Body().Type()) {
m := pcommon.NewMap()
m.PutBool("bool", true)
m.PutEmptyBytes("bytes").FromRaw([]byte("asdf"))
m.PutDouble("double", 12.34)
m.PutInt("int", 123)
m.PutStr("string", "hello")
assert.EqualValues(t, m.AsRaw(), lr.Body().Map().AsRaw())
}
}

func TestHashResource(t *testing.T) {
testcases := []struct {
name string
Expand Down
18 changes: 0 additions & 18 deletions pkg/stanza/adapter/frompdataconverter.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,24 +173,6 @@ func convertFromLogs(workerItem fromConverterWorkerItem) []*entry.Entry {
return result
}

// ConvertFrom converts plog.Logs into a slice of entry.Entry
// To be used in a stateless setting like tests where ease of use is more
// important than performance or throughput.
// Deprecated: [v0.69.0] Unnecessarily exported API.
// Please add a comment in https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/17429
// if you use it.
func ConvertFrom(pLogs plog.Logs) []*entry.Entry {
result := make([]*entry.Entry, 0, pLogs.LogRecordCount())
for i := 0; i < pLogs.ResourceLogs().Len(); i++ {
rls := pLogs.ResourceLogs().At(i)
for j := 0; j < rls.ScopeLogs().Len(); j++ {
scope := rls.ScopeLogs().At(j)
result = append(result, convertFromLogs(fromConverterWorkerItem{Resource: rls.Resource(), Scope: scope, LogRecordSlice: scope.LogRecords()})...)
}
}
return result
}

// convertFrom converts plog.LogRecord into provided entry.Entry.
func convertFrom(src plog.LogRecord, ent *entry.Entry) {
// if src.Timestamp == 0, then leave ent.Timestamp as nil
Expand Down
114 changes: 0 additions & 114 deletions pkg/stanza/adapter/frompdataconverter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,30 +24,9 @@ import (
"go.opentelemetry.io/collector/pdata/pcommon"
"go.opentelemetry.io/collector/pdata/plog"

"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest/plogtest"
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/entry"
)

func BenchmarkConvertFromPdataSimple(b *testing.B) {
b.StopTimer()
pLogs := plog.NewLogs()
b.StartTimer()

for i := 0; i < b.N; i++ {
ConvertFrom(pLogs)
}
}

func BenchmarkConvertFromPdataComplex(b *testing.B) {
b.StopTimer()
pLogs := complexPdataForNDifferentHosts(1, 1)
b.StartTimer()

for i := 0; i < b.N; i++ {
ConvertFrom(pLogs)
}
}

func fillBaseMap(m pcommon.Map) {
arr := m.PutEmptySlice("slice")
arr.AppendEmpty().SetStr("666")
Expand Down Expand Up @@ -100,99 +79,6 @@ func complexPdataForNDifferentHosts(count int, n int) plog.Logs {
return pLogs
}

func TestRoundTrip(t *testing.T) {
initialLogs := complexPdataForNDifferentHosts(1, 1)
// Converter does not properly aggregate by Scope, until
// it does so the Round Trip cannot expect it
initialLogs.ResourceLogs().At(0).ScopeLogs().At(0).Scope().SetName("")
entries := ConvertFrom(initialLogs)
require.Equal(t, 1, len(entries))

pLogs := Convert(entries[0])

require.NoError(t, plogtest.CompareLogs(initialLogs, pLogs))
}

func TestConvertFrom(t *testing.T) {
entries := ConvertFrom(complexPdataForNDifferentHosts(2, 1))
require.Equal(t, 2, len(entries))

for _, e := range entries {
assert.Equal(t, e.ScopeName, "myScope")
assert.EqualValues(t,
map[string]interface{}{
"host": "host-0",
"bool": true,
"int": int64(123),
"double": 12.34,
"string": "hello",
"bytes": []byte{0xa1, 0xf0, 0x02, 0xff},
"slice": []interface{}{"666", "777"},
"object": map[string]interface{}{
"bool": true,
"int": int64(123),
"double": 12.34,
"string": "hello",
"slice": []interface{}{"666", "777"},
"bytes": []byte{0xa1, 0xf0, 0x02, 0xff},
},
},
e.Resource,
)

assert.EqualValues(t,
map[string]interface{}{
"bool": true,
"int": int64(123),
"string": "hello",
"slice": []interface{}{"666", "777"},
"bytes": []byte{0xa1, 0xf0, 0x02, 0xff},
"object": map[string]interface{}{
"bool": true,
"int": int64(123),
"double": 12.34,
"string": "hello",
"slice": []interface{}{"666", "777"},
"bytes": []byte{0xa1, 0xf0, 0x02, 0xff},
},
},
e.Attributes,
)

assert.EqualValues(t,
map[string]interface{}{
"bool": true,
"int": int64(123),
"double": 12.34,
"string": "hello",
"slice": []interface{}{"666", "777"},
"bytes": []byte{0xa1, 0xf0, 0x02, 0xff},
"object": map[string]interface{}{
"bool": true,
"int": int64(123),
"double": 12.34,
"string": "hello",
"slice": []interface{}{"666", "777"},
"bytes": []byte{0xa1, 0xf0, 0x02, 0xff},
"object": map[string]interface{}{
"bool": true,
"int": int64(123),
"double": 12.34,
"string": "hello",
"slice": []interface{}{"666", "777"},
},
},
},
e.Body,
)

assert.Equal(t, entry.Error, e.Severity)
assert.Equal(t, []byte{0x48, 0x01, 0x40, 0xf3, 0xd7, 0x70, 0xa5, 0xae, 0x32, 0xf0, 0xa2, 0x2b, 0x6a, 0x81, 0x2c, 0xff}, e.TraceID)
assert.Equal(t, []byte{0x32, 0xf0, 0xa2, 0x2b, 0x6a, 0x81, 0x2c, 0xff}, e.SpanID)
assert.Equal(t, uint8(0x01), e.TraceFlags[0])
}
}

func TestConvertFromSeverity(t *testing.T) {
cases := []struct {
expectedSeverity entry.Severity
Expand Down
4 changes: 2 additions & 2 deletions pkg/stanza/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ require (
github.com/observiq/ctimefmt v1.0.0
github.com/observiq/nanojack v0.0.0-20201106172433-343928847ebc
github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.70.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.70.0
github.com/stretchr/testify v1.8.1
go.opentelemetry.io/collector v0.70.1-0.20230130215412-26bd7b2bf678
go.opentelemetry.io/collector/component v0.70.1-0.20230130215412-26bd7b2bf678
Expand All @@ -35,14 +34,15 @@ require (
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/knadh/koanf v1.5.0 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.70.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.9.0 // indirect
github.com/stretchr/objx v0.5.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel v1.12.0 // indirect
Expand Down
3 changes: 3 additions & 0 deletions pkg/stanza/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion receiver/filelogreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/observiq/ctimefmt v1.0.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.9.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/collector/featuregate v0.70.1-0.20230130215412-26bd7b2bf678 // indirect
go.opentelemetry.io/otel v1.12.0 // indirect
Expand Down
3 changes: 1 addition & 2 deletions receiver/filelogreceiver/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions receiver/filelogreceiver/storage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,6 @@ func (l *recallLogger) close() error {
return l.logFile.Close()
}

// TODO use stateless Convert() from #3125 to generate exact plog.Logs
// for now, just validate body
func expectLogs(sink *consumertest.LogsSink, expected []string) func() bool {
return func() bool {

Expand Down
2 changes: 1 addition & 1 deletion receiver/journaldreceiver/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions receiver/otlpjsonfilereceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,13 @@ require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/knadh/koanf v1.5.0 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/observiq/ctimefmt v1.0.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.9.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/collector/featuregate v0.70.1-0.20230130215412-26bd7b2bf678 // indirect
go.opentelemetry.io/otel v1.12.0 // indirect
Expand Down
Loading