use of com.googlecode.jmxtrans.model.JmxProcess in project jmxtrans by jmxtrans.
the class JsonUtils method parseProcess.
/**
* Uses jackson to load json configuration from a File into a full object
* tree representation of that json.
*/
public JmxProcess parseProcess(File file) throws IOException {
JsonNode jsonNode = mapper.readTree(file);
JmxProcess jmx = mapper.treeToValue(jsonNode, JmxProcess.class);
jmx.setName(file.getName());
return jmx;
}
use of com.googlecode.jmxtrans.model.JmxProcess in project jmxtrans by jmxtrans.
the class JsonUtilsTest method loadFromFile.
private void loadFromFile(String file) throws URISyntaxException, IOException, MalformedObjectNameException {
File input = new File(JsonUtilsTest.class.getResource("/" + file).toURI());
JmxProcess process = jsonUtils.parseProcess(input);
assertThat(process.getName()).isEqualTo(file);
Server server = process.getServers().get(0);
assertThat(server.getPort()).isEqualTo("1099");
assertThat(server.getNumQueryThreads()).isEqualTo(2);
Optional<Query> queryOptional = from(server.getQueries()).firstMatch(new ByObj("java.lang:type=Memory"));
assertThat(queryOptional.isPresent()).isTrue();
assertThat(queryOptional.get().getAttr().get(0)).isEqualTo("HeapMemoryUsage");
}
use of com.googlecode.jmxtrans.model.JmxProcess in project jmxtrans by jmxtrans.
the class ActiveMQ method main.
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);
}
use of com.googlecode.jmxtrans.model.JmxProcess in project jmxtrans by jmxtrans.
the class ActiveMQ2 method main.
@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").addOutputWriterFactory(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").addOutputWriterFactory(gw).build()).build());
jsonPrinter.prettyPrint(process);
Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration());
JmxTransformer transformer = injector.getInstance(JmxTransformer.class);
transformer.executeStandalone(process);
}
use of com.googlecode.jmxtrans.model.JmxProcess in project jmxtrans by jmxtrans.
the class Ehcache method main.
/** */
public static void main(String[] args) throws Exception {
JmxProcess process = new JmxProcess(Server.builder().setHost("w2").setPort("1099").setAlias("w2_ehcache_1099").addQuery(Query.builder().setObj("net.sf.ehcache:CacheManager=net.sf.ehcache.CacheManager@*,name=*,type=CacheStatistics").addAttr("CacheHits").addAttr("InMemoryHits").addAttr("OnDiskHits").addAttr("CacheMisses").addAttr("ObjectCount").addAttr("MemoryStoreObjectCount").addAttr("DiskStoreObjectCount").addOutputWriterFactory(GraphiteWriter.builder().addTypeName("name").setDebugEnabled(true).setHost(GW_HOST).setPort(2003).build()).build()).build());
printer.prettyPrint(process);
Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration());
JmxTransformer transformer = injector.getInstance(JmxTransformer.class);
transformer.executeStandalone(process);
}
Aggregations