You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/07/08 12:13:12 UTC
[camel] branch master updated: CAMEL-15255: Extend set of
micrometer metrics provided (#3976)
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 9e1f2d3 CAMEL-15255: Extend set of micrometer metrics provided (#3976)
9e1f2d3 is described below
commit 9e1f2d3e9dd70616445fe97798238515acb0b8ba
Author: espeandr <es...@hotmail.com>
AuthorDate: Wed Jul 8 14:12:57 2020 +0200
CAMEL-15255: Extend set of micrometer metrics provided (#3976)
Co-authored-by: Espen Andreassen <es...@statnett.no>
---
.../component/micrometer/MicrometerConstants.java | 3 +
.../MicrometerExchangeEventNotifier.java | 24 +++++++-
...rometerExchangeEventNotifierNamingStrategy.java | 14 +++++
.../routepolicy/MicrometerRoutePolicy.java | 18 ++++++
.../MicrometerRoutePolicyNamingStrategy.java | 17 ++++++
.../MicrometerExchangeEventNotifierTest.java | 11 ++++
.../ManagedMicrometerRoutePolicyTest.java | 4 +-
.../MicrometerRoutePolicyExchangeStatusTest.java | 64 ++++++++++++++++++++++
...MicrometerRoutePolicyMulticastSubRouteTest.java | 31 +++++++++--
.../MicrometerRoutePolicySubRouteTest.java | 7 ++-
10 files changed, 182 insertions(+), 11 deletions(-)
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java
index 5ffd3d9..d30ae6d 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/MicrometerConstants.java
@@ -31,10 +31,13 @@ public final class MicrometerConstants {
public static final String HEADER_METRIC_TAGS = HEADER_PREFIX + "Tags";
public static final String DEFAULT_CAMEL_MESSAGE_HISTORY_METER_NAME = "CamelMessageHistory";
+ public static final String DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_FAILED_METER_NAME = "CamelExchangesFailed";
+ public static final String DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_SUCCEEDED_METER_NAME = "CamelExchangesSucceeded";
public static final String DEFAULT_CAMEL_ROUTE_POLICY_METER_NAME = "CamelRoutePolicy";
public static final String DEFAULT_CAMEL_EXCHANGE_EVENT_METER_NAME = "CamelExchangeEventNotifier";
public static final String DEFAULT_CAMEL_ROUTES_ADDED = "CamelRoutesAdded";
public static final String DEFAULT_CAMEL_ROUTES_RUNNING = "CamelRoutesRunning";
+ public static final String DEFAULT_CAMEL_ROUTES_EXCHANGES_INFLIGHT = "CamelExchangesInflight";
public static final String ROUTE_ID_TAG = "routeId";
public static final String NODE_ID_TAG = "nodeId";
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifier.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifier.java
index 85929d7..f22ff17 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifier.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifier.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.micrometer.eventnotifier;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
+import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.Tags;
import io.micrometer.core.instrument.Timer;
import org.apache.camel.Exchange;
@@ -28,9 +29,10 @@ import org.apache.camel.spi.CamelEvent.ExchangeCreatedEvent;
import org.apache.camel.spi.CamelEvent.ExchangeEvent;
import org.apache.camel.spi.CamelEvent.ExchangeFailedEvent;
import org.apache.camel.spi.CamelEvent.ExchangeSentEvent;
+import org.apache.camel.spi.InflightRepository;
public class MicrometerExchangeEventNotifier extends AbstractMicrometerEventNotifier<ExchangeEvent> {
-
+ private InflightRepository inflightRepository;
private Predicate<Exchange> ignoreExchanges = exchange -> false;
private MicrometerExchangeEventNotifierNamingStrategy namingStrategy = MicrometerExchangeEventNotifierNamingStrategy.DEFAULT;
@@ -55,8 +57,15 @@ public class MicrometerExchangeEventNotifier extends AbstractMicrometerEventNoti
}
@Override
+ protected void doStart() throws Exception {
+ inflightRepository = getCamelContext().getInflightRepository();
+ super.doStart();
+ }
+
+ @Override
public void notify(CamelEvent eventObject) {
if (!(getIgnoreExchanges().test(((ExchangeEvent) eventObject).getExchange()))) {
+ handleExchangeEvent((ExchangeEvent) eventObject);
if (eventObject instanceof ExchangeSentEvent) {
handleSentEvent((ExchangeSentEvent) eventObject);
} else if (eventObject instanceof ExchangeCreatedEvent) {
@@ -67,6 +76,14 @@ public class MicrometerExchangeEventNotifier extends AbstractMicrometerEventNoti
}
}
+ private void handleExchangeEvent(ExchangeEvent exchangeEvent) {
+ String name = namingStrategy.getInflightExchangesName(exchangeEvent.getExchange(), exchangeEvent.getExchange().getFromEndpoint());
+ Tags tags = namingStrategy.getInflightExchangesTags(exchangeEvent, exchangeEvent.getExchange().getFromEndpoint());
+ Gauge.builder(name, () -> getInflightExchangesInRoute(exchangeEvent))
+ .tags(tags)
+ .register(getMeterRegistry());
+ }
+
protected void handleSentEvent(ExchangeSentEvent sentEvent) {
String name = namingStrategy.getName(sentEvent.getExchange(), sentEvent.getEndpoint());
Tags tags = namingStrategy.getTags(sentEvent, sentEvent.getEndpoint());
@@ -88,5 +105,10 @@ public class MicrometerExchangeEventNotifier extends AbstractMicrometerEventNoti
}
}
+ private int getInflightExchangesInRoute(ExchangeEvent exchangeEvent) {
+ String routeId = exchangeEvent.getExchange().getFromRouteId();
+ return inflightRepository.size(routeId);
+ }
+
}
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifierNamingStrategy.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifierNamingStrategy.java
index 7ce935d..5a27f76 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifierNamingStrategy.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifierNamingStrategy.java
@@ -26,9 +26,11 @@ import org.apache.camel.spi.CamelEvent.ExchangeEvent;
import static org.apache.camel.component.micrometer.MicrometerConstants.CAMEL_CONTEXT_TAG;
import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_CAMEL_EXCHANGE_EVENT_METER_NAME;
+import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_CAMEL_ROUTES_EXCHANGES_INFLIGHT;
import static org.apache.camel.component.micrometer.MicrometerConstants.ENDPOINT_NAME;
import static org.apache.camel.component.micrometer.MicrometerConstants.EVENT_TYPE_TAG;
import static org.apache.camel.component.micrometer.MicrometerConstants.FAILED_TAG;
+import static org.apache.camel.component.micrometer.MicrometerConstants.ROUTE_ID_TAG;
import static org.apache.camel.component.micrometer.MicrometerConstants.SERVICE_NAME;
public interface MicrometerExchangeEventNotifierNamingStrategy {
@@ -38,6 +40,10 @@ public interface MicrometerExchangeEventNotifierNamingStrategy {
String getName(Exchange exchange, Endpoint endpoint);
+ default String getInflightExchangesName(Exchange exchange, Endpoint endpoint) {
+ return DEFAULT_CAMEL_ROUTES_EXCHANGES_INFLIGHT;
+ }
+
default Tags getTags(ExchangeEvent event, Endpoint endpoint) {
return Tags.of(
CAMEL_CONTEXT_TAG, event.getExchange().getContext().getName(),
@@ -47,4 +53,12 @@ public interface MicrometerExchangeEventNotifierNamingStrategy {
FAILED_TAG, Boolean.toString(event.getExchange().isFailed())
);
}
+
+ default Tags getInflightExchangesTags(ExchangeEvent event, Endpoint endpoint) {
+ return Tags.of(
+ CAMEL_CONTEXT_TAG, event.getExchange().getContext().getName(),
+ SERVICE_NAME, MicrometerEventNotifierService.class.getSimpleName(),
+ ROUTE_ID_TAG, event.getExchange().getFromRouteId()
+ );
+ }
}
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
index 200be1c..4af8cf7 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicy.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.micrometer.routepolicy;
import java.util.concurrent.TimeUnit;
+import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tags;
import io.micrometer.core.instrument.Timer;
@@ -51,11 +52,15 @@ public class MicrometerRoutePolicy extends RoutePolicySupport implements NonMana
private final MeterRegistry meterRegistry;
private final Route route;
private final MicrometerRoutePolicyNamingStrategy namingStrategy;
+ private final Counter exchangesSucceeded;
+ private final Counter exchangesFailed;
private MetricsStatistics(MeterRegistry meterRegistry, Route route, MicrometerRoutePolicyNamingStrategy namingStrategy) {
this.meterRegistry = ObjectHelper.notNull(meterRegistry, "MeterRegistry", this);
this.namingStrategy = ObjectHelper.notNull(namingStrategy, "MicrometerRoutePolicyNamingStrategy", this);
this.route = route;
+ this.exchangesSucceeded = createCounter(namingStrategy.getExchangesSucceededName(route));
+ this.exchangesFailed = createCounter(namingStrategy.getExchangesFailedName(route));
}
public void onExchangeBegin(Exchange exchange) {
@@ -72,11 +77,24 @@ public class MicrometerRoutePolicy extends RoutePolicySupport implements NonMana
.register(meterRegistry);
sample.stop(timer);
}
+
+ if (exchange.isFailed()) {
+ exchangesFailed.increment();
+ } else {
+ exchangesSucceeded.increment();
+ }
}
private String propertyName(Exchange exchange) {
return String.format("%s-%s-%s", DEFAULT_CAMEL_ROUTE_POLICY_METER_NAME, route.getId(), exchange.getExchangeId());
}
+
+ private Counter createCounter(String meterName) {
+ return Counter.builder(meterName)
+ .tags(namingStrategy.getExchangeStatusTags(route))
+ .description(route.getDescription())
+ .register(meterRegistry);
+ }
}
diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyNamingStrategy.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyNamingStrategy.java
index 00cd0b66..c1c205b 100644
--- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyNamingStrategy.java
+++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyNamingStrategy.java
@@ -24,6 +24,8 @@ import org.apache.camel.Exchange;
import org.apache.camel.Route;
import static org.apache.camel.component.micrometer.MicrometerConstants.CAMEL_CONTEXT_TAG;
+import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_FAILED_METER_NAME;
+import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_SUCCEEDED_METER_NAME;
import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_CAMEL_ROUTE_POLICY_METER_NAME;
import static org.apache.camel.component.micrometer.MicrometerConstants.FAILED_TAG;
import static org.apache.camel.component.micrometer.MicrometerConstants.ROUTE_ID_TAG;
@@ -40,6 +42,14 @@ public interface MicrometerRoutePolicyNamingStrategy {
String getName(Route route);
+ default String getExchangesSucceededName(Route route) {
+ return DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_SUCCEEDED_METER_NAME;
+ }
+
+ default String getExchangesFailedName(Route route) {
+ return DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_FAILED_METER_NAME;
+ }
+
default Tags getTags(Route route, Exchange exchange) {
return Tags.of(
CAMEL_CONTEXT_TAG, route.getCamelContext().getName(),
@@ -49,4 +59,11 @@ public interface MicrometerRoutePolicyNamingStrategy {
);
}
+ default Tags getExchangeStatusTags(Route route) {
+ return Tags.of(
+ CAMEL_CONTEXT_TAG, route.getCamelContext().getName(),
+ SERVICE_NAME, MicrometerRoutePolicyService.class.getSimpleName(),
+ ROUTE_ID_TAG, route.getId()
+ );
+ }
}
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/eventNotifier/MicrometerExchangeEventNotifierTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/eventNotifier/MicrometerExchangeEventNotifierTest.java
index 5ccf666..e56d481 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/eventNotifier/MicrometerExchangeEventNotifierTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/eventNotifier/MicrometerExchangeEventNotifierTest.java
@@ -28,6 +28,9 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.support.ExpressionAdapter;
import org.junit.Test;
+import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_CAMEL_ROUTES_EXCHANGES_INFLIGHT;
+import static org.apache.camel.component.micrometer.MicrometerConstants.ROUTE_ID_TAG;
+
public class MicrometerExchangeEventNotifierTest extends AbstractMicrometerEventNotifierTest {
private static final String ROUTE_ID = "test";
@@ -50,6 +53,7 @@ public class MicrometerExchangeEventNotifierTest extends AbstractMicrometerEvent
@Override
public Object evaluate(Exchange exchange) {
try {
+ assertEquals(1.0D, currentInflightExchanges(), 0.1D);
Thread.sleep(SLEEP);
return exchange.getIn().getBody();
} catch (InterruptedException e) {
@@ -63,9 +67,16 @@ public class MicrometerExchangeEventNotifierTest extends AbstractMicrometerEvent
for (int i = 0; i < count; i++) {
template.sendBody(DIRECT_IN, new Object());
}
+
+ mock.assertIsSatisfied();
Timer timer = meterRegistry.find(MOCK_OUT).timer();
assertEquals(count, timer.count());
assertTrue(timer.mean(TimeUnit.MILLISECONDS) > SLEEP.doubleValue());
+ assertEquals(0.0D, currentInflightExchanges(), 0.1D);
+ }
+
+ private double currentInflightExchanges() {
+ return meterRegistry.find(DEFAULT_CAMEL_ROUTES_EXCHANGES_INFLIGHT).tag(ROUTE_ID_TAG, ROUTE_ID).gauge().value();
}
@Override
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ManagedMicrometerRoutePolicyTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ManagedMicrometerRoutePolicyTest.java
index 2d209ba..63c4a83 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ManagedMicrometerRoutePolicyTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ManagedMicrometerRoutePolicyTest.java
@@ -48,9 +48,9 @@ public class ManagedMicrometerRoutePolicyTest extends AbstractMicrometerRoutePol
assertMockEndpointsSatisfied();
- // there should be 3 names
+ // there should be 7 names
List<Meter> meters = meterRegistry.getMeters();
- assertEquals(3, meters.size());
+ assertEquals(7, meters.size());
String name = String.format("org.apache.camel:context=%s,type=services,name=MicrometerRoutePolicyService", context.getManagementName());
ObjectName on = ObjectName.getInstance(name);
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyExchangeStatusTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyExchangeStatusTest.java
new file mode 100644
index 0000000..7f2e94d
--- /dev/null
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyExchangeStatusTest.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.micrometer.routepolicy;
+
+import io.micrometer.core.instrument.Counter;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.Test;
+
+import static org.apache.camel.component.micrometer.MicrometerConstants.*;
+
+public class MicrometerRoutePolicyExchangeStatusTest extends AbstractMicrometerRoutePolicyTest {
+
+ @Test
+ public void testMetricsExchangeStatus() throws Exception {
+ int count = 10;
+ MockEndpoint mockEndpoint = getMockEndpoint("mock:result");
+ mockEndpoint.expectedMessageCount(count / 2);
+
+ for (int i = 0; i < count; i++) {
+ if (i % 2 == 0) {
+ template.sendBody("direct:completing", "Hello");
+ } else {
+ assertThrows(RuntimeException.class, () -> template.sendBody("direct:failing", "Hello"));
+ }
+ }
+
+ assertMockEndpointsSatisfied();
+ Counter exchangesSucceededCounter = meterRegistry.find(DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_SUCCEEDED_METER_NAME).tag(ROUTE_ID_TAG, "completing").counter();
+ Counter exchangesFailedCounter = meterRegistry.find(DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_FAILED_METER_NAME).tag(ROUTE_ID_TAG, "failing").counter();
+ assertEquals(count / 2.0D, exchangesSucceededCounter.count(), 0.01D);
+ assertEquals(count / 2.0D, exchangesFailedCounter.count(), 0.01D);
+
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+ from("direct:completing").routeId("completing")
+ .to("mock:result");
+
+ from("direct:failing").routeId("failing")
+ .throwException(RuntimeException.class, "Failing")
+ .to("mock:result");
+ }
+ };
+ }
+}
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyMulticastSubRouteTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyMulticastSubRouteTest.java
index 3ca4b08..acdba8e 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyMulticastSubRouteTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicyMulticastSubRouteTest.java
@@ -18,11 +18,14 @@ package org.apache.camel.component.micrometer.routepolicy;
import java.util.List;
+import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.Timer;
import org.apache.camel.builder.RouteBuilder;
import org.junit.Test;
+import static org.apache.camel.component.micrometer.MicrometerConstants.*;
+
/**
* CAMEL-9226 - check metrics are counted correctly in multicast sub-routes
*/
@@ -42,14 +45,32 @@ public class MicrometerRoutePolicyMulticastSubRouteTest extends AbstractMicromet
assertMockEndpointsSatisfied();
- // there should be 3 names
+ // there should be 9 names
List<Meter> meters = meterRegistry.getMeters();
- assertEquals(3, meters.size());
-
+ assertEquals(9, meters.size());
meters.forEach(meter -> {
- Timer timer = (Timer) meter;
- assertEquals("Timer " + timer.getId() + " should have count of " + count, count, timer.count());
+ String meterName = meter.getId().getName();
+ switch (meterName) {
+ case DEFAULT_CAMEL_ROUTE_POLICY_METER_NAME:
+ Timer timer = (Timer) meter;
+ assertEquals("Timer " + timer.getId() + " should have count of " + count, count, timer.count());
+ break;
+ case DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_SUCCEEDED_METER_NAME: {
+ Counter counter = (Counter) meter;
+ assertEquals("Counter " + counter.getId() + " should have count of " + count, count, counter.count(), 0.01D);
+ break;
+ }
+ case DEFAULT_CAMEL_ROUTE_POLICY_EXCHANGES_FAILED_METER_NAME: {
+ Counter counter = (Counter) meter;
+ assertEquals("Counter " + counter.getId() + " should have count of " + 0, 0, counter.count(), 0.01D);
+ break;
+ }
+ default: {
+ fail("Unexpected meter " + meterName);
+ break;
+ }
+ }
});
}
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicySubRouteTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicySubRouteTest.java
index 9478831..b424d12 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicySubRouteTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerRoutePolicySubRouteTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.micrometer.routepolicy;
import java.util.List;
+import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.Timer;
import org.apache.camel.builder.RouteBuilder;
@@ -37,10 +38,10 @@ public class MicrometerRoutePolicySubRouteTest extends AbstractMicrometerRoutePo
assertMockEndpointsSatisfied();
- // there should be 2 names
+ // there should be 6 names
List<Meter> meters = meterRegistry.getMeters();
- assertEquals(2, meters.size());
- meters.forEach(meter -> assertTrue(meter instanceof Timer));
+ assertEquals(6, meters.size());
+ meters.forEach(meter -> assertTrue(meter instanceof Timer || meter instanceof Counter));
}
@Override