Skip to content

[pdata] Replace Request.Set<Signals> with NewRequestFrom<Signals> #5234

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

Merged
merged 4 commits into from
Apr 20, 2022
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@

- Deprecate `configunmarshaler` package, move it to internal (#5151)
- Deprecate all API in `model/semconv`. The package is moved to a new `semcomv` module (#5196)
- Deprecate `p<signal>otlp.Request.Set<Logs|Metrics|Traces>` (#5234)
- `plogotlp.Request.SetLogs` func is deprecated in favor of `plogotlp.NewRequestFromLogs`
- `pmetricotlp.Request.SetMetrics` func is deprecated in favor of `pmetricotlp.NewRequestFromMetrics`
- `ptraceotlp.Request.SetTraces` func is deprecated in favor of `ptraceotlp.NewRequestFromTraces`

### 💡 Enhancements 💡

Expand Down
9 changes: 3 additions & 6 deletions exporter/otlpexporter/otlp.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,22 +101,19 @@ func (e *exporter) shutdown(context.Context) error {
}

func (e *exporter) pushTraces(ctx context.Context, td ptrace.Traces) error {
req := ptraceotlp.NewRequest()
req.SetTraces(td)
req := ptraceotlp.NewRequestFromTraces(td)
_, err := e.traceExporter.Export(e.enhanceContext(ctx), req, e.callOptions...)
return processError(err)
}

func (e *exporter) pushMetrics(ctx context.Context, md pmetric.Metrics) error {
req := pmetricotlp.NewRequest()
req.SetMetrics(md)
req := pmetricotlp.NewRequestFromMetrics(md)
_, err := e.metricExporter.Export(e.enhanceContext(ctx), req, e.callOptions...)
return processError(err)
}

func (e *exporter) pushLogs(ctx context.Context, ld plog.Logs) error {
req := plogotlp.NewRequest()
req.SetLogs(ld)
req := plogotlp.NewRequestFromLogs(ld)
_, err := e.logExporter.Export(e.enhanceContext(ctx), req, e.callOptions...)
return processError(err)
}
Expand Down
9 changes: 3 additions & 6 deletions exporter/otlphttpexporter/otlp.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,7 @@ func (e *exporter) start(_ context.Context, host component.Host) error {
}

func (e *exporter) pushTraces(ctx context.Context, td ptrace.Traces) error {
tr := ptraceotlp.NewRequest()
tr.SetTraces(td)
tr := ptraceotlp.NewRequestFromTraces(td)
request, err := tr.MarshalProto()
if err != nil {
return consumererror.NewPermanent(err)
Expand All @@ -107,8 +106,7 @@ func (e *exporter) pushTraces(ctx context.Context, td ptrace.Traces) error {
}

func (e *exporter) pushMetrics(ctx context.Context, md pmetric.Metrics) error {
tr := pmetricotlp.NewRequest()
tr.SetMetrics(md)
tr := pmetricotlp.NewRequestFromMetrics(md)
request, err := tr.MarshalProto()
if err != nil {
return consumererror.NewPermanent(err)
Expand All @@ -117,8 +115,7 @@ func (e *exporter) pushMetrics(ctx context.Context, md pmetric.Metrics) error {
}

func (e *exporter) pushLogs(ctx context.Context, ld plog.Logs) error {
tr := plogotlp.NewRequest()
tr.SetLogs(ld)
tr := plogotlp.NewRequestFromLogs(ld)
request, err := tr.MarshalProto()
if err != nil {
return consumererror.NewPermanent(err)
Expand Down
9 changes: 9 additions & 0 deletions pdata/plog/plogotlp/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ func (lr Response) UnmarshalJSON(data []byte) error {
}

// Request represents the request for gRPC/HTTP client/server.
// It's a wrapper for plog.Logs data.
type Request struct {
orig *otlpcollectorlog.ExportLogsServiceRequest
}
Expand All @@ -74,6 +75,13 @@ func NewRequest() Request {
return Request{orig: &otlpcollectorlog.ExportLogsServiceRequest{}}
}

// NewRequestFromLogs returns a Request from plog.Logs.
// Because Request is a wrapper for plog.Logs,
// any changes to the provided Logs struct will be reflected in the Request and vice versa.
func NewRequestFromLogs(l plog.Logs) Request {
return Request{orig: internal.LogsToOtlp(l)}
}

// MarshalProto marshals Request into proto bytes.
func (lr Request) MarshalProto() ([]byte, error) {
return lr.orig.Marshal()
Expand Down Expand Up @@ -106,6 +114,7 @@ func (lr Request) UnmarshalJSON(data []byte) error {
return nil
}

// Deprecated: [v0.50.0] Use NewRequestFromLogs instead.
func (lr Request) SetLogs(ld plog.Logs) {
*lr.orig = *internal.LogsToOtlp(ld)
}
Expand Down
5 changes: 1 addition & 4 deletions pdata/plog/plogotlp/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,10 +314,7 @@ func (f fakeLogsServer) Export(_ context.Context, request Request) (Response, er
func generateLogsRequest() Request {
ld := plog.NewLogs()
ld.ResourceLogs().AppendEmpty().ScopeLogs().AppendEmpty().LogRecords().AppendEmpty().Body().SetStringVal("test_log_record")

lr := NewRequest()
lr.SetLogs(ld)
return lr
return NewRequestFromLogs(ld)
}

func generateLogsRequestWithInstrumentationLibrary() Request {
Expand Down
9 changes: 9 additions & 0 deletions pdata/pmetric/pmetricotlp/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ func (mr Response) UnmarshalJSON(data []byte) error {
}

// Request represents the request for gRPC/HTTP client/server.
// It's a wrapper for pmetric.Metrics data.
type Request struct {
orig *otlpcollectormetrics.ExportMetricsServiceRequest
}
Expand All @@ -74,6 +75,13 @@ func NewRequest() Request {
return Request{orig: &otlpcollectormetrics.ExportMetricsServiceRequest{}}
}

// NewRequestFromMetrics returns a Request from pmetric.Metrics.
// Because Request is a wrapper for pmetric.Metrics,
// any changes to the provided Metrics struct will be reflected in the Request and vice versa.
func NewRequestFromMetrics(m pmetric.Metrics) Request {
return Request{orig: internal.MetricsToOtlp(m)}
}

// MarshalProto marshals Request into proto bytes.
func (mr Request) MarshalProto() ([]byte, error) {
return mr.orig.Marshal()
Expand Down Expand Up @@ -102,6 +110,7 @@ func (mr Request) UnmarshalJSON(data []byte) error {
return nil
}

// Deprecated: [v0.50.0] Use NewRequestFromMetrics instead.
func (mr Request) SetMetrics(ld pmetric.Metrics) {
*mr.orig = *internal.MetricsToOtlp(ld)
}
Expand Down
5 changes: 1 addition & 4 deletions pdata/pmetric/pmetricotlp/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -301,10 +301,7 @@ func generateMetricsRequest() Request {
m.SetName("test_metric")
m.SetDataType(pmetric.MetricDataTypeGauge)
m.Gauge().DataPoints().AppendEmpty()

mr := NewRequest()
mr.SetMetrics(md)
return mr
return NewRequestFromMetrics(md)
}

func generateMetricsRequestWithInstrumentationLibrary() Request {
Expand Down
9 changes: 9 additions & 0 deletions pdata/ptrace/ptraceotlp/traces.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ func (tr Response) UnmarshalJSON(data []byte) error {
}

// Request represents the request for gRPC/HTTP client/server.
// It's a wrapper for ptrace.Traces data.
type Request struct {
orig *otlpcollectortrace.ExportTraceServiceRequest
}
Expand All @@ -74,6 +75,13 @@ func NewRequest() Request {
return Request{orig: &otlpcollectortrace.ExportTraceServiceRequest{}}
}

// NewRequestFromTraces returns a Request from ptrace.Traces.
// Because Request is a wrapper for ptrace.Traces,
// any changes to the provided Traces struct will be reflected in the Request and vice versa.
func NewRequestFromTraces(t ptrace.Traces) Request {
return Request{orig: internal.TracesToOtlp(t)}
}

// MarshalProto marshals Request into proto bytes.
func (tr Request) MarshalProto() ([]byte, error) {
return tr.orig.Marshal()
Expand Down Expand Up @@ -106,6 +114,7 @@ func (tr Request) UnmarshalJSON(data []byte) error {
return nil
}

// Deprecated: [v0.50.0] Use NewRequestFromTraces instead.
func (tr Request) SetTraces(td ptrace.Traces) {
*tr.orig = *internal.TracesToOtlp(td)
}
Expand Down
5 changes: 1 addition & 4 deletions pdata/ptrace/ptraceotlp/traces_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -315,10 +315,7 @@ func (f fakeTracesServer) Export(_ context.Context, request Request) (Response,
func generateTracesRequest() Request {
td := ptrace.NewTraces()
td.ResourceSpans().AppendEmpty().ScopeSpans().AppendEmpty().Spans().AppendEmpty().SetName("test_span")

tr := NewRequest()
tr.SetTraces(td)
return tr
return NewRequestFromTraces(td)
}

func generateTracesRequestWithInstrumentationLibrary() Request {
Expand Down
6 changes: 2 additions & 4 deletions receiver/otlpreceiver/internal/logs/otlp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@ func TestExport(t *testing.T) {
// Keep log data to compare the test result against it
// Clone needed because OTLP proto XXX_ fields are altered in the GRPC downstream
logData := ld.Clone()
req := plogotlp.NewRequest()
req.SetLogs(ld)
req := plogotlp.NewRequestFromLogs(ld)

resp, err := traceClient.Export(context.Background(), req)
require.NoError(t, err, "Failed to export trace: %v", err)
Expand Down Expand Up @@ -83,8 +82,7 @@ func TestExport_ErrorConsumer(t *testing.T) {
defer logClientDoneFn()

ld := testdata.GenerateLogsOneLogRecord()
req := plogotlp.NewRequest()
req.SetLogs(ld)
req := plogotlp.NewRequestFromLogs(ld)

resp, err := logClient.Export(context.Background(), req)
assert.EqualError(t, err, "rpc error: code = Unknown desc = my error")
Expand Down
6 changes: 2 additions & 4 deletions receiver/otlpreceiver/internal/metrics/otlp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ func TestExport(t *testing.T) {
// Clone needed because OTLP proto XXX_ fields are altered in the GRPC downstream
metricData := md.Clone()

req := pmetricotlp.NewRequest()
req.SetMetrics(md)
req := pmetricotlp.NewRequestFromMetrics(md)
resp, err := metricsClient.Export(context.Background(), req)

require.NoError(t, err, "Failed to export metrics: %v", err)
Expand Down Expand Up @@ -85,8 +84,7 @@ func TestExport_ErrorConsumer(t *testing.T) {
defer metricsClientDoneFn()

md := testdata.GenerateMetricsOneMetric()
req := pmetricotlp.NewRequest()
req.SetMetrics(md)
req := pmetricotlp.NewRequestFromMetrics(md)

resp, err := metricsClient.Export(context.Background(), req)
assert.EqualError(t, err, "rpc error: code = Unknown desc = my error")
Expand Down
6 changes: 2 additions & 4 deletions receiver/otlpreceiver/internal/trace/otlp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@ func TestExport(t *testing.T) {
// Keep trace data to compare the test result against it
// Clone needed because OTLP proto XXX_ fields are altered in the GRPC downstream
traceData := td.Clone()
req := ptraceotlp.NewRequest()
req.SetTraces(td)
req := ptraceotlp.NewRequestFromTraces(td)

resp, err := traceClient.Export(context.Background(), req)
require.NoError(t, err, "Failed to export trace: %v", err)
Expand Down Expand Up @@ -83,8 +82,7 @@ func TestExport_ErrorConsumer(t *testing.T) {
defer traceClientDoneFn()

td := testdata.GenerateTracesOneSpan()
req := ptraceotlp.NewRequest()
req.SetTraces(td)
req := ptraceotlp.NewRequestFromTraces(td)
resp, err := traceClient.Export(context.Background(), req)
assert.EqualError(t, err, "rpc error: code = Unknown desc = my error")
assert.Equal(t, ptraceotlp.Response{}, resp)
Expand Down
3 changes: 1 addition & 2 deletions receiver/otlpreceiver/otlp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -991,8 +991,7 @@ loop:

func exportTraces(cc *grpc.ClientConn, td ptrace.Traces) error {
acc := ptraceotlp.NewClient(cc)
req := ptraceotlp.NewRequest()
req.SetTraces(td)
req := ptraceotlp.NewRequestFromTraces(td)
_, err := acc.Export(context.Background(), req)

return err
Expand Down