Skip to content

Commit ef0f149

Browse files
committed
Remove unnecessary interfaces from pdata
Based on the current experience, they are not necessary. Signed-off-by: Bogdan Drutu <[email protected]>
1 parent a77ce75 commit ef0f149

File tree

7 files changed

+0
-643
lines changed

7 files changed

+0
-643
lines changed

model/pdata/logs.go

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -15,107 +15,25 @@
1515
package pdata
1616

1717
import (
18-
"fmt"
19-
2018
"go.opentelemetry.io/collector/internal"
2119
otlpcollectorlog "go.opentelemetry.io/collector/internal/data/protogen/collector/logs/v1"
2220
otlplogs "go.opentelemetry.io/collector/internal/data/protogen/logs/v1"
2321
)
2422

25-
// LogsDecoder is an interface to decode bytes into protocol-specific data model.
26-
type LogsDecoder interface {
27-
// DecodeLogs decodes bytes into protocol-specific data model.
28-
// If the error is not nil, the returned interface cannot be used.
29-
DecodeLogs(buf []byte) (interface{}, error)
30-
}
31-
32-
// LogsEncoder is an interface to encode protocol-specific data model into bytes.
33-
type LogsEncoder interface {
34-
// EncodeLogs encodes protocol-specific data model into bytes.
35-
// If the error is not nil, the returned bytes slice cannot be used.
36-
EncodeLogs(model interface{}) ([]byte, error)
37-
}
38-
39-
// FromLogsTranslator is an interface to translate pdata.Logs into protocol-specific data model.
40-
type FromLogsTranslator interface {
41-
// FromLogs translates pdata.Logs into protocol-specific data model.
42-
// If the error is not nil, the returned pdata.Logs cannot be used.
43-
FromLogs(ld Logs) (interface{}, error)
44-
}
45-
46-
// ToLogsTranslator is an interface to translate a protocol-specific data model into pdata.Traces.
47-
type ToLogsTranslator interface {
48-
// ToLogs translates a protocol-specific data model into pdata.Logs.
49-
// If the error is not nil, the returned pdata.Logs cannot be used.
50-
ToLogs(src interface{}) (Logs, error)
51-
}
52-
5323
// LogsMarshaler marshals pdata.Logs into bytes.
5424
type LogsMarshaler interface {
5525
// MarshalLogs the given pdata.Logs into bytes.
5626
// If the error is not nil, the returned bytes slice cannot be used.
5727
MarshalLogs(td Logs) ([]byte, error)
5828
}
5929

60-
type logsMarshaler struct {
61-
encoder LogsEncoder
62-
translator FromLogsTranslator
63-
}
64-
65-
// NewLogsMarshaler returns a new LogsMarshaler.
66-
func NewLogsMarshaler(encoder LogsEncoder, translator FromLogsTranslator) LogsMarshaler {
67-
return &logsMarshaler{
68-
encoder: encoder,
69-
translator: translator,
70-
}
71-
}
72-
73-
// MarshalLogs pdata.Logs into bytes.
74-
func (t *logsMarshaler) MarshalLogs(td Logs) ([]byte, error) {
75-
model, err := t.translator.FromLogs(td)
76-
if err != nil {
77-
return nil, fmt.Errorf("converting pdata to model failed: %w", err)
78-
}
79-
buf, err := t.encoder.EncodeLogs(model)
80-
if err != nil {
81-
return nil, fmt.Errorf("marshal failed: %w", err)
82-
}
83-
return buf, nil
84-
}
85-
8630
// LogsUnmarshaler unmarshalls bytes into pdata.Logs.
8731
type LogsUnmarshaler interface {
8832
// UnmarshalLogs the given bytes into pdata.Logs.
8933
// If the error is not nil, the returned pdata.Logs cannot be used.
9034
UnmarshalLogs(buf []byte) (Logs, error)
9135
}
9236

93-
type logsUnmarshaler struct {
94-
decoder LogsDecoder
95-
translator ToLogsTranslator
96-
}
97-
98-
// NewLogsUnmarshaler returns a new LogsUnmarshaler.
99-
func NewLogsUnmarshaler(decoder LogsDecoder, translator ToLogsTranslator) LogsUnmarshaler {
100-
return &logsUnmarshaler{
101-
decoder: decoder,
102-
translator: translator,
103-
}
104-
}
105-
106-
// UnmarshalLogs bytes into pdata.Logs. On error pdata.Logs is invalid.
107-
func (t *logsUnmarshaler) UnmarshalLogs(buf []byte) (Logs, error) {
108-
model, err := t.decoder.DecodeLogs(buf)
109-
if err != nil {
110-
return Logs{}, fmt.Errorf("unmarshal failed: %w", err)
111-
}
112-
td, err := t.translator.ToLogs(model)
113-
if err != nil {
114-
return Logs{}, fmt.Errorf("converting model to pdata failed: %w", err)
115-
}
116-
return td, nil
117-
}
118-
11937
// Logs is the top-level struct that is propagated through the logs pipeline.
12038
//
12139
// This is a reference type (like builtin map).

model/pdata/logs_test.go

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package pdata
1616

1717
import (
18-
"errors"
1918
"testing"
2019

2120
"github.com/stretchr/testify/assert"
@@ -26,101 +25,6 @@ import (
2625
otlplogs "go.opentelemetry.io/collector/internal/data/protogen/logs/v1"
2726
)
2827

29-
func TestLogsMarshal_TranslationError(t *testing.T) {
30-
translator := &mockTranslator{}
31-
encoder := &mockEncoder{}
32-
33-
lm := NewLogsMarshaler(encoder, translator)
34-
ld := NewLogs()
35-
36-
translator.On("FromLogs", ld).Return(nil, errors.New("translation failed"))
37-
38-
_, err := lm.MarshalLogs(ld)
39-
assert.Error(t, err)
40-
assert.EqualError(t, err, "converting pdata to model failed: translation failed")
41-
}
42-
43-
func TestLogsMarshal_SerializeError(t *testing.T) {
44-
translator := &mockTranslator{}
45-
encoder := &mockEncoder{}
46-
47-
lm := NewLogsMarshaler(encoder, translator)
48-
ld := NewLogs()
49-
expectedModel := struct{}{}
50-
51-
translator.On("FromLogs", ld).Return(expectedModel, nil)
52-
encoder.On("EncodeLogs", expectedModel).Return(nil, errors.New("serialization failed"))
53-
54-
_, err := lm.MarshalLogs(ld)
55-
assert.Error(t, err)
56-
assert.EqualError(t, err, "marshal failed: serialization failed")
57-
}
58-
59-
func TestLogsMarshal_Encode(t *testing.T) {
60-
translator := &mockTranslator{}
61-
encoder := &mockEncoder{}
62-
63-
lm := NewLogsMarshaler(encoder, translator)
64-
expectedLogs := NewLogs()
65-
expectedBytes := []byte{1, 2, 3}
66-
expectedModel := struct{}{}
67-
68-
translator.On("FromLogs", expectedLogs).Return(expectedModel, nil)
69-
encoder.On("EncodeLogs", expectedModel).Return(expectedBytes, nil)
70-
71-
actualBytes, err := lm.MarshalLogs(expectedLogs)
72-
assert.NoError(t, err)
73-
assert.Equal(t, expectedBytes, actualBytes)
74-
}
75-
76-
func TestLogsUnmarshal_EncodingError(t *testing.T) {
77-
translator := &mockTranslator{}
78-
encoder := &mockEncoder{}
79-
80-
lu := NewLogsUnmarshaler(encoder, translator)
81-
expectedBytes := []byte{1, 2, 3}
82-
expectedModel := struct{}{}
83-
84-
encoder.On("DecodeLogs", expectedBytes).Return(expectedModel, errors.New("decode failed"))
85-
86-
_, err := lu.UnmarshalLogs(expectedBytes)
87-
assert.Error(t, err)
88-
assert.EqualError(t, err, "unmarshal failed: decode failed")
89-
}
90-
91-
func TestLogsUnmarshal_TranslationError(t *testing.T) {
92-
translator := &mockTranslator{}
93-
encoder := &mockEncoder{}
94-
95-
lu := NewLogsUnmarshaler(encoder, translator)
96-
expectedBytes := []byte{1, 2, 3}
97-
expectedModel := struct{}{}
98-
99-
encoder.On("DecodeLogs", expectedBytes).Return(expectedModel, nil)
100-
translator.On("ToLogs", expectedModel).Return(NewLogs(), errors.New("translation failed"))
101-
102-
_, err := lu.UnmarshalLogs(expectedBytes)
103-
assert.Error(t, err)
104-
assert.EqualError(t, err, "converting model to pdata failed: translation failed")
105-
}
106-
107-
func TestLogsUnmarshal_Decode(t *testing.T) {
108-
translator := &mockTranslator{}
109-
encoder := &mockEncoder{}
110-
111-
lu := NewLogsUnmarshaler(encoder, translator)
112-
expectedLogs := NewLogs()
113-
expectedBytes := []byte{1, 2, 3}
114-
expectedModel := struct{}{}
115-
116-
encoder.On("DecodeLogs", expectedBytes).Return(expectedModel, nil)
117-
translator.On("ToLogs", expectedModel).Return(expectedLogs, nil)
118-
119-
actualLogs, err := lu.UnmarshalLogs(expectedBytes)
120-
assert.NoError(t, err)
121-
assert.Equal(t, expectedLogs, actualLogs)
122-
}
123-
12428
func TestLogRecordCount(t *testing.T) {
12529
md := NewLogs()
12630
assert.EqualValues(t, 0, md.LogRecordCount())

model/pdata/metrics.go

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -15,107 +15,25 @@
1515
package pdata
1616

1717
import (
18-
"fmt"
19-
2018
"go.opentelemetry.io/collector/internal"
2119
otlpcollectormetrics "go.opentelemetry.io/collector/internal/data/protogen/collector/metrics/v1"
2220
otlpmetrics "go.opentelemetry.io/collector/internal/data/protogen/metrics/v1"
2321
)
2422

25-
// MetricsDecoder is an interface to decode bytes into protocol-specific data model.
26-
type MetricsDecoder interface {
27-
// DecodeMetrics decodes bytes into protocol-specific data model.
28-
// If the error is not nil, the returned interface cannot be used.
29-
DecodeMetrics(buf []byte) (interface{}, error)
30-
}
31-
32-
// MetricsEncoder is an interface to encode protocol-specific data model into bytes.
33-
type MetricsEncoder interface {
34-
// EncodeMetrics encodes protocol-specific data model into bytes.
35-
// If the error is not nil, the returned bytes slice cannot be used.
36-
EncodeMetrics(model interface{}) ([]byte, error)
37-
}
38-
39-
// FromMetricsTranslator is an interface to translate pdata.Metrics into protocol-specific data model.
40-
type FromMetricsTranslator interface {
41-
// FromMetrics translates pdata.Metrics into protocol-specific data model.
42-
// If the error is not nil, the returned pdata.Metrics cannot be used.
43-
FromMetrics(md Metrics) (interface{}, error)
44-
}
45-
46-
// ToMetricsTranslator is an interface to translate a protocol-specific data model into pdata.Traces.
47-
type ToMetricsTranslator interface {
48-
// ToMetrics translates a protocol-specific data model into pdata.Metrics.
49-
// If the error is not nil, the returned pdata.Metrics cannot be used.
50-
ToMetrics(src interface{}) (Metrics, error)
51-
}
52-
5323
// MetricsMarshaler marshals pdata.Metrics into bytes.
5424
type MetricsMarshaler interface {
5525
// MarshalMetrics the given pdata.Metrics into bytes.
5626
// If the error is not nil, the returned bytes slice cannot be used.
5727
MarshalMetrics(td Metrics) ([]byte, error)
5828
}
5929

60-
type metricsMarshaler struct {
61-
encoder MetricsEncoder
62-
translator FromMetricsTranslator
63-
}
64-
65-
// NewMetricsMarshaler returns a new MetricsMarshaler.
66-
func NewMetricsMarshaler(encoder MetricsEncoder, translator FromMetricsTranslator) MetricsMarshaler {
67-
return &metricsMarshaler{
68-
encoder: encoder,
69-
translator: translator,
70-
}
71-
}
72-
73-
// MarshalMetrics pdata.Metrics into bytes.
74-
func (t *metricsMarshaler) MarshalMetrics(td Metrics) ([]byte, error) {
75-
model, err := t.translator.FromMetrics(td)
76-
if err != nil {
77-
return nil, fmt.Errorf("converting pdata to model failed: %w", err)
78-
}
79-
buf, err := t.encoder.EncodeMetrics(model)
80-
if err != nil {
81-
return nil, fmt.Errorf("marshal failed: %w", err)
82-
}
83-
return buf, nil
84-
}
85-
8630
// MetricsUnmarshaler unmarshalls bytes into pdata.Metrics.
8731
type MetricsUnmarshaler interface {
8832
// UnmarshalMetrics the given bytes into pdata.Metrics.
8933
// If the error is not nil, the returned pdata.Metrics cannot be used.
9034
UnmarshalMetrics(buf []byte) (Metrics, error)
9135
}
9236

93-
type metricsUnmarshaler struct {
94-
decoder MetricsDecoder
95-
translator ToMetricsTranslator
96-
}
97-
98-
// NewMetricsUnmarshaler returns a new MetricsUnmarshaler.
99-
func NewMetricsUnmarshaler(decoder MetricsDecoder, translator ToMetricsTranslator) MetricsUnmarshaler {
100-
return &metricsUnmarshaler{
101-
decoder: decoder,
102-
translator: translator,
103-
}
104-
}
105-
106-
// UnmarshalMetrics bytes into pdata.Metrics. On error pdata.Metrics is invalid.
107-
func (t *metricsUnmarshaler) UnmarshalMetrics(buf []byte) (Metrics, error) {
108-
model, err := t.decoder.DecodeMetrics(buf)
109-
if err != nil {
110-
return Metrics{}, fmt.Errorf("unmarshal failed: %w", err)
111-
}
112-
td, err := t.translator.ToMetrics(model)
113-
if err != nil {
114-
return Metrics{}, fmt.Errorf("converting model to pdata failed: %w", err)
115-
}
116-
return td, nil
117-
}
118-
11937
// Metrics is an opaque interface that allows transition to the new internal Metrics data, but also facilitates the
12038
// transition to the new components, especially for traces.
12139
//

0 commit comments

Comments
 (0)