You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/06 13:32:48 UTC
(camel) 03/07: CAMEL-20461: camel-micrometer - Add statistics for context level
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch mm
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 789d9578e70719e140b90505c79f1ff67a95e279
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Mar 6 09:44:25 2024 +0100
CAMEL-20461: camel-micrometer - Add statistics for context level
---
.../prometheus/MicrometerPrometheus.java | 2 ++
.../messagehistory/ManagedMessageHistoryTest.java | 11 +++++++-
.../AbstractMicrometerRoutePolicyTest.java | 29 +++++++++++-----------
.../ManagedMicrometerRoutePolicyTest.java | 5 ++++
.../routepolicy/MicrometerContextPolicyTest.java | 5 ++--
....java => ZMicrometerContextOnlyPolicyTest.java} | 6 ++---
6 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java b/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
index e9a16feb5a6..7174f6c0831 100644
--- a/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
+++ b/components/camel-micrometer-prometheus/src/main/java/org/apache/camel/component/micrometer/prometheus/MicrometerPrometheus.java
@@ -264,6 +264,8 @@ public class MicrometerPrometheus extends ServiceSupport implements CamelMetrics
factory.getPolicyConfiguration().setRouteEnabled(true);
}
factory.setMeterRegistry(meterRegistry);
+ // ensure factory will be started and stopped
+ camelContext.addService(factory);
camelContext.addRoutePolicyFactory(factory);
}
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/messagehistory/ManagedMessageHistoryTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/messagehistory/ManagedMessageHistoryTest.java
index 7125f9d5ab8..030b6a6cd08 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/messagehistory/ManagedMessageHistoryTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/messagehistory/ManagedMessageHistoryTest.java
@@ -63,6 +63,16 @@ public class ManagedMessageHistoryTest extends CamelTestSupport {
meterRegistry.add(new JmxMeterRegistry(CamelJmxConfig.DEFAULT, Clock.SYSTEM, HierarchicalNameMapper.DEFAULT));
}
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ if (meterRegistry != null) {
+ meterRegistry.clear();
+ meterRegistry.close();
+ meterRegistry = null;
+ }
+ }
+
@Override
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
@@ -71,7 +81,6 @@ public class ManagedMessageHistoryTest extends CamelTestSupport {
factory.setPrettyPrint(true);
factory.setMeterRegistry(meterRegistry);
context.setMessageHistoryFactory(factory);
-
return context;
}
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/AbstractMicrometerRoutePolicyTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/AbstractMicrometerRoutePolicyTest.java
index 14c39df7f17..ecd403d4c41 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/AbstractMicrometerRoutePolicyTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/AbstractMicrometerRoutePolicyTest.java
@@ -16,13 +16,9 @@
*/
package org.apache.camel.component.micrometer.routepolicy;
-import io.micrometer.core.instrument.Clock;
-import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
+import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
-import io.micrometer.core.instrument.util.HierarchicalNameMapper;
-import io.micrometer.jmx.JmxMeterRegistry;
import org.apache.camel.CamelContext;
-import org.apache.camel.component.micrometer.CamelJmxConfig;
import org.apache.camel.component.micrometer.MicrometerConstants;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.slf4j.Logger;
@@ -31,12 +27,7 @@ import org.slf4j.LoggerFactory;
public abstract class AbstractMicrometerRoutePolicyTest extends CamelTestSupport {
protected final Logger log = LoggerFactory.getLogger(getClass());
- protected CompositeMeterRegistry meterRegistry;
-
- @Override
- protected boolean useJmx() {
- return true;
- }
+ protected MeterRegistry meterRegistry;
protected MicrometerRoutePolicyFactory createMicrometerRoutePolicyFactory() {
MicrometerRoutePolicyFactory factory = new MicrometerRoutePolicyFactory();
@@ -44,22 +35,30 @@ public abstract class AbstractMicrometerRoutePolicyTest extends CamelTestSupport
return factory;
}
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ if (meterRegistry != null) {
+ meterRegistry.clear();
+ meterRegistry.close();
+ meterRegistry = null;
+ }
+ }
+
protected String formatMetricName(String name) {
return name;
}
@Override
protected CamelContext createCamelContext() throws Exception {
- meterRegistry = new CompositeMeterRegistry();
- meterRegistry.add(new SimpleMeterRegistry());
- meterRegistry.add(new JmxMeterRegistry(CamelJmxConfig.DEFAULT, Clock.SYSTEM, HierarchicalNameMapper.DEFAULT));
-
+ meterRegistry = new SimpleMeterRegistry();
CamelContext context = super.createCamelContext();
MicrometerRoutePolicyFactory factory = createMicrometerRoutePolicyFactory();
factory.setCamelContext(context);
factory.setMeterRegistry(meterRegistry);
context.addRoutePolicyFactory(factory);
context.getRegistry().bind(MicrometerConstants.METRICS_REGISTRY_NAME, meterRegistry);
+ context.addService(factory);
return context;
}
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 634ce915819..399655f58d0 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
@@ -33,6 +33,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class ManagedMicrometerRoutePolicyTest extends AbstractMicrometerRoutePolicyTest {
+ @Override
+ protected boolean useJmx() {
+ return true;
+ }
+
protected MBeanServer getMBeanServer() {
return context.getManagementStrategy().getManagementAgent().getMBeanServer();
}
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java
index d5badf455a6..5ed646ffd70 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java
@@ -34,7 +34,6 @@ public class MicrometerContextPolicyTest extends AbstractMicrometerRoutePolicyTe
protected MicrometerRoutePolicyFactory createMicrometerRoutePolicyFactory() {
MicrometerRoutePolicyFactory factory = super.createMicrometerRoutePolicyFactory();
factory.getPolicyConfiguration().setContextEnabled(true);
- factory.getPolicyConfiguration().setRouteEnabled(false);
return factory;
}
@@ -54,10 +53,10 @@ public class MicrometerContextPolicyTest extends AbstractMicrometerRoutePolicyTe
MockEndpoint.assertIsSatisfied(context);
- Timer fooTimer
+ Timer contextTimer
= meterRegistry.find(formatMetricName(DEFAULT_CAMEL_ROUTE_POLICY_METER_NAME)).tag(EVENT_TYPE_TAG, "context")
.timer();
- assertEquals(count, fooTimer.count());
+ assertEquals(count, contextTimer.count());
}
@Override
diff --git a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ZMicrometerContextOnlyPolicyTest.java
similarity index 94%
copy from components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java
copy to components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ZMicrometerContextOnlyPolicyTest.java
index d5badf455a6..360bfeff5aa 100644
--- a/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/MicrometerContextPolicyTest.java
+++ b/components/camel-micrometer/src/test/java/org/apache/camel/component/micrometer/routepolicy/ZMicrometerContextOnlyPolicyTest.java
@@ -25,7 +25,7 @@ import static org.apache.camel.component.micrometer.MicrometerConstants.DEFAULT_
import static org.apache.camel.component.micrometer.MicrometerConstants.EVENT_TYPE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
-public class MicrometerContextPolicyTest extends AbstractMicrometerRoutePolicyTest {
+public class ZMicrometerContextOnlyPolicyTest extends AbstractMicrometerRoutePolicyTest {
private static final long DELAY_FOO = 20;
private static final long DELAY_BAR = 50;
@@ -54,10 +54,10 @@ public class MicrometerContextPolicyTest extends AbstractMicrometerRoutePolicyTe
MockEndpoint.assertIsSatisfied(context);
- Timer fooTimer
+ Timer contextTimer
= meterRegistry.find(formatMetricName(DEFAULT_CAMEL_ROUTE_POLICY_METER_NAME)).tag(EVENT_TYPE_TAG, "context")
.timer();
- assertEquals(count, fooTimer.count());
+ assertEquals(count, contextTimer.count());
}
@Override