@@ -82,8 +82,9 @@ private String getName(Meter meter) {
82
82
public MetricResponse metric (@ Selector String requiredMetricName ,
83
83
@ Nullable List <String > tag ) {
84
84
List <Tag > tags = parseTags (tag );
85
- List <Meter > meters = new ArrayList <>();
86
- if (!findFirstMatchingMeters (meters , this .registry , requiredMetricName , tags )) {
85
+ List <Meter > meters = findFirstMatchingMeters (this .registry , requiredMetricName ,
86
+ tags );
87
+ if (meters .isEmpty ()) {
87
88
return null ;
88
89
}
89
90
Map <Statistic , Double > samples = getSamples (meters );
@@ -112,20 +113,22 @@ private Tag parseTag(String tag) {
112
113
return Tag .of (parts [0 ], parts [1 ]);
113
114
}
114
115
115
- private boolean findFirstMatchingMeters ( List <Meter > meters , MeterRegistry registry ,
116
- String name , Iterable <Tag > tags ) {
116
+ private List <Meter > findFirstMatchingMeters ( MeterRegistry registry , String name ,
117
+ Iterable <Tag > tags ) {
117
118
if (registry instanceof CompositeMeterRegistry ) {
118
119
return ((CompositeMeterRegistry ) registry ).getRegistries ().stream ()
119
- .anyMatch ((r ) -> findFirstMatchingMeters (meters , r , name , tags ));
120
+ .map ((r ) -> findFirstMatchingMeters (r , name , tags ))
121
+ .filter ((match ) -> !match .isEmpty ()).findFirst ()
122
+ .orElse (Collections .emptyList ());
123
+
120
124
}
121
125
else {
122
- Collection <Meter > meterFound = registry .find (name ).tags (tags ).meters ();
123
- if (meterFound != null && meterFound .size () > 0 ) {
124
- meters .addAll (meterFound );
125
- return true ;
126
+ Collection <Meter > metersFound = registry .find (name ).tags (tags ).meters ();
127
+ if (!metersFound .isEmpty ()) {
128
+ return new ArrayList <>(metersFound );
126
129
}
127
130
}
128
- return false ;
131
+ return Collections . emptyList () ;
129
132
}
130
133
131
134
private Map <Statistic , Double > getSamples (List <Meter > meters ) {
0 commit comments