37
37
import io .micrometer .core .instrument .distribution .HistogramSnapshot ;
38
38
import io .micrometer .core .instrument .simple .SimpleMeterRegistry ;
39
39
import net .devh .boot .grpc .client .metrics .MetricsClientStreamTracers .CallAttemptsTracerFactory ;
40
+ import net .devh .boot .grpc .common .util .Constants ;
40
41
41
42
/**
42
43
* Tests for {@link MetricsClientStreamTracers}.
@@ -61,6 +62,10 @@ class MetricsClientStreamTracersTest {
61
62
private static final String GRPC_METHOD_TAG_KEY = "grpc.method" ;
62
63
private static final String GRPC_STATUS_TAG_KEY = "grpc.status" ;
63
64
private static final String FULL_METHOD_NAME = "package1.service1/method1" ;
65
+ private static final String INSTRUMENTATION_SOURCE_TAG_KEY = "instrumentation_source" ;
66
+ private static final String INSTRUMENTATION_SOURCE_TAG_VALUE = Constants .LIBRARY_NAME ;
67
+ private static final String INSTRUMENTATION_VERSION_TAG_KEY = "instrumentation_version" ;
68
+ private static final String INSTRUMENTATION_VERSION_TAG_VALUE = Constants .VERSION ;
64
69
65
70
private static class StringInputStream extends InputStream {
66
71
final String string ;
@@ -125,6 +130,8 @@ void clientBasicMetrics() {
125
130
126
131
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
127
132
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
133
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
134
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
128
135
.counter ()
129
136
.count ()).isEqualTo (1 );
130
137
@@ -146,11 +153,16 @@ void clientBasicMetrics() {
146
153
147
154
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
148
155
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
156
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
157
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
149
158
.counter ()
150
159
.count ()).isEqualTo (1 );
151
160
152
161
Tags expectedTags =
153
- Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME , GRPC_STATUS_TAG_KEY , Status .Code .OK .toString ());
162
+ Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME ,
163
+ GRPC_STATUS_TAG_KEY , Status .Code .OK .toString (),
164
+ INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE ,
165
+ INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE );
154
166
155
167
HistogramSnapshot attemptDurationSnapshot = meterRegistry .get (CLIENT_ATTEMPT_DURATION )
156
168
.tags (expectedTags )
@@ -200,6 +212,8 @@ void recordAttemptMetrics() {
200
212
201
213
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
202
214
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
215
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
216
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
203
217
.counter ()
204
218
.count ()).isEqualTo (1 );
205
219
@@ -213,10 +227,15 @@ void recordAttemptMetrics() {
213
227
tracer .streamClosed (Status .UNAVAILABLE );
214
228
215
229
Tags expectedUnailableStatusTags =
216
- Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME , GRPC_STATUS_TAG_KEY , Status .Code .UNAVAILABLE .toString ());
230
+ Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME ,
231
+ GRPC_STATUS_TAG_KEY , Status .Code .UNAVAILABLE .toString (),
232
+ INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE ,
233
+ INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE );
217
234
218
235
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
219
236
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
237
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
238
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
220
239
.counter ()
221
240
.count ()).isEqualTo (1 );
222
241
assertThat (meterRegistry .get (CLIENT_ATTEMPT_DURATION )
@@ -248,10 +267,15 @@ void recordAttemptMetrics() {
248
267
tracer .streamClosed (Status .NOT_FOUND );
249
268
250
269
Tags expectedNotFoundStatusTags =
251
- Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME , GRPC_STATUS_TAG_KEY , Status .Code .NOT_FOUND .toString ());
270
+ Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME ,
271
+ GRPC_STATUS_TAG_KEY , Status .Code .NOT_FOUND .toString (),
272
+ INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE ,
273
+ INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE );
252
274
253
275
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
254
276
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
277
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
278
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
255
279
.counter ()
256
280
.count ()).isEqualTo (2 );
257
281
@@ -290,6 +314,8 @@ void recordAttemptMetrics() {
290
314
291
315
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
292
316
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
317
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
318
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
293
319
.counter ()
294
320
.count ()).isEqualTo (3 );
295
321
@@ -342,10 +368,15 @@ void recordAttemptMetrics() {
342
368
callAttemptsTracerFactory .callEnded (Status .OK );
343
369
344
370
Tags expectedOKStatusTags =
345
- Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME , GRPC_STATUS_TAG_KEY , Status .Code .OK .toString ());
371
+ Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME ,
372
+ GRPC_STATUS_TAG_KEY , Status .Code .OK .toString (),
373
+ INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE ,
374
+ INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE );
346
375
347
376
assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
348
377
.tag (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME )
378
+ .tag (INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE )
379
+ .tag (INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE )
349
380
.counter ()
350
381
.count ()).isEqualTo (4 );
351
382
assertThat (meterRegistry .get (CLIENT_ATTEMPT_DURATION )
@@ -388,8 +419,10 @@ void clientStreamNeverCreatedStillRecordMetrics() {
388
419
callAttemptsTracerFactory .callEnded (status );
389
420
390
421
Tags expectedDeadlineExceededStatusTags =
391
- Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME , GRPC_STATUS_TAG_KEY ,
392
- Status .Code .DEADLINE_EXCEEDED .toString ());
422
+ Tags .of (GRPC_METHOD_TAG_KEY , FULL_METHOD_NAME ,
423
+ GRPC_STATUS_TAG_KEY , Status .Code .DEADLINE_EXCEEDED .toString (),
424
+ INSTRUMENTATION_SOURCE_TAG_KEY , INSTRUMENTATION_SOURCE_TAG_VALUE ,
425
+ INSTRUMENTATION_VERSION_TAG_KEY , INSTRUMENTATION_VERSION_TAG_VALUE );
393
426
394
427
HistogramSnapshot attemptDurationSnapshot = meterRegistry .get (CLIENT_ATTEMPT_DURATION )
395
428
.tags (expectedDeadlineExceededStatusTags )
0 commit comments