@Test public void serverConfigShouldBeVisibleInJMX() throws Throwable { // Given String configValue = tempDir.newFile().getAbsolutePath(); server = CommunityServerBuilder.serverOnRandomPorts().withProperty( ServerSettings.run_directory.name(), configValue ).build(); // When server.start(); // Then ObjectName name = getObjectName( server.getDatabase().getGraph(), ConfigurationBean.CONFIGURATION_MBEAN_NAME ); String attr = getAttribute( name, ServerSettings.run_directory.name() ); assertThat( attr, equalTo( configValue ) ); }
public List<Map<String, Object>> getContentedLocks(ObjectName objectName, @Name("minWaitTime") Long minwaittime) { CompositeData[] clocks = invoke(objectName, JMX_CONTENDED_LOCKS_KEY, new Long[]{minwaittime}, new String[]{"long"}); List<Map<String, Object>> lockInfos = new ArrayList<>(clocks.length); for (CompositeData cs : clocks) { Map<String, Object> m = map( JMX_ITEM_DESCRIPTION, cs.get(JMX_ITEM_DESCRIPTION).toString(), JMX_ITEM_RESOURCE_ID, cs.get(JMX_ITEM_RESOURCE_ID).toString(), JMX_ITEM_RESOURCE_TYPE, cs.get(JMX_ITEM_RESOURCE_TYPE).toString()); lockInfos.add(m); } return lockInfos; }
@Test public void durationsAlwaysHaveUnitsInJMX() throws Throwable { // Given server = CommunityServerBuilder.serverOnRandomPorts() .withProperty( transaction_timeout.name(), "10" ) .build(); // When server.start(); // Then ObjectName name = getObjectName( server.getDatabase().getGraph(), ConfigurationBean.CONFIGURATION_MBEAN_NAME ); String attr = getAttribute( name, transaction_timeout.name() ); assertThat( attr, equalTo( "10000ms" ) ); }
private TransactionInfoResult getTransactionInfo() throws Exception { ObjectName objectName = getObjectName(db, JMX_OBJECT_NAME); return new TransactionInfoResult( getAttribute(objectName, ROLLED_BACK_TX), getAttribute(objectName, PEAK_TX), getAttribute(objectName, LAST_TX_ID), getAttribute(objectName, OPEN_TX), getAttribute(objectName, OPENED_TX), getAttribute(objectName, COMMITTED_TX) ); }
private IdsResult getIdsInUse() { ObjectName objectName = getObjectName(db, JMX_OBJECT_NAME); return new IdsResult( getAttribute(objectName, NODE_IDS_KEY), getAttribute(objectName, REL_IDS_KEY), getAttribute(objectName, PROP_IDS_KEY), getAttribute(objectName, REL_TYPE_IDS_KEY) ); } }
@Procedure @Description("apoc.monitor.kernel() returns informations about the neo4j kernel") public Stream<KernelInfoResult> kernel() { ObjectName objectName = getObjectName(database, JMX_OBJECT_NAME); KernelInfoResult info = new KernelInfoResult( getAttribute(objectName, READ_ONLY), getAttribute(objectName, KERNEL_VERSION), getAttribute(objectName, STORE_ID), getAttribute(objectName, START_TIME), getAttribute(objectName, DB_NAME), getAttribute(objectName, STORE_LOG_VERSION), getAttribute(objectName, STORE_CREATION_DATE)); return Stream.of(info); }
@Procedure @Description("apoc.monitor.store() returns informations about the sizes of the different parts of the neo4j graph store") public Stream<StoreInfoResult> store() { ObjectName objectName = getObjectName(db, JMX_OBJECT_NAME); StoreInfoResult storeInfo = new StoreInfoResult( getAttribute(objectName, LOG_SIZE), getAttribute(objectName, STRING_SIZE), getAttribute(objectName, ARRAY_SIZE), getAttribute(objectName, REL_SIZE), getAttribute(objectName, PROP_SIZE), getAttribute(objectName, TOTAL_SIZE), getAttribute(objectName, NODE_SIZE)); return Stream.of(storeInfo); }
@Procedure("apoc.monitor.locks") @Deprecated @Description("deprecated, the information is not provided by neo4j anymore.\napoc.monitor.locks(minWaitTime) yield advertedDeadLocks, lockCount, contendedLockCount, minimumWaitTimeMs, contendedLocks, info") public Stream<LockInfoResult> lockInfo(@Name("minWaitTime") Long minWaitTime) { if (minWaitTime == null || minWaitTime < 0) minWaitTime = 0L; ObjectName objectName = getObjectName(database, JMX_OBJECT_NAME); CompositeData[] locks = getAttribute(objectName, JMX_LOCKS_KEY); List<Map<String, Object>> lockInfos = getContentedLocks(objectName, minWaitTime); Long avertedDeadLocks = getAttribute(objectName, JMX_NR_ADVERTED_DEADLOCKS_KEY); LockInfoResult info = new LockInfoResult(minWaitTime, locks.length, avertedDeadLocks, lockInfos.size(), lockInfos); return Stream.of(info); }
private static Date getStartTimeFromManagementBean( GraphDatabaseService graphDbService ) { ObjectName objectName = JmxUtils.getObjectName( graphDbService, "Kernel" ); Date date = JmxUtils.getAttribute( objectName, "KernelStartTime" ); return date; } // END SNIPPET: getStartTime