2727import co .elastic .apm .agent .MockReporter ;
2828import co .elastic .apm .agent .MockTracer ;
2929import co .elastic .apm .agent .impl .ElasticApmTracer ;
30+ import co .elastic .apm .agent .matcher .WildcardMatcher ;
3031import co .elastic .apm .agent .report .ReporterConfiguration ;
3132import com .fasterxml .jackson .core .JsonProcessingException ;
3233import com .fasterxml .jackson .databind .JsonNode ;
@@ -64,14 +65,15 @@ class MicrometerMetricsReporterTest {
6465 private MicrometerMetricsReporter metricsReporter ;
6566 private MockReporter reporter ;
6667 private ObjectMapper objectMapper = new ObjectMapper ();
68+ private ElasticApmTracer tracer ;
6769
6870 @ BeforeEach
6971 void setUp () {
7072 SimpleMeterRegistry simpleMeterRegistry = new SimpleMeterRegistry ();
7173 CompositeMeterRegistry nestedCompositeMeterRegistry = new CompositeMeterRegistry (Clock .SYSTEM , List .of (simpleMeterRegistry ));
7274 meterRegistry = new CompositeMeterRegistry (Clock .SYSTEM , List .of (nestedCompositeMeterRegistry ));
7375 reporter = new MockReporter ();
74- ElasticApmTracer tracer = MockTracer .createRealTracer (reporter );
76+ tracer = MockTracer .createRealTracer (reporter );
7577 doReturn (0L ).when (tracer .getConfig (ReporterConfiguration .class )).getMetricsIntervalMs ();
7678 metricsReporter = new MicrometerMetricsReporter (tracer );
7779 metricsReporter .registerMeterRegistry (meterRegistry );
@@ -93,6 +95,22 @@ void testSameMetricSet() {
9395 assertThat (metricSet .get ("metricset" ).get ("samples" ).get ("gauge" ).get ("value" ).doubleValue ()).isEqualTo (42 );
9496 }
9597
98+ @ Test
99+ void testDisabledMetrics () {
100+ doReturn (List .of (WildcardMatcher .valueOf ("root.metric" ), WildcardMatcher .valueOf ("root.metric.exclude.*" )))
101+ .when (tracer .getConfig (ReporterConfiguration .class )).getDisableMetrics ();
102+
103+ List <Tag > tags = List .of (Tag .of ("foo" , "bar" ));
104+ meterRegistry .counter ("root.metric" , tags ).increment (42 );
105+ meterRegistry .counter ("root.metric.include" , tags ).increment (42 );
106+ meterRegistry .counter ("root.metric.exclude.counter" , tags ).increment (42 );
107+
108+ JsonNode metricSet = getSingleMetricSet ();
109+ assertThat (metricSet .get ("metricset" ).get ("tags" ).get ("foo" ).textValue ()).isEqualTo ("bar" );
110+ assertThat (metricSet .get ("metricset" ).get ("samples" )).hasSize (1 );
111+ assertThat (metricSet .get ("metricset" ).get ("samples" ).get ("root.metric.include" ).get ("value" ).doubleValue ()).isEqualTo (42 );
112+ }
113+
96114 @ Test
97115 void testTagsSanitation () {
98116 List <Tag > tags = List .of (
0 commit comments