def os = ManagementFactory.operatingSystemMXBean println """OPERATING SYSTEM: OS architecture = $os.arch OS name = $os.name OS version = $os.version OS processors = $os.availableProcessors """
def rt = ManagementFactory.runtimeMXBean println """RUNTIME: Runtime name = $rt.name Runtime spec name = $rt.specName Runtime vendor = $rt.specVendor Runtime spec version = $rt.specVersion Runtime management spec version = $rt.managementSpecVersion """
GARBAGE COLLECTION: name = Copy collection count = 15 collection time = 47 mpool name = Eden Space mpool name = Survivor Space
name = MarkSweepCompact collection count = 0 collection time = 0
mpool name = Eden Space mpool name = Survivor Space mpool name = Tenured Gen mpool name = Perm Gen mpool name = Perm Gen [shared-ro] mpool name = Perm Gen [shared-rw]
监控Tomcat
为了监视tomcat,在启动tomcat时应设置以下参数 –
1 2 3 4 5
set JAVA_OPTS = -Dcom.sun.management.jmxremote Dcom.sun.management.jmxremote.port = 9004
import javax.management.ObjectName import javax.management.remote.JMXConnectorFactory as JmxFactory import javax.management.remote.JMXServiceURL as JmxUrl import javax.swing.WindowConstants as WC
import org.jfree.chart.ChartFactory import org.jfree.data.category.DefaultCategoryDataset as Dataset import org.jfree.chart.plot.PlotOrientation as Orientation
def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:9004/jmxrmi' def server = JmxFactory.connect(new JmxUrl(serverUrl)).MBeanServerConnection def serverInfo = new GroovyMBean(server, 'Catalina:type = Server').serverInfo println "Connected to: $serverInfo"
def query = new ObjectName('Catalina:*') String[] allNames = server.queryNames(query, null)
def modules = allNames.findAll { name -> name.contains('j2eeType=WebModule') }.collect{ new GroovyMBean(server, it) }
println "Found ${modules.size()} web modules. Processing ..." def dataset = new Dataset()