ARTEMIS-4456 Register metrics plugin
This commit is contained in:
parent
b8bb560ff0
commit
c27b7b65c7
|
@ -3367,6 +3367,10 @@ public class ActiveMQServerImpl implements ActiveMQServer {
|
||||||
registerBrokerPlugins(getBrokerPlugins());
|
registerBrokerPlugins(getBrokerPlugins());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (configuration.getMetricsConfiguration() != null && configuration.getMetricsConfiguration().getPlugin() != null) {
|
||||||
|
configuration.getMetricsConfiguration().getPlugin().registered(this);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,19 @@ import java.io.Serializable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import io.micrometer.core.instrument.MeterRegistry;
|
import io.micrometer.core.instrument.MeterRegistry;
|
||||||
|
import org.apache.activemq.artemis.core.server.ActiveMQServer;
|
||||||
|
|
||||||
public interface ActiveMQMetricsPlugin extends Serializable {
|
public interface ActiveMQMetricsPlugin extends Serializable {
|
||||||
|
|
||||||
ActiveMQMetricsPlugin init(Map<String, String> options);
|
ActiveMQMetricsPlugin init(Map<String, String> options);
|
||||||
|
|
||||||
MeterRegistry getRegistry();
|
MeterRegistry getRegistry();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The plugin has been registered with the server
|
||||||
|
*
|
||||||
|
* @param server The ActiveMQServer the plugin has been registered to
|
||||||
|
*/
|
||||||
|
default void registered(ActiveMQServer server) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.util.Map;
|
||||||
|
|
||||||
import io.micrometer.core.instrument.MeterRegistry;
|
import io.micrometer.core.instrument.MeterRegistry;
|
||||||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||||
|
import org.apache.activemq.artemis.core.server.ActiveMQServer;
|
||||||
import org.apache.activemq.artemis.core.server.metrics.ActiveMQMetricsPlugin;
|
import org.apache.activemq.artemis.core.server.metrics.ActiveMQMetricsPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,6 +32,8 @@ public class SimpleMetricsPlugin implements ActiveMQMetricsPlugin {
|
||||||
|
|
||||||
private Map<String, String> options;
|
private Map<String, String> options;
|
||||||
|
|
||||||
|
private ActiveMQServer server;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActiveMQMetricsPlugin init(Map<String, String> options) {
|
public ActiveMQMetricsPlugin init(Map<String, String> options) {
|
||||||
this.meterRegistry = new SimpleMeterRegistry();
|
this.meterRegistry = new SimpleMeterRegistry();
|
||||||
|
@ -43,7 +46,16 @@ public class SimpleMetricsPlugin implements ActiveMQMetricsPlugin {
|
||||||
return meterRegistry;
|
return meterRegistry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registered(ActiveMQServer server) {
|
||||||
|
this.server = server;
|
||||||
|
}
|
||||||
|
|
||||||
public Map<String, String> getOptions() {
|
public Map<String, String> getOptions() {
|
||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ActiveMQServer getServer() {
|
||||||
|
return server;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -270,6 +270,12 @@ public class MetricsPluginTest extends ActiveMQTestBase {
|
||||||
checkMetric(getMetrics(), "artemis.message.count", "queue", queueName, Double.valueOf(messageCount * 2));
|
checkMetric(getMetrics(), "artemis.message.count", "queue", queueName, Double.valueOf(messageCount * 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMetricsPluginRegistration() {
|
||||||
|
assertEquals(SimpleMetricsPlugin.class, server.getConfiguration().getMetricsConfiguration().getPlugin().getClass());
|
||||||
|
assertEquals(server, ((SimpleMetricsPlugin)server.getConfiguration().getMetricsConfiguration().getPlugin()).getServer());
|
||||||
|
}
|
||||||
|
|
||||||
public Map<Meter.Id, Double> getMetrics() {
|
public Map<Meter.Id, Double> getMetrics() {
|
||||||
return getMetrics(server);
|
return getMetrics(server);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue