.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());
.setObj("java.lang:type=Memory") .addAttr("HeapMemoryUsage") .addAttr("NonHeapMemoryUsage") .addOutputWriterFactories(gw, sw) .build(); serverBuilder.addQuery(q); .setObj("java.lang:type=Threading") .addAttr("DaemonThreadCount") .addAttr("PeakThreadCount") .addAttr("ThreadCount") .addOutputWriterFactories(gw, sw) .build(); serverBuilder.addQuery(q2); .setObj("java.lang:name=ConcurrentMarkSweep,type=GarbageCollector") .addAttr("LastGcInfo") .addOutputWriterFactories(gw, sw) .build(); serverBuilder.addQuery(q3); .setObj("java.lang:name=ParNew,type=GarbageCollector") .addAttr("LastGcInfo") .addOutputWriterFactories(gw, sw) .build(); serverBuilder.addQuery(q4);
public Server build() { Server.Builder builder = Server.builder(server) .addOutputWriters(createOutputWriters(temporaryOutputWriters)) .clearQueries(); for (Map.Entry<Query, Set<OutputWriterFactory>> queryEntry : queries.entrySet()) { builder.addQuery( Query.builder(queryEntry.getKey()) .addOutputWriters(createOutputWriters(queryEntry.getValue())) .build()); } return builder.build(); }
private Query createQuery(InfluxDB influxDB, MBeanServerConnection jmxConnection, ImmutableMap<String, String> tags, String objectName, String measurementName) { InfluxDbWriter influxDbWriter = new InfluxDbWriter(influxDB, influxDatabaseName, ConsistencyLevel.ALL, influxRetentionPolicy, tags, resultAttributesToWriteAsTags, ImmutableList.of(), false ); Query query = Query.builder() .setObj(objectName) .addAttr(attributeNames(jmxConnection, objectName, new PrimitiveTypesFilter())) .setResultAlias(measurementName) .addOutputWriters(ImmutableSet.of(influxDbWriter)) .build(); return query; }
public Builder addOutputWriterFactory(OutputWriterFactory outputWriterFactory) { return addOutputWriterFactories(outputWriterFactory); }
public static Builder builder() { return new Builder(); }
public static Builder builder(Query query) { return new Builder(query); }
public Builder addKey(String keys) { return addKeys(keys); }
public static Query queryUsingDomainAsKey() { return Query.builder() .setObj("myQuery:key=val") .setUseObjDomainAsKey(true) .build(); } }
public static Query queryWithAllTypeNames() { return Query.builder() .setObj("myQuery:key=val") .setUseAllTypeNames(true) .build(); }
public static Query queryAllowingDottedKeys() { return Query.builder() .setObj("myQuery:key=val") .setAllowDottedKeys(true) .build(); }
public static Query dummyQueryWithResultAlias() { return Query.builder() .setObj("myQuery:key=val") .setResultAlias("resultAlias") .build(); }
public Server build() { Server.Builder builder = Server.builder(server) .addOutputWriters(createOutputWriters(temporaryOutputWriters)) .clearQueries(); for (Map.Entry<Query, Set<OutputWriterFactory>> queryEntry : queries.entrySet()) { builder.addQuery( Query.builder(queryEntry.getKey()) .addOutputWriters(createOutputWriters(queryEntry.getValue())) .build()); } return builder.build(); }
.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); .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); .setObj("org.apache.activemq:BrokerName=localhost,Destination=*,Type=Queue") .addAttr("QueueSize")
.setAlias("w2_hibernate_1099") .addQuery(Query.builder() .setObj("org.hibernate.jmx:name=*,type=StatisticsService") .addAttr("EntityDeleteCount") .addAttr("EntityInsertCount") .addAttr("EntityLoadCount") .addAttr("EntityFetchCount") .addAttr("EntityUpdateCount") .addAttr("QueryExecutionCount") .addAttr("QueryCacheHitCount") .addAttr("QueryExecutionMaxTime") .addAttr("QueryCacheMissCount") .addAttr("QueryCachePutCount") .addAttr("FlushCount") .addAttr("ConnectCount") .addAttr("SecondLevelCacheHitCount") .addAttr("SecondLevelCacheMissCount") .addAttr("SecondLevelCachePutCount") .addAttr("SessionCloseCount") .addAttr("SessionOpenCount") .addAttr("CollectionLoadCount") .addAttr("CollectionFetchCount") .addAttr("CollectionUpdateCount") .addAttr("CollectionRemoveCount") .addAttr("CollectionRecreateCount") .addAttr("SuccessfulTransactionCount") .addAttr("TransactionCount") .addAttr("CloseStatementCount") .addAttr("PrepareStatementCount")
.setAlias("fooalias") .addQuery(Query.builder() .setObj("java.lang:type=GarbageCollector,name=ConcurrentMarkSweep") .addOutputWriterFactory(GangliaWriter.builder() .setHost("10.0.3.16") .setPort(8649) .setGroupName("memory") .build()) .build()) .build())); .setAlias("fooalias") .addQuery(Query.builder() .setObj("java.lang:type=GarbageCollector,name=ConcurrentMarkSweep") .addOutputWriterFactory(GangliaWriter.builder() .setHost("10.0.3.16") .setPort(8649) .setGroupName("memory") .build()) .build()) .build()));
.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) .setPort(2003) .build()) .build()) .build());
/** */ public static void main(String[] args) throws Exception { Server server = Server.builder() .setHost("w2") .setPort("1099") .setNumQueryThreads(2) .addQuery(Query.builder() .setObj("java.lang:type=Memory") .addAttr("HeapMemoryUsage", "NonHeapMemoryUsage") .addOutputWriterFactory(new StdOutWriter(ImmutableList.<String>of(), false, false, null, Collections.<String, Object>emptyMap())) .build()) .addQuery(Query.builder() .setObj("java.lang:name=CMS Old Gen,type=MemoryPool") .addAttr("Usage") .addOutputWriterFactory(new StdOutWriter(ImmutableList.<String>of(), false, false, null, Collections.<String, Object>emptyMap())) .build()) .addQuery(Query.builder() .setObj("java.lang:name=ConcurrentMarkSweep,type=GarbageCollector") .addAttr("LastGcInfo") .addOutputWriterFactory(new StdOutWriter(ImmutableList.<String>of(), false, false, null, Collections.<String, Object>emptyMap())) .build()) .build(); JmxProcess process = new JmxProcess(server); printer.prettyPrint(process); Injector injector = JmxTransModule.createInjector(new JmxTransConfiguration()); JmxTransformer transformer = injector.getInstance(JmxTransformer.class); transformer.executeStandalone(process); }