|
27 | 27 | import io.micronaut.configuration.metrics.aggregator.AbstractMethodTagger;
|
28 | 28 | import io.micronaut.configuration.metrics.annotation.MetricOptions;
|
29 | 29 | import io.micronaut.configuration.metrics.annotation.RequiresMetrics;
|
| 30 | +import io.micronaut.configuration.metrics.util.MetricOptionsUtil; |
30 | 31 | import io.micronaut.core.annotation.AnnotationMetadata;
|
31 | 32 | import io.micronaut.core.annotation.AnnotationValue;
|
32 | 33 | import io.micronaut.core.annotation.TypeHint;
|
@@ -123,10 +124,12 @@ protected TimedInterceptor(MeterRegistry meterRegistry, ConversionService conver
|
123 | 124 | public Object intercept(MethodInvocationContext<Object, Object> context) {
|
124 | 125 | final AnnotationMetadata metadata = context.getAnnotationMetadata();
|
125 | 126 | final AnnotationValue<TimedSet> timedSet = metadata.getAnnotation(TimedSet.class);
|
126 |
| - if (timedSet != null) { |
| 127 | + final boolean conditionMet = MetricOptionsUtil.evaluateCondition(context); |
| 128 | + |
| 129 | + if (timedSet != null && conditionMet) { |
127 | 130 | final List<AnnotationValue<Timed>> timedAnnotations = timedSet.getAnnotations(VALUE_MEMBER, Timed.class);
|
128 |
| - if (!timedAnnotations.isEmpty()) { |
129 | 131 |
|
| 132 | + if (!timedAnnotations.isEmpty()) { |
130 | 133 | String exceptionClass = "none";
|
131 | 134 | List<Timer.Sample> syncInvokeSamples = null;
|
132 | 135 | InterceptedMethod interceptedMethod = InterceptedMethod.of(context, conversionService);
|
@@ -216,8 +219,8 @@ private void stopTimed(String metricName, Timer.Sample sample,
|
216 | 219 | final String description = metadata.stringValue("description").orElse(null);
|
217 | 220 | final String[] tags = metadata.stringValues("extraTags");
|
218 | 221 | final AnnotationMetadata annotationMetadata = context.getAnnotationMetadata();
|
219 |
| - final List<Class<? extends AbstractMethodTagger>> taggers = Arrays.asList(annotationMetadata.classValues(MetricOptions.class, "taggers")); |
220 |
| - final boolean filter = annotationMetadata.booleanValue(MetricOptions.class, "filterTaggers").orElse(false); |
| 222 | + final List<Class<? extends AbstractMethodTagger>> taggers = Arrays.asList(annotationMetadata.classValues(MetricOptions.class, MetricOptions.MEMBER_TAGGERS)); |
| 223 | + final boolean filter = annotationMetadata.booleanValue(MetricOptions.class, MetricOptions.MEMBER_FILTER_TAGGERS).orElse(false); |
221 | 224 | final double[] percentiles = metadata.doubleValues("percentiles");
|
222 | 225 | final boolean histogram = metadata.isTrue("histogram");
|
223 | 226 | final Timer timer = Timer.builder(metricName)
|
|
0 commit comments