@@ -36,6 +36,24 @@ func NewMetricsResponse() MetricsResponse {
36
36
return MetricsResponse {orig : & otlpcollectormetrics.ExportMetricsServiceResponse {}}
37
37
}
38
38
39
+ // MetricsRequest represents the response for gRPC client/server.
40
+ type MetricsRequest struct {
41
+ orig * otlpcollectormetrics.ExportMetricsServiceRequest
42
+ }
43
+
44
+ // NewMetricsRequest returns an empty MetricsRequest.
45
+ func NewMetricsRequest () MetricsRequest {
46
+ return MetricsRequest {orig : & otlpcollectormetrics.ExportMetricsServiceRequest {}}
47
+ }
48
+
49
+ func (lr MetricsRequest ) SetMetrics (ld pdata.Metrics ) {
50
+ lr .orig .ResourceMetrics = internal .MetricsToOtlp (ld .InternalRep ()).ResourceMetrics
51
+ }
52
+
53
+ func (lr MetricsRequest ) Metrics () pdata.Metrics {
54
+ return pdata .MetricsFromInternalRep (internal .MetricsFromOtlp (lr .orig ))
55
+ }
56
+
39
57
// MetricsClient is the client API for OTLP-GRPC Metrics service.
40
58
//
41
59
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
@@ -44,7 +62,7 @@ type MetricsClient interface {
44
62
//
45
63
// For performance reasons, it is recommended to keep this RPC
46
64
// alive for the entire life of the application.
47
- Export (ctx context.Context , in pdata. Metrics , opts ... grpc.CallOption ) (MetricsResponse , error )
65
+ Export (ctx context.Context , request MetricsRequest , opts ... grpc.CallOption ) (MetricsResponse , error )
48
66
}
49
67
50
68
type metricsClient struct {
@@ -56,8 +74,8 @@ func NewMetricsClient(cc *grpc.ClientConn) MetricsClient {
56
74
return & metricsClient {rawClient : otlpcollectormetrics .NewMetricsServiceClient (cc )}
57
75
}
58
76
59
- func (c * metricsClient ) Export (ctx context.Context , in pdata. Metrics , opts ... grpc.CallOption ) (MetricsResponse , error ) {
60
- rsp , err := c .rawClient .Export (ctx , internal . MetricsToOtlp ( in . InternalRep ()) , opts ... )
77
+ func (c * metricsClient ) Export (ctx context.Context , request MetricsRequest , opts ... grpc.CallOption ) (MetricsResponse , error ) {
78
+ rsp , err := c .rawClient .Export (ctx , request . orig , opts ... )
61
79
return MetricsResponse {orig : rsp }, err
62
80
}
63
81
@@ -67,7 +85,7 @@ type MetricsServer interface {
67
85
//
68
86
// For performance reasons, it is recommended to keep this RPC
69
87
// alive for the entire life of the application.
70
- Export (context.Context , pdata. Metrics ) (MetricsResponse , error )
88
+ Export (context.Context , MetricsRequest ) (MetricsResponse , error )
71
89
}
72
90
73
91
// RegisterMetricsServer registers the MetricsServer to the grpc.Server.
@@ -80,6 +98,6 @@ type rawMetricsServer struct {
80
98
}
81
99
82
100
func (s rawMetricsServer ) Export (ctx context.Context , request * otlpcollectormetrics.ExportMetricsServiceRequest ) (* otlpcollectormetrics.ExportMetricsServiceResponse , error ) {
83
- rsp , err := s .srv .Export (ctx , pdata . MetricsFromInternalRep ( internal . MetricsFromOtlp ( request )) )
101
+ rsp , err := s .srv .Export (ctx , MetricsRequest { orig : request } )
84
102
return rsp .orig , err
85
103
}
0 commit comments