3737import io .micrometer .core .instrument .distribution .HistogramSnapshot ;
3838import io .micrometer .core .instrument .simple .SimpleMeterRegistry ;
3939import net .devh .boot .grpc .client .metrics .MetricsClientStreamTracers .CallAttemptsTracerFactory ;
40+ import net .devh .boot .grpc .common .util .Constants ;
4041
4142/**
4243 * Tests for {@link MetricsClientStreamTracers}.
@@ -61,6 +62,10 @@ class MetricsClientStreamTracersTest {
6162 private static final String GRPC_METHOD_TAG_KEY = "grpc.method" ;
6263 private static final String GRPC_STATUS_TAG_KEY = "grpc.status" ;
6364 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 ;
6469
6570 private static class StringInputStream extends InputStream {
6671 final String string ;
@@ -125,6 +130,8 @@ void clientBasicMetrics() {
125130
126131 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
127132 .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 )
128135 .counter ()
129136 .count ()).isEqualTo (1 );
130137
@@ -146,11 +153,16 @@ void clientBasicMetrics() {
146153
147154 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
148155 .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 )
149158 .counter ()
150159 .count ()).isEqualTo (1 );
151160
152161 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 );
154166
155167 HistogramSnapshot attemptDurationSnapshot = meterRegistry .get (CLIENT_ATTEMPT_DURATION )
156168 .tags (expectedTags )
@@ -200,6 +212,8 @@ void recordAttemptMetrics() {
200212
201213 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
202214 .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 )
203217 .counter ()
204218 .count ()).isEqualTo (1 );
205219
@@ -213,10 +227,15 @@ void recordAttemptMetrics() {
213227 tracer .streamClosed (Status .UNAVAILABLE );
214228
215229 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 );
217234
218235 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
219236 .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 )
220239 .counter ()
221240 .count ()).isEqualTo (1 );
222241 assertThat (meterRegistry .get (CLIENT_ATTEMPT_DURATION )
@@ -248,10 +267,15 @@ void recordAttemptMetrics() {
248267 tracer .streamClosed (Status .NOT_FOUND );
249268
250269 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 );
252274
253275 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
254276 .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 )
255279 .counter ()
256280 .count ()).isEqualTo (2 );
257281
@@ -290,6 +314,8 @@ void recordAttemptMetrics() {
290314
291315 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
292316 .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 )
293319 .counter ()
294320 .count ()).isEqualTo (3 );
295321
@@ -342,10 +368,15 @@ void recordAttemptMetrics() {
342368 callAttemptsTracerFactory .callEnded (Status .OK );
343369
344370 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 );
346375
347376 assertThat (meterRegistry .get (CLIENT_ATTEMPT_STARTED )
348377 .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 )
349380 .counter ()
350381 .count ()).isEqualTo (4 );
351382 assertThat (meterRegistry .get (CLIENT_ATTEMPT_DURATION )
@@ -388,8 +419,10 @@ void clientStreamNeverCreatedStillRecordMetrics() {
388419 callAttemptsTracerFactory .callEnded (status );
389420
390421 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 );
393426
394427 HistogramSnapshot attemptDurationSnapshot = meterRegistry .get (CLIENT_ATTEMPT_DURATION )
395428 .tags (expectedDeadlineExceededStatusTags )
0 commit comments