Prev |  | Next

## 8.3. Monitoring

| Note
Most of the monitoring features are only available in the Advanced and Enterprise editions of Neo4j.

In order to be able to continuously get an overview of the health of a Neo4j database, there are different levels of monitoring facilities available.

### 8.3.1. JMX

#### How to connect to a Neo4j instance using JMX and JConsole

First, start your embedded database or the Neo4j Server, for instance using

    $NEO4j_SERVER_HOME/bin/neo4j start

Now, start JConsole with

    $JAVA_HOME/bin/jconsole

Connect to the process running your Neo4j database instance:

Figure 8.1. Connecting JConsole to the Neo4j Java process

Now, beside the MBeans exposed by the JVM, you will see an `org.neo4j` section in the MBeans tab. Under that, you will have access to all the monitoring information exposed by Neo4j.

Figure 8.2. Neo4j MBeans View

#### How to connect to the JMX monitoring programmatically

In order to programmatically connect to the Neo4j JMX server, there are some convenience methods in the Neo4j Management component to help you find out the most commonly used monitoring attributes of Neo4j. For instance, the number of node IDs in use can be obtained with code like:

    Neo4jManager manager = new Neo4jManager( graphDb.getManagementBean( Kernel.class ) );
    long nodeIDsInUse    = manager.getPrimitivesBean.getNumberOfNodeIdsInUse();

Once you have access to this information, you can use it to for instance expose the values to SNMP or other monitoring systems.

#### Reference of supported JMX MBeans

Table 8.1. MBeans exposed by the Neo4j Kernel

Name | Description
--- | ---
org.neo4j:instance=kernel#0,name=Memory Mapping | The status of Neo4j memory mapping
org.neo4j:instance=kernel#0,name=Locking | Information about the Neo4j lock status
org.neo4j:instance=kernel#0,name=Transactions | Information about the Neo4j transaction manager
org.neo4j:instance=kernel#0,name=Cache | Information about the caching in Neo4j
org.neo4j:instance=kernel#0,name=Configuration | The configuration parameters used to configure Neo4j
org.neo4j:instance=kernel#0,name=Primitive count | Estimates of the numbers of different kinds of Neo4j primitives
org.neo4j:instance=kernel#0,name=XA Resources | Information about the XA transaction manager
org.neo4j:instance=kernel#0,name=Store file sizes | Information about the sizes of the different parts of the Neo4j graph store
org.neo4j:instance=kernel#0,name=Kernel | Information about the Neo4j kernel
org.neo4j:instance=kernel#0,name=High Availability | Information an High Availability cluster, if enabled.

Table 8.2. MBean Memory Mapping

Attribute | Description | Type
--- | --- | ---
MemoryPools | Get information about each pool of memory mapped regions from store files with memory mapping enabled | String

Table 8.3. MBean Locking

Attribute | Description | Type
--- | --- | ---
NumberOfAdvertedDeadlocks | The number of lock sequences that would have lead to a deadlock situation that Neo4j has detected and adverted (by throwing DeadlockDetectedException). | Integer

Table 8.4. MBean Transactions

Attribute | Description | Type
--- | --- | ---
NumberOfOpenTransactions | The number of currently open transactions | Integer
PeakNumberOfConcurrentTransactions | The highest number of transactions ever opened concurrently | Integer
NumberOfOpenedTransactions | The total number started transactions | Integer
NumberOfCommittedTransactions | The total number of committed transactionss | Integer

Table 8.5. MBean Cache

Attribute | Description | Type
--- | --- | ---
CacheType | The type of cache used by Neo4j | String
NodeCacheSize | The number of Nodes currently in cache | Integer
RelationshipCacheSize | The number of Relationships currently in cache | Integer
clear() | clear all caches | function, void

Table 8.6. MBean Configuration

Attribute | Description | Type
--- | --- | ---
`store_dir` | Relative path for where the Neo4j storage directory is located | String
`rebuild_idgenerators_fast` | Use a quick approach for rebuilding the ID generators. This give quicker recovery time, but will limit the ability to reuse the space of deleted entities. | String
`logical_log` | Relative path for where the Neo4j logical log is located | String
`neostore.propertystore.db.index.keys.mapped_memory` | The size to allocate for memory mapping the store for property key strings | String
`neostore.propertystore.db.strings.mapped_memory` | The size to allocate for memory mapping the string property store | String
`neostore.propertystore.db.arrays.mapped_memory` | The size to allocate for memory mapping the array property store | String
`neo_store` | Relative path for where the Neo4j storage information file is located | String
`neostore.relationshipstore.db.mapped_memory` | The size to allocate for memory mapping the relationship store | String
`neostore.propertystore.db.index.mapped_memory` | The size to allocate for memory mapping the store for property key indexes | String
`create` | Configuration attribute | String
`enable_remote_shell` | Enable a remote shell server which shell clients can log in to | String
`neostore.propertystore.db.mapped_memory` | The size to allocate for memory mapping the property value store | Integer
`neostore.nodestore.db.mapped_memory` | The size to allocate for memory mapping the node store | String
`dir` | Configuration attribute | String

Table 8.7. MBean Primitive count

Attribute | Description | Type
--- | --- | ---
NumberOfNodeIdsInUse | An estimation of the number of nodes used in this Neo4j instance | Integer
NumberOfRelationshipIdsInUse | An estimation of the number of relationships used in this Neo4j instance | Integer
NumberOfPropertyIdsInUse | An estimation of the number of properties used in this Neo4j instance | Integer
NumberOfRelationshipTypeIdsInUse | The number of relationship types used in this Neo4j instance | Integer

Table 8.8. MBean XA Resources

Attribute | Description | Type
--- | --- | ---
XaResources | Information about all XA resources managed by the transaction manager | String

Table 8.9. MBean Store file sizes

Attribute | Description | Type
--- | --- | ---
TotalStoreSize | The total disk space used by this Neo4j instance, in bytes. | Integer
LogicalLogSize | The amount of disk space used by the current Neo4j logical log, in bytes. | Integer
ArrayStoreSize | The amount of disk space used to store array properties, in bytes. | Integer
NodeStoreSize | The amount of disk space used to store nodes, in bytes. | Integer
PropertyStoreSize | The amount of disk space used to store properties (excluding string values and array values), in bytes. | Integer
RelationshipStoreSize | The amount of disk space used to store relationships, in bytes. | Integer
StringStoreSize | The amount of disk space used to store string properties, in bytes. | Integer

Table 8.10. MBean Kernel

Attribute | Description | Type
--- | --- | ---
ReadOnly | Whether this is a read only instance. | boolean
MBeanQuery | An ObjectName that can be used as a query for getting all management beans for this Neo4j instance. | String
KernelStartTime | The time from which this Neo4j instance was in operational mode | Date
StoreCreationDate | The time when this Neo4j graph store was created | Date
StoreId | An identifier that uniquely identifies this Neo4j graph store | String
StoreLogVersion | The current version of the Neo4j store logical log | String
KernelVersion | The version of Neo4j | String
StoreDirectory | The location where the Neo4j store is located | String

Table 8.11. MBean High Availability

Attribute | Description | Type
--- | --- | ---
MachineId | The cluster machine id of this instance | String
Master | True, if this Neo4j instance is currently Master in the cluster | boolean
ConnectedSlaves | A list of conencted slaves in this cluster | String
InstancesInCluster | Information about the other Neo4j instances in this HA cluster | String

Copyright © 2011 Neo Technology

Prev | Up | Next
| Home |