Ich habe ein Spring-Boot-Projekt, bei dem ich Spring-Boot-Starter-Aktor und io.dropwizard.metrics verwende.Jconsole kann keine Verbindung zur lokalen jmx-Anwendung herstellen
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
</dependency>
Es erzeugt Metrics, die ich mit der URL http://myapplication/metrics zugreifen können. Ich stelle die Anwendung auf einem eigenständigen Wildfly 10-Server bereit.
Ich möchte mit jmx die Metriken auf jconsole lesen. ich konfigurieren, dass die Anwendungsmetriken mit einem JMXReporter senden:
@Configuration
@EnableMetrics
public class MetricsConfiguration extends MetricsConfigurerAdapter {
@Override
public void configureReporters(MetricRegistry metricRegistry) {
registerReporter(JmxReporter.forRegistry(metricRegistry)
.build())
.start();
}
}
Wenn ich den Server und stellen Sie die Anwendung starten, Protokolle sagen:
osbaejEndpointMBeanExporter liegt Managed Bean 'metricsEndpoint': Registrierung mit JMX-Server als MBean [portal-ws-JMX: type = Endpunkt, name = metricsEndpoint]
Wenn ich jconsole ausführen, gibt es in der Liste Lokaler Prozess nur JConsole-Prozess und einige graue PID. Wenn ich eine graue PID wähle, heißt es "Der Management Agent ist bei diesem Prozess nicht aktiviert".
Ich habe auch versucht Verbindung des Remote-Prozess zu verwenden:
- Service: JMX: http-Remoting-JMX: // localhost: 9990
- Service: JMX: remote + http://localhost:9990
- localhost: 9990
Aber das funktioniert nicht.
Ich versuchte, die Jvm Variablen zu setzen:
- -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only = false
und die Eigenschaft:
- spring.jmx.enabled = true
Es funktioniert auch nicht.
Was kann ich tun jmx Metriken mit jconsole lesen?
Danke für Ihre Antwort. Ich versuche das, aber es funktioniert nicht. Ich denke mein Problem wird durch Wildfliege verursacht. – YLombardi