Skip to content

Commit 822643b

Browse files
authored
[chore] Small nits, consistent JSON and Proto logic to call into internal (#13724)
The main idea is that the [*]otlp/Request is for http/grpc OTLP communication, but the Marshaler is only marshaling non-protocol specific data. Signed-off-by: Bogdan Drutu <[email protected]>
1 parent 04a7e7a commit 822643b

File tree

4 files changed

+56
-48
lines changed

4 files changed

+56
-48
lines changed

pdata/plog/plogotlp/request.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@
44
package plogotlp // import "go.opentelemetry.io/collector/pdata/plog/plogotlp"
55

66
import (
7+
"slices"
8+
79
"go.opentelemetry.io/collector/pdata/internal"
810
otlpcollectorlog "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/logs/v1"
11+
"go.opentelemetry.io/collector/pdata/internal/json"
912
"go.opentelemetry.io/collector/pdata/internal/otlp"
1013
"go.opentelemetry.io/collector/pdata/plog"
1114
)
1215

13-
var (
14-
jsonMarshaler = &plog.JSONMarshaler{}
15-
jsonUnmarshaler = &plog.JSONUnmarshaler{}
16-
)
17-
1816
// ExportRequest represents the request for gRPC/HTTP client/server.
1917
// It's a wrapper for plog.Logs data.
2018
type ExportRequest struct {
@@ -66,17 +64,21 @@ func (ms ExportRequest) UnmarshalProto(data []byte) error {
6664

6765
// MarshalJSON marshals ExportRequest into JSON bytes.
6866
func (ms ExportRequest) MarshalJSON() ([]byte, error) {
69-
return jsonMarshaler.MarshalLogs(plog.Logs(internal.NewLogs(ms.orig, nil)))
67+
dest := json.BorrowStream(nil)
68+
defer json.ReturnStream(dest)
69+
internal.MarshalJSONOrigExportLogsServiceRequest(ms.orig, dest)
70+
if dest.Error() != nil {
71+
return nil, dest.Error()
72+
}
73+
return slices.Clone(dest.Buffer()), nil
7074
}
7175

7276
// UnmarshalJSON unmarshalls ExportRequest from JSON bytes.
7377
func (ms ExportRequest) UnmarshalJSON(data []byte) error {
74-
ld, err := jsonUnmarshaler.UnmarshalLogs(data)
75-
if err != nil {
76-
return err
77-
}
78-
*ms.orig = *internal.GetOrigLogs(internal.Logs(ld))
79-
return nil
78+
iter := json.BorrowIterator(data)
79+
defer json.ReturnIterator(iter)
80+
internal.UnmarshalJSONOrigExportLogsServiceRequest(ms.orig, iter)
81+
return iter.Error()
8082
}
8183

8284
func (ms ExportRequest) Logs() plog.Logs {

pdata/pmetric/pmetricotlp/request.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@
44
package pmetricotlp // import "go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp"
55

66
import (
7+
"slices"
8+
79
"go.opentelemetry.io/collector/pdata/internal"
810
otlpcollectormetrics "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/metrics/v1"
11+
"go.opentelemetry.io/collector/pdata/internal/json"
912
"go.opentelemetry.io/collector/pdata/internal/otlp"
1013
"go.opentelemetry.io/collector/pdata/pmetric"
1114
)
1215

13-
var (
14-
jsonMarshaler = &pmetric.JSONMarshaler{}
15-
jsonUnmarshaler = &pmetric.JSONUnmarshaler{}
16-
)
17-
1816
// ExportRequest represents the request for gRPC/HTTP client/server.
1917
// It's a wrapper for pmetric.Metrics data.
2018
type ExportRequest struct {
@@ -66,17 +64,21 @@ func (ms ExportRequest) UnmarshalProto(data []byte) error {
6664

6765
// MarshalJSON marshals ExportRequest into JSON bytes.
6866
func (ms ExportRequest) MarshalJSON() ([]byte, error) {
69-
return jsonMarshaler.MarshalMetrics(pmetric.Metrics(internal.NewMetrics(ms.orig, nil)))
67+
dest := json.BorrowStream(nil)
68+
defer json.ReturnStream(dest)
69+
internal.MarshalJSONOrigExportMetricsServiceRequest(ms.orig, dest)
70+
if dest.Error() != nil {
71+
return nil, dest.Error()
72+
}
73+
return slices.Clone(dest.Buffer()), nil
7074
}
7175

7276
// UnmarshalJSON unmarshalls ExportRequest from JSON bytes.
7377
func (ms ExportRequest) UnmarshalJSON(data []byte) error {
74-
md, err := jsonUnmarshaler.UnmarshalMetrics(data)
75-
if err != nil {
76-
return err
77-
}
78-
*ms.orig = *internal.GetOrigMetrics(internal.Metrics(md))
79-
return nil
78+
iter := json.BorrowIterator(data)
79+
defer json.ReturnIterator(iter)
80+
internal.UnmarshalJSONOrigExportMetricsServiceRequest(ms.orig, iter)
81+
return iter.Error()
8082
}
8183

8284
func (ms ExportRequest) Metrics() pmetric.Metrics {

pdata/pprofile/pprofileotlp/request.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@
44
package pprofileotlp // import "go.opentelemetry.io/collector/pdata/pprofile/pprofileotlp"
55

66
import (
7+
"slices"
8+
79
"go.opentelemetry.io/collector/pdata/internal"
810
otlpcollectorprofile "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/profiles/v1development"
11+
"go.opentelemetry.io/collector/pdata/internal/json"
912
"go.opentelemetry.io/collector/pdata/internal/otlp"
1013
"go.opentelemetry.io/collector/pdata/pprofile"
1114
)
1215

13-
var (
14-
jsonMarshaler = &pprofile.JSONMarshaler{}
15-
jsonUnmarshaler = &pprofile.JSONUnmarshaler{}
16-
)
17-
1816
// ExportRequest represents the request for gRPC/HTTP client/server.
1917
// It's a wrapper for pprofile.Profiles data.
2018
type ExportRequest struct {
@@ -66,17 +64,21 @@ func (ms ExportRequest) UnmarshalProto(data []byte) error {
6664

6765
// MarshalJSON marshals ExportRequest into JSON bytes.
6866
func (ms ExportRequest) MarshalJSON() ([]byte, error) {
69-
return jsonMarshaler.MarshalProfiles(pprofile.Profiles(internal.NewProfiles(ms.orig, nil)))
67+
dest := json.BorrowStream(nil)
68+
defer json.ReturnStream(dest)
69+
internal.MarshalJSONOrigExportProfilesServiceRequest(ms.orig, dest)
70+
if dest.Error() != nil {
71+
return nil, dest.Error()
72+
}
73+
return slices.Clone(dest.Buffer()), nil
7074
}
7175

7276
// UnmarshalJSON unmarshalls ExportRequest from JSON bytes.
7377
func (ms ExportRequest) UnmarshalJSON(data []byte) error {
74-
td, err := jsonUnmarshaler.UnmarshalProfiles(data)
75-
if err != nil {
76-
return err
77-
}
78-
*ms.orig = *internal.GetOrigProfiles(internal.Profiles(td))
79-
return nil
78+
iter := json.BorrowIterator(data)
79+
defer json.ReturnIterator(iter)
80+
internal.UnmarshalJSONOrigExportProfilesServiceRequest(ms.orig, iter)
81+
return iter.Error()
8082
}
8183

8284
func (ms ExportRequest) Profiles() pprofile.Profiles {

pdata/ptrace/ptraceotlp/request.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@
44
package ptraceotlp // import "go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp"
55

66
import (
7+
"slices"
8+
79
"go.opentelemetry.io/collector/pdata/internal"
810
otlpcollectortrace "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/trace/v1"
11+
"go.opentelemetry.io/collector/pdata/internal/json"
912
"go.opentelemetry.io/collector/pdata/internal/otlp"
1013
"go.opentelemetry.io/collector/pdata/ptrace"
1114
)
1215

13-
var (
14-
jsonMarshaler = &ptrace.JSONMarshaler{}
15-
jsonUnmarshaler = &ptrace.JSONUnmarshaler{}
16-
)
17-
1816
// ExportRequest represents the request for gRPC/HTTP client/server.
1917
// It's a wrapper for ptrace.Traces data.
2018
type ExportRequest struct {
@@ -66,17 +64,21 @@ func (ms ExportRequest) UnmarshalProto(data []byte) error {
6664

6765
// MarshalJSON marshals ExportRequest into JSON bytes.
6866
func (ms ExportRequest) MarshalJSON() ([]byte, error) {
69-
return jsonMarshaler.MarshalTraces(ptrace.Traces(internal.NewTraces(ms.orig, nil)))
67+
dest := json.BorrowStream(nil)
68+
defer json.ReturnStream(dest)
69+
internal.MarshalJSONOrigExportTraceServiceRequest(ms.orig, dest)
70+
if dest.Error() != nil {
71+
return nil, dest.Error()
72+
}
73+
return slices.Clone(dest.Buffer()), nil
7074
}
7175

7276
// UnmarshalJSON unmarshalls ExportRequest from JSON bytes.
7377
func (ms ExportRequest) UnmarshalJSON(data []byte) error {
74-
td, err := jsonUnmarshaler.UnmarshalTraces(data)
75-
if err != nil {
76-
return err
77-
}
78-
*ms.orig = *internal.GetOrigTraces(internal.Traces(td))
79-
return nil
78+
iter := json.BorrowIterator(data)
79+
defer json.ReturnIterator(iter)
80+
internal.UnmarshalJSONOrigExportTraceServiceRequest(ms.orig, iter)
81+
return iter.Error()
8082
}
8183

8284
func (ms ExportRequest) Traces() ptrace.Traces {

0 commit comments

Comments
 (0)