@@ -73,21 +73,21 @@ def _verify_success_records(self, num_bytes_out, num_bytes_in, method):
73
73
74
74
self .assertIsNotNone (bytes_out )
75
75
self .assertEqual (bytes_out .instrument .name , "grpcio/client/bytes_out" )
76
- self .assertEqual (bytes_out .labels , (("method" , method ),))
76
+ self .assertEqual (bytes_out .labels , (("rpc. method" , method ),))
77
77
78
78
self .assertIsNotNone (bytes_in )
79
79
self .assertEqual (bytes_in .instrument .name , "grpcio/client/bytes_in" )
80
- self .assertEqual (bytes_in .labels , (("method" , method ),))
80
+ self .assertEqual (bytes_in .labels , (("rpc. method" , method ),))
81
81
82
82
self .assertIsNotNone (duration )
83
83
self .assertEqual (duration .instrument .name , "grpcio/client/duration" )
84
- self .assertEqual (
85
- duration .labels ,
86
- (
87
- ("error " , False ),
88
- ("method" , method ),
89
- ("status_code " , grpc . StatusCode . OK ),
90
- ) ,
84
+ self .assertSequenceEqual (
85
+ sorted ( duration .labels ) ,
86
+ [
87
+ ("rpc.grpc.status_code " , grpc . StatusCode . OK . name ),
88
+ ("rpc. method" , method ),
89
+ ("rpc.system " , " grpc" ),
90
+ ] ,
91
91
)
92
92
93
93
self .assertEqual (type (bytes_out .aggregator ), SumAggregator )
@@ -116,6 +116,16 @@ def test_unary_unary(self):
116
116
117
117
self ._verify_success_records (8 , 8 , "/GRPCTestServer/SimpleMethod" )
118
118
119
+ self .assert_span_has_attributes (
120
+ span ,
121
+ {
122
+ "rpc.method" : "SimpleMethod" ,
123
+ "rpc.service" : "GRPCTestServer" ,
124
+ "rpc.system" : "grpc" ,
125
+ "rpc.grpc.status_code" : grpc .StatusCode .OK .value [0 ],
126
+ },
127
+ )
128
+
119
129
def test_unary_stream (self ):
120
130
server_streaming_method (self ._stub )
121
131
spans = self .memory_exporter .get_finished_spans ()
@@ -134,6 +144,16 @@ def test_unary_stream(self):
134
144
8 , 40 , "/GRPCTestServer/ServerStreamingMethod"
135
145
)
136
146
147
+ self .assert_span_has_attributes (
148
+ span ,
149
+ {
150
+ "rpc.method" : "ServerStreamingMethod" ,
151
+ "rpc.service" : "GRPCTestServer" ,
152
+ "rpc.system" : "grpc" ,
153
+ "rpc.grpc.status_code" : grpc .StatusCode .OK .value [0 ],
154
+ },
155
+ )
156
+
137
157
def test_stream_unary (self ):
138
158
client_streaming_method (self ._stub )
139
159
spans = self .memory_exporter .get_finished_spans ()
@@ -152,6 +172,16 @@ def test_stream_unary(self):
152
172
40 , 8 , "/GRPCTestServer/ClientStreamingMethod"
153
173
)
154
174
175
+ self .assert_span_has_attributes (
176
+ span ,
177
+ {
178
+ "rpc.method" : "ClientStreamingMethod" ,
179
+ "rpc.service" : "GRPCTestServer" ,
180
+ "rpc.system" : "grpc" ,
181
+ "rpc.grpc.status_code" : grpc .StatusCode .OK .value [0 ],
182
+ },
183
+ )
184
+
155
185
def test_stream_stream (self ):
156
186
bidirectional_streaming_method (self ._stub )
157
187
spans = self .memory_exporter .get_finished_spans ()
@@ -172,6 +202,16 @@ def test_stream_stream(self):
172
202
40 , 40 , "/GRPCTestServer/BidirectionalStreamingMethod"
173
203
)
174
204
205
+ self .assert_span_has_attributes (
206
+ span ,
207
+ {
208
+ "rpc.method" : "BidirectionalStreamingMethod" ,
209
+ "rpc.service" : "GRPCTestServer" ,
210
+ "rpc.system" : "grpc" ,
211
+ "rpc.grpc.status_code" : grpc .StatusCode .OK .value [0 ],
212
+ },
213
+ )
214
+
175
215
def _verify_error_records (self , method ):
176
216
# pylint: disable=protected-access,no-member
177
217
self .channel ._interceptor .controller .tick ()
@@ -195,21 +235,33 @@ def _verify_error_records(self, method):
195
235
self .assertIsNotNone (duration )
196
236
197
237
self .assertEqual (errors .instrument .name , "grpcio/client/errors" )
198
- self .assertEqual (
199
- errors .labels ,
200
- (
201
- ("method" , method ),
202
- ("status_code" , grpc .StatusCode .INVALID_ARGUMENT ),
238
+ self .assertSequenceEqual (
239
+ sorted (errors .labels ),
240
+ sorted (
241
+ (
242
+ (
243
+ "rpc.grpc.status_code" ,
244
+ grpc .StatusCode .INVALID_ARGUMENT .name ,
245
+ ),
246
+ ("rpc.method" , method ),
247
+ ("rpc.system" , "grpc" ),
248
+ )
203
249
),
204
250
)
205
251
self .assertEqual (errors .aggregator .checkpoint , 1 )
206
252
207
- self .assertEqual (
208
- duration .labels ,
209
- (
210
- ("error" , True ),
211
- ("method" , method ),
212
- ("status_code" , grpc .StatusCode .INVALID_ARGUMENT ),
253
+ self .assertSequenceEqual (
254
+ sorted (duration .labels ),
255
+ sorted (
256
+ (
257
+ ("error" , "true" ),
258
+ ("rpc.method" , method ),
259
+ ("rpc.system" , "grpc" ),
260
+ (
261
+ "rpc.grpc.status_code" ,
262
+ grpc .StatusCode .INVALID_ARGUMENT .name ,
263
+ ),
264
+ )
213
265
),
214
266
)
215
267
0 commit comments