queryBuilder.addAttr(attrInfo.getName());
public void walkTree(MBeanServerConnection connection, Server server) throws Exception { // key here is null, null returns everything! Set<ObjectName> mbeans = connection.queryNames(null, null); for (ObjectName name : mbeans) { MBeanInfo info = connection.getMBeanInfo(name); MBeanAttributeInfo[] attrs = info.getAttributes(); Query.Builder queryBuilder = Query.builder() .setObj(name.getCanonicalName()) .addOutputWriterFactory(new StdOutWriter(ImmutableList.<String>of(), false, false, null, Collections.<String, Object>emptyMap())); for (MBeanAttributeInfo attrInfo : attrs) { queryBuilder.addAttr(attrInfo.getName()); } Query query = queryBuilder.build(); try { Iterable<Result> results = server.execute(query); query.runOutputWritersForQuery(server, results); } catch (AttributeNotFoundException anfe) { log.error("Error", anfe); } } } }
/** */ 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); }
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; }
.addAttr("PendingQueueSize") .addAttr("DispatchedQueueSize") .addAttr("EnqueueCounter") .addAttr("DequeueCounter") .addAttr("MessageCountAwaitingAcknowledge") .addAttr("DispachedCounter") .addOutputWriterFactory(gw) .build(); .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(); .addAttr("QueueSize") .addAttr("MaxEnqueueTime") .addAttr("MinEnqueueTime") .addAttr("AverageEnqueueTime") .addAttr("InFlightCount") .addAttr("ConsumerCount")
.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());
.addAttr("HeapMemoryUsage") .addAttr("NonHeapMemoryUsage") .addOutputWriterFactories(gw, sw) .build(); .addAttr("DaemonThreadCount") .addAttr("PeakThreadCount") .addAttr("ThreadCount") .addOutputWriterFactories(gw, sw) .build(); .addAttr("LastGcInfo") .addOutputWriterFactories(gw, sw) .build(); .addAttr("LastGcInfo") .addOutputWriterFactories(gw, sw) .build();
.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") .addAttr("OptimisticFailureCount")
.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")