2017-02-23 5 views
1

Wollte dies, weil ich viel gesucht und konnte keine Lösung finden.Jmeter PerfMon Metrics Sammlung auf verschiedenen Jmx-Port

Mit Jmeter und ServerAgent (2.2.1) hatte ich Probleme, es auf einem benutzerdefinierten JMX-Port (nicht 4711) zu arbeiten. Pro der Dokumentation müssen Sie die Parameter wie so angeben:

By default the Server Agent will try to connect to JMX server at localhost with port 4711. If you started JMX server at different host/port or using authentication with username/password, please, use following additional parameters: 

url=<hostname>\:<port> 
user=<username> 
password=<password> 
Available JMX metric types: 

gc-time - time spent in garbage collection, milliseconds (used method) 
memory-usage - heap memory used by VM, bytes (method used) 
memory-committed - heap memory committed by VM, bytes (method used) 
memorypool-usage - heap memory pool usage, bytes (method used) 
memorypool-committed - heap memory pool committed size, bytes (method used) 
class-count - loaded class count in VM (used method) 
compile-time - time spent in compilation, milliseconds (used method) 
Examples: 

gc-time - monitor GC time at localhost:4711 
memory-usage:url=somehost.com\:4715 - use alternative hostname/password 
class-count:url=somehost.com\:4715:user=apc:password=SecurityPlease123 - some secure setup access 

Source

Also habe ich versucht, dass mit

localhost 4444 JMX gc-Zeit: url = localhost: 9080

Diese Allerdings führte der Server-Agent die folgende Stapelverfolgung

INFO 2017-02-23 20:53:51.352 [kg.apc.p](): Starting measures: jmx:gc-time:url=localhost\:9080 
ERROR 2017-02-23 20:53:51.445 [kg.apc.p](): Failed to get MX Bean data provider 
java.lang.IllegalArgumentException: Can't define JMX type 
     at kg.apc.perfmon.metrics.jmx.AbstractJMXDataProvider.getProvider(AbstractJMXDataProvider.java:48) 
     at kg.apc.perfmon.metrics.JMXMetric.<init>(JMXMetric.java:42) 
     at kg.apc.perfmon.metrics.AbstractPerfMonMetric.createMetric(AbstractPerfMonMetric.java:65) 
     at kg.apc.perfmon.PerfMonMetricGetter.setUpMetrics(PerfMonMetricGetter.java:138) 
     at kg.apc.perfmon.PerfMonMetricGetter.processCommand(PerfMonMetricGetter.java:63) 
     at kg.apc.perfmon.PerfMonMetricGetter.processNextCommand(PerfMonMetricGetter.java:101) 
     at kg.apc.perfmon.PerfMonWorker.read(PerfMonWorker.java:210) 
     at kg.apc.perfmon.PerfMonWorker.processCommands(PerfMonWorker.java:97) 
     at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72) 
     at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63) 
     at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:175) 
ERROR 2017-02-23 20:53:51.446 [kg.apc.p](): Invalid metric specified: jmx 
java.lang.RuntimeException: Failed to get MX Bean data provider 
     at kg.apc.perfmon.metrics.JMXMetric.<init>(JMXMetric.java:45) 
     at kg.apc.perfmon.metrics.AbstractPerfMonMetric.createMetric(AbstractPerfMonMetric.java:65) 
     at kg.apc.perfmon.PerfMonMetricGetter.setUpMetrics(PerfMonMetricGetter.java:138) 
     at kg.apc.perfmon.PerfMonMetricGetter.processCommand(PerfMonMetricGetter.java:63) 
     at kg.apc.perfmon.PerfMonMetricGetter.processNextCommand(PerfMonMetricGetter.java:101) 
     at kg.apc.perfmon.PerfMonWorker.read(PerfMonWorker.java:210) 
     at kg.apc.perfmon.PerfMonWorker.processCommands(PerfMonWorker.java:97) 
     at kg.apc.perfmon.AgentTool.processParams(AgentTool.java:72) 
     at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:63) 
     at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:23) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:175) 
Caused by: java.lang.IllegalArgumentException: Can't define JMX type 
     at kg.apc.perfmon.metrics.jmx.AbstractJMXDataProvider.getProvider(AbstractJMXDataProvider.java:48) 
     at kg.apc.perfmon.metrics.JMXMetric.<init>(JMXMetric.java:42) 
     ... 14 more 

Die Lösung war unglaublich, den URL-Teil zuerst zu setzen. Hoffentlich findet jemand diese Seite und Zeit kann gespeichert werden.

z.B.

url = localhost: 9080: gc-Zeit

Antwort

0

Ich kenne das Problem, Sie sind in Ihrer JMeter Überwachung nicht mit JMX-Port, aber Sie könnten Anwendung Port verwenden, aber JMeter Überwachung erforderlich Port JMX.

Überprüfen Sie Ihre Anwendungsserver auf JMX-Portdetails. Unten sind die am häufigsten verwendeten Anwendungsserver und Schritt zu folgen, um Port-Details zu erhalten.

„Tomcat“: In catalina.sh oder setenv.sh-Datei nach „Dcom.sun.management.jmxremote.port“ = 9004, wenn Sie diesen Eintrag nicht gesehen bereites Tomcatbediener konfigurieren, indem Sie folgende Link unten https://www.mkyong.com/tomcat/jconsole-jmx-remote-access-on-tomcat/

Jboss: In standalone.conf sucht „Dcom.sun.management.jmxremote.port“ = 9004, wenn Sie diesen Eintrag nicht gesehen werden versuchen, Ihren Tomcatbediener untenstehenden Link, indem Sie konfigurieren Connect to JBoss 7 using VisualVM.

Sobald Sie JMX-Port haben, wird JMeter in der Lage sein zu überwachen.

Monitoring Demo App: 


    1. Start you JMeter instance 
    2. Start java application (New instance jmeter, cd {JMeter_home}/bin) using following command 

     java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6969 -Dcom.sun.management.jmxremote.rmi.port=6969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar ApacheJMeter.jar 

    3. Download jmeter_mon.jmx file from Github using [link][1] 
    4. Open "jmeter_mon.jmx" file from JMeter instance 1. 
    5. Start Server monitoring script sh {ServerAgent}/startAgent.sh 
    6. Run the Jmeter 
+0

Madhu, danke für Ihre Antwort, aber wenn Sie das Ganze lesen, schrieb ich die Antwort in meiner Frage als Referenz für diejenigen, die das gleiche Problem haben können – joecoder