public static void main(String[] args) throws Exception { Server.Builder serverBuilder = Server.builder().setHost("w2").setPort("1105").setAlias("w2_activemq_1105"); GraphiteWriter gw = GraphiteWriter.builder() .addTypeName("destinationName") .addTypeName("Destination") .setDebugEnabled(true) .setHost(GW_HOST) .setPort(2003) .build(); Query q = Query.builder() .setObj( "org.apache.activemq:BrokerName=localhost,Type=Subscription,clientId=*,consumerId=*,destinationName=*,destinationType=Queue,persistentMode=Non-Durable") .addAttr("PendingQueueSize") .addAttr("DispatchedQueueSize") .addAttr("EnqueueCounter") .addAttr("DequeueCounter") .addAttr("MessageCountAwaitingAcknowledge") .addAttr("DispachedCounter") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q); Query q2 = Query.builder() .setObj( "org.apache.activemq:BrokerName=localhost,Destination=ActiveMQ.Advisory.Consumer.Queue.*,Type=Topic") .addAttr("QueueSize") .addAttr("MaxEnqueueTime") .addAttr("MinEnqueueTime") .addAttr("AverageEnqueueTime") .addAttr("InFlightCount") .addAttr("ConsumerCount") .addAttr("ProducerCount") .addAttr("DispatchCount") .addAttr("DequeueCount") .addAttr("EnqueueCount") .addAttr("Subscriptions") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q2); Query q3 = Query.builder() .setObj("org.apache.activemq:BrokerName=localhost,Destination=*,Type=Queue") .addAttr("QueueSize") .addAttr("MaxEnqueueTime") .addAttr("MinEnqueueTime") .addAttr("AverageEnqueueTime") .addAttr("InFlightCount") .addAttr("ConsumerCount") .addAttr("ProducerCount") .addAttr("DispatchCount") .addAttr("DequeueCount") .addAttr("EnqueueCount") .addAttr("Subscriptions") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q3); Query q4 = Query.builder() .setObj("org.apache.activemq:BrokerName=localhost,Destination=*,Type=Topic") .addAttr("QueueSize") .addAttr("MaxEnqueueTime") .addAttr("MinEnqueueTime") .addAttr("AverageEnqueueTime") .addAttr("InFlightCount") .addAttr("ConsumerCount") .addAttr("ProducerCount") .addAttr("DispatchCount") .addAttr("DequeueCount") .addAttr("EnqueueCount") .addAttr("Subscriptions") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q4); Query q5 = Query.builder() .setObj("org.apache.activemq:BrokerName=localhost,Type=Broker") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q5); Query q6 = Query.builder() .setObj("java.lang:type=Memory") .addAttr("HeapMemoryUsage") .addAttr("NonHeapMemoryUsage") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q6); Query q7 = Query.builder() .setObj("java.lang:type=Threading") .addAttr("DaemonThreadCount") .addAttr("PeakThreadCount") .addAttr("ThreadCount") .addAttr("CurrentThreadCpuTime") .addAttr("CurrentThreadUserTime") .addAttr("TotalStartedThreadCount") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q7); Query q8 = Query.builder() .setObj("java.lang:name=*,type=GarbageCollector") .addKey("committed") .addKey("init") .addKey("max") .addKey("used") .addKey("duration") .addKey("CollectionCount") .addKey("CollectionTime") .addOutputWriterFactory(gw) .build(); serverBuilder.addQuery(q8); Query q9 = Query.builder() .setObj("java.lang:type=MemoryPool,name=*") .addOutputWriterFactory( GraphiteWriter.builder() .addTypeName("name") .setDebugEnabled(true) .setHost(GW_HOST) .setPort(2003) .build()) .build(); serverBuilder.addQuery(q9); JmxProcess process = new JmxProcess(serverBuilder.build()); new JsonPrinter(System.out).prettyPrint(process); Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration()); JmxTransformer transformer = injector.getInstance(JmxTransformer.class); transformer.executeStandalone(process); }
@SuppressFBWarnings( value = "DMI_HARDCODED_ABSOLUTE_FILENAME", justification = "Path to RRD binary is hardcoded as this is example code") public static void main(String[] args) throws Exception { File outputFile = new File("target/w2-TEST.rrd"); if (!outputFile.exists() && !outputFile.createNewFile()) { throw new IOException("Could not create output file"); } RRDToolWriter gw = RRDToolWriter.builder() .setTemplateFile(new File("memorypool-rrd-template.xml")) .setOutputFile(outputFile) .setBinaryPath(new File("/opt/local/bin")) .setDebugEnabled(true) .setGenerate(true) .addTypeName("Destination") .build(); JmxProcess process = new JmxProcess( Server.builder() .setHost("w2") .setPort("1105") .setAlias("w2_activemq_1105") .addQuery( Query.builder() .setObj("org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=*") .addAttr("QueueSize") .addAttr("MaxEnqueueTime") .addAttr("MinEnqueueTime") .addAttr("AverageEnqueueTime") .addAttr("InFlightCount") .addAttr("ConsumerCount") .addAttr("ProducerCount") .addAttr("DispatchCount") .addAttr("DequeueCount") .addAttr("EnqueueCount") .addOutputWriter(gw) .build()) .addQuery( Query.builder() .setObj("org.apache.activemq:BrokerName=localhost,Type=Topic,Destination=*") .addAttr("QueueSize") .addAttr("MaxEnqueueTime") .addAttr("MinEnqueueTime") .addAttr("AverageEnqueueTime") .addAttr("InFlightCount") .addAttr("ConsumerCount") .addAttr("ProducerCount") .addAttr("DispatchCount") .addAttr("DequeueCount") .addAttr("EnqueueCount") .addOutputWriter(gw) .build()) .build()); jsonPrinter.prettyPrint(process); Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration()); JmxTransformer transformer = injector.getInstance(JmxTransformer.class); transformer.executeStandalone(process); }