28.4. Reference of supported JMX MBeans

MBeans exposed by Neo4j

NameDescription

Branched Store

Information about the branched stores present in this HA cluster member.

Configuration

The configuration parameters used to configure Neo4j.

Diagnostics

Diagnostics provided by Neo4j.

High Availability

Information about an instance participating in a HA cluster.

Index sampler

Handle index sampling.

Kernel

Information about the Neo4j kernel.

Locking

Information about the Neo4j lock status.

Memory Mapping

The status of Neo4j memory mapping.

Page cache

Information about the Neo4j page cache. All numbers are counts and sums since the Neo4j instance was started.

Primitive count

Estimates of the numbers of different kinds of Neo4j primitives.

Store file sizes

Information about the sizes of the different parts of the Neo4j graph store.

Transactions

Information about the Neo4j transaction manager.

[Note]Note

For additional information on the primitive datatypes (int, long etc.) used in the JMX attributes, please see Property value types in the section called “Properties”.

MBean Branched Store (org.neo4j.management.BranchedStore) Attributes

NameDescriptionTypeReadWrite

Information about the branched stores present in this HA cluster member

BranchedStores

A list of the branched stores

org.neo4j.management.BranchedStoreInfo[] as CompositeData[]

yes

no

MBean Configuration (org.neo4j.jmx.impl.ConfigurationBean) Attributes

NameDescriptionTypeReadWrite

The configuration parameters used to configure Neo4j

cypher.default_language_version

Set this to specify the default parser (language version).

String

yes

no

cypher.forbid_exhaustive_shortestpath

This setting is associated with performance optimization. Set this to true in situations where it is preferable to have any queries using the shortestPath function terminate as soon as possible with no answer, rather than potentially running for a long time attempting to find an answer (even if there is no path to be found). For most queries, the shortestPath algorithm will return the correct answer very quickly. However there are some cases where it is possible that the fast bidirectional breadth-first search algorithm will find no results even if they exist. This can happen when the predicates in the WHERE clause applied to shortestPath cannot be applied to each step of the traversal, and can only be applied to the entire path. When the query planner detects these special cases, it will plan to perform an exhaustive depth-first search if the fast algorithm finds no paths. However, the exhaustive search may be orders of magnitude slower than the fast algorithm. If it is critical that queries terminate as soon as possible, it is recommended that this option be set to true, which means that Neo4j will never consider using the exhaustive search for shortestPath queries. However, please note that if no paths are found, an error will be thrown at run time, which will need to be handled by the application.

String

yes

no

cypher.hints_error

Set this to specify the behavior when Cypher planner or runtime hints cannot be fulfilled. If true, then non-conformance will result in an error, otherwise only a warning is generated.

String

yes

no

cypher.planner

Set this to specify the default planner for the default language version.

String

yes

no

dbms.allow_format_migration

Whether to allow a store upgrade in case the current version of the database starts against an older store version. Setting this to true does not guarantee successful upgrade, it just allows an upgrade to be performed.

String

yes

no

dbms.auto_index.nodes.enabled

Controls the auto indexing feature for nodes. Setting it to false shuts it down, while true enables it by default for properties listed in the dbms.auto_index.nodes.keys setting.

String

yes

no

dbms.auto_index.nodes.keys

A list of property names (comma separated) that will be indexed by default. This applies to nodes only.

String

yes

no

dbms.auto_index.relationships.enabled

Controls the auto indexing feature for relationships. Setting it to false shuts it down, while true enables it by default for properties listed in the dbms.auto_index.relationships.keys setting.

String

yes

no

dbms.auto_index.relationships.keys

A list of property names (comma separated) that will be indexed by default. This applies to relationships only.

String

yes

no

dbms.backup.address

Listening server for online backups

String

yes

no

dbms.backup.enabled

Enable support for running online backups

String

yes

no

dbms.checkpoint.interval.time

Configures the time interval between check-points. The database will not check-point more often than this (unless check pointing is triggered by a different event), but might check-point less often than this interval, if performing a check-point takes longer time than the configured interval. A check-point is a point in the transaction logs, from which recovery would start from. Longer check-point intervals typically means that recovery will take longer to complete in case of a crash. On the other hand, a longer check-point interval can also reduce the I/O load that the database places on the system, as each check-point implies a flushing and forcing of all the store files. The default is 5m for a check-point every 5 minutes. Other supported units are s for seconds, and ms for milliseconds.

String

yes

no

dbms.checkpoint.interval.tx

Configures the transaction interval between check-points. The database will not check-point more often than this (unless check pointing is triggered by a different event), but might check-point less often than this interval, if performing a check-point takes longer time than the configured interval. A check-point is a point in the transaction logs, from which recovery would start from. Longer check-point intervals typically means that recovery will take longer to complete in case of a crash. On the other hand, a longer check-point interval can also reduce the I/O load that the database places on the system, as each check-point implies a flushing and forcing of all the store files. The default is 100000 for a check-point every 100000 transactions.

String

yes

no

dbms.checkpoint.iops.limit

Limit the number of IOs the background checkpoint process will consume per second. This setting is advisory, is ignored in Neo4j Community Edition, and is followed to best effort in Enterprise Edition. An IO is in this case a 8 KiB (mostly sequential) write. Limiting the write IO in this way will leave more bandwidth in the IO subsystem to service random-read IOs, which is important for the response time of queries when the database cannot fit entirely in memory. The only drawback of this setting is that longer checkpoint times may lead to slightly longer recovery times in case of a database or system crash. A lower number means lower IO pressure, and consequently longer checkpoint times. The configuration can also be commented out to remove the limitation entirely, and let the checkpointer flush data as fast as the hardware will go. Set this to -1 to disable the IOPS limit.

String

yes

no

dbms.directories.auth

Location of the directory where to store users and roles used for authentication and authorization.

String

yes

no

dbms.directories.logs

Path of the logs directory

String

yes

no

dbms.directories.plugins

Location of the database plugin directory. Compiled Java JAR files that contain database procedures will be loaded if they are placed in this directory.

String

yes

no

dbms.index_sampling.background_enabled

Enable or disable background index sampling

String

yes

no

dbms.index_sampling.buffer_size

Size of buffer used by index sampling. This configuration setting is no longer applicable as from Neo4j 3.0.3.Please use dbms.index_sampling.sample_size_limit instead.

String

yes

no

dbms.index_sampling.sample_size_limit

Index sampling chunk size limit

String

yes

no

dbms.index_sampling.update_percentage

Percentage of index updates of total index size required before sampling of a given index is triggered

String

yes

no

dbms.logs.debug.level

Debug log level threshold.

String

yes

no

dbms.logs.debug.rotation.delay

Minimum time interval after last rotation of the debug log before it may be rotated again.

String

yes

no

dbms.logs.debug.rotation.keep_number

Maximum number of history files for the debug log.

String

yes

no

dbms.logs.debug.rotation.size

Threshold for rotation of the debug log.

String

yes

no

dbms.logs.query.enabled

Log executed queries that takes longer than the configured threshold. NOTE: This feature is only available in the Neo4j Enterprise Edition.

String

yes

no

dbms.logs.query.parameter_logging_enabled

Log parameters for executed queries that took longer than the configured threshold.

String

yes

no

dbms.logs.query.rotation.keep_number

Maximum number of history files for the query log.

String

yes

no

dbms.logs.query.rotation.size

The file size in bytes at which the query log will auto-rotate. If set to zero then no rotation will occur. Accepts a binary suffix k, m or g.

String

yes

no

dbms.logs.query.threshold

If the execution of query takes more time than this threshold, the query is logged - provided query logging is enabled. Defaults to 0 seconds, that is all queries are logged.

String

yes

no

dbms.memory.pagecache.size

The amount of memory to use for mapping the store files, in bytes (or kilobytes with the k suffix, megabytes with m and gigabytes with g). If Neo4j is running on a dedicated server, then it is generally recommended to leave about 2-4 gigabytes for the operating system, give the JVM enough heap to hold all your transaction state and query context, and then leave the rest for the page cache. The default page cache memory assumes the machine is dedicated to running Neo4j, and is heuristically set to 50% of RAM minus the max Java heap size.

String

yes

no

dbms.memory.pagecache.swapper

Specify which page swapper to use for doing paged IO. This is only used when integrating with proprietary storage technology.

String

yes

no

dbms.read_only

Only allow read operations from this Neo4j instance. This mode still requires write access to the directory for lock purposes.

String

yes

no

dbms.record_format

Database record format. Enterprise edition only. Valid values: standard, high_limit. Default value: standard.

String

yes

no

dbms.relationship_grouping_threshold

Relationship count threshold for considering a node to be dense

String

yes

no

dbms.security.auth_enabled

Enable auth requirement to access Neo4j.

String

yes

no

dbms.security.ha_status_auth_enabled

Require authorization for access to the HA status endpoints.

String

yes

no

dbms.shell.enabled

Enable a remote shell server which Neo4j Shell clients can log in to.

String

yes

no

dbms.shell.host

Remote host for shell. By default, the shell server listens only on the loopback interface, but you can specify the IP address of any network interface or use 0.0.0.0 for all interfaces.

String

yes

no

dbms.shell.port

The port the shell will listen on.

String

yes

no

dbms.shell.read_only

Read only mode. Will only allow read operations.

String

yes

no

dbms.shell.rmi_name

The name of the shell.

String

yes

no

dbms.tx_log.rotation.retention_policy

Make Neo4j keep the logical transaction logs for being able to backup the database. Can be used for specifying the threshold to prune logical logs after. For example "10 days" will prune logical logs that only contains transactions older than 10 days from the current time, or "100k txs" will keep the 100k latest transactions and prune any older transactions.

String

yes

no

dbms.tx_log.rotation.size

Specifies at which file size the logical log will auto-rotate. 0 means that no rotation will automatically occur based on file size.

String

yes

no

ha.allow_init_cluster

Whether to allow this instance to create a cluster if unable to join.

String

yes

no

ha.branched_data_policy

Policy for how to handle branched data.

String

yes

no

ha.broadcast_timeout

Timeout for broadcasting values in cluster. Must consider end-to-end duration of Paxos algorithm. This value is the default value for the ha.join_timeout and ha.leave_timeout settings.

String

yes

no

ha.configuration_timeout

Timeout for waiting for configuration from an existing cluster member during cluster join.

String

yes

no

ha.data_chunk_size

Max size of the data chunks that flows between master and slaves in HA. Bigger size may increase throughput, but may also be more sensitive to variations in bandwidth, whereas lower size increases tolerance for bandwidth variations.

String

yes

no

ha.default_timeout

Default timeout used for clustering timeouts. Override specific timeout settings with proper values if necessary. This value is the default value for the ha.heartbeat_interval, ha.paxos_timeout and ha.learn_timeout settings.

String

yes

no

ha.election_timeout

Timeout for waiting for other members to finish a role election. Defaults to ha.paxos_timeout.

String

yes

no

ha.heartbeat_interval

How often heartbeat messages should be sent. Defaults to ha.default_timeout.

String

yes

no

ha.heartbeat_timeout

Timeout for heartbeats between cluster members. Should be at least twice that of ha.heartbeat_interval.

String

yes

no

ha.host.coordination

Host and port to bind the cluster management communication.

String

yes

no

ha.host.data

Hostname and port to bind the HA server.

String

yes

no

ha.initial_hosts

A comma-separated list of other members of the cluster to join.

String

yes

no

ha.internal_role_switch_timeout

Timeout for waiting for internal conditions during state switch, like for transactions to complete, before switching to master or slave.

String

yes

no

ha.join_timeout

Timeout for joining a cluster. Defaults to ha.broadcast_timeout.

String

yes

no

ha.learn_timeout

Timeout for learning values. Defaults to ha.default_timeout.

String

yes

no

ha.leave_timeout

Timeout for waiting for cluster leave to finish. Defaults to ha.broadcast_timeout.

String

yes

no

ha.max_acceptors

Maximum number of servers to involve when agreeing to membership changes. In very large clusters, the probability of half the cluster failing is low, but protecting against any arbitrary half failing is expensive. Therefore you may wish to set this parameter to a value less than the cluster size.

String

yes

no

ha.max_channels_per_slave

Maximum number of connections a slave can have to the master.

String

yes

no

ha.paxos_timeout

Default timeout for all Paxos timeouts. Defaults to ha.default_timeout. This value is the default value for the ha.phase1_timeout, ha.phase2_timeout and ha.election_timeout settings.

String

yes

no

ha.phase1_timeout

Timeout for Paxos phase 1. Defaults to ha.paxos_timeout.

String

yes

no

ha.phase2_timeout

Timeout for Paxos phase 2. Defaults to ha.paxos_timeout.

String

yes

no

ha.pull_batch_size

Size of batches of transactions applied on slaves when pulling from master

String

yes

no

ha.pull_interval

Interval of pulling updates from master.

String

yes

no

ha.role_switch_timeout

Timeout for request threads waiting for instance to become master or slave.

String

yes

no

ha.server_id

Id for a cluster instance. Must be unique within the cluster.

String

yes

no

ha.slave_lock_timeout

Timeout for taking remote (write) locks on slaves. Defaults to ha.slave_read_timeout.

String

yes

no

ha.slave_only

Whether this instance should only participate as slave in cluster. If set to true, it will never be elected as master.

String

yes

no

ha.slave_read_timeout

How long a slave will wait for response from master before giving up.

String

yes

no

ha.tx_push_factor

The amount of slaves the master will ask to replicate a committed transaction.

String

yes

no

ha.tx_push_strategy

Push strategy of a transaction to a slave during commit.

String

yes

no

jmx.port

Configuration attribute

String

yes

no

unsupported.cypher.compiler_tracing

Enable tracing of compilation in cypher.

String

yes

no

unsupported.cypher.runtime

Set this to specify the default runtime for the default language version.

String

yes

no

unsupported.dbms.block_size.array_properties

Specifies the block size for storing arrays. This parameter is only honored when the store is created, otherwise it is ignored. Also note that each block carries a ~10B of overhead so record size on disk will be slightly larger than the configured block size

String

yes

no

unsupported.dbms.block_size.labels

Specifies the block size for storing labels exceeding in-lined space in node record. This parameter is only honored when the store is created, otherwise it is ignored. Also note that each block carries a ~10B of overhead so record size on disk will be slightly larger than the configured block size

String

yes

no

unsupported.dbms.block_size.strings

Specifies the block size for storing strings. This parameter is only honored when the store is created, otherwise it is ignored. Note that each character in a string occupies two bytes, meaning that e.g a block size of 120 will hold a 60 character long string before overflowing into a second block. Also note that each block carries a ~10B of overhead so record size on disk will be slightly larger than the configured block size

String

yes

no

unsupported.dbms.counts_store_rotation_timeout

Maximum time to wait for active transaction completion when rotating counts store

String

yes

no

unsupported.dbms.directories.neo4j_home

Root relative to which directory settings are resolved. This is set in code and should never be configured explicitly.

String

yes

no

unsupported.dbms.disconnected

Disable all protocol connectors.

String

yes

no

unsupported.dbms.edition

Configuration attribute

String

yes

no

unsupported.dbms.ephemeral

Configuration attribute

String

yes

no

unsupported.dbms.gc_monitor_threshold

The amount of time in ms the monitor thread has to be blocked before logging a message it was blocked.

String

yes

no

unsupported.dbms.gc_monitor_wait_time

Amount of time in ms the GC monitor thread will wait before taking another measurement.

String

yes

no

unsupported.dbms.id_generator_fast_rebuild_enabled

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

yes

no

unsupported.dbms.kernel_id

An identifier that uniquely identifies this graph database instance within this JVM. Defaults to an auto-generated number depending on how many instance are started in this JVM.

String

yes

no

unsupported.dbms.logs.debug.debug_loggers

Debug log contexts that should output debug level logging

String

yes

no

unsupported.dbms.memory.pagecache.pagesize

Target size for pages of mapped memory. If set to 0, then a reasonable default is chosen, depending on the storage device used.

String

yes

no

unsupported.dbms.report_configuration

Print out the effective Neo4j configuration after startup.

String

yes

no

unsupported.dbms.shutdown_transaction_end_timeout

The maximum amount of time to wait for running transactions to complete before allowing initiated database shutdown to continue

String

yes

no

unsupported.dbms.transaction_start_timeout

The maximum amount of time to wait for the database to become available, when starting a new transaction.

String

yes

no

unsupported.ha.cluster_name

The name of a cluster.

String

yes

no

unsupported.tools.batch_inserter.batch_size

Specifies number of operations that batch inserter will try to group into one batch before flushing data into underlying storage.

String

yes

no

MBean Diagnostics (org.neo4j.management.Diagnostics) Attributes

NameDescriptionTypeReadWrite

Diagnostics provided by Neo4j

DiagnosticsProviders

A list of the ids for the registered diagnostics providers.

List (java.util.List)

yes

no

MBean Diagnostics (org.neo4j.management.Diagnostics) Operations

NameDescriptionReturnTypeSignature

dumpAll

Dump diagnostics information to JMX

String

(no parameters)

dumpToLog

Dump diagnostics information to the log.

void

(no parameters)

dumpToLog

Dump diagnostics information to the log.

void

java.lang.String

extract

Operation exposed for management

String

java.lang.String

MBean High Availability (org.neo4j.management.HighAvailability) Attributes

NameDescriptionTypeReadWrite

Information about an instance participating in a HA cluster

Alive

Whether this instance is alive or not

boolean

yes

no

Available

Whether this instance is available or not

boolean

yes

no

InstanceId

The identifier used to identify this server in the HA cluster

String

yes

no

InstancesInCluster

Information about all instances in this cluster

org.neo4j.management.ClusterMemberInfo[] as CompositeData[]

yes

no

LastCommittedTxId

The latest transaction id present in this instance’s store

long

yes

no

LastUpdateTime

The time when the data on this instance was last updated from the master

String

yes

no

Role

The role this instance has in the cluster

String

yes

no

MBean High Availability (org.neo4j.management.HighAvailability) Operations

NameDescriptionReturnTypeSignature

update

(If this is a slave) Update the database on this instance with the latest transactions from the master

String

(no parameters)

MBean Kernel (org.neo4j.jmx.Kernel) Attributes

NameDescriptionTypeReadWrite

Information about the Neo4j kernel

DatabaseName

The name of the mounted database

String

yes

no

KernelStartTime

The time from which this Neo4j instance was in operational mode.

Date (java.util.Date)

yes

no

KernelVersion

The version of Neo4j

String

yes

no

MBeanQuery

An ObjectName that can be used as a query for getting all management beans for this Neo4j instance.

javax.management.ObjectName

yes

no

ReadOnly

Whether this is a read only instance

boolean

yes

no

StoreCreationDate

The time when this Neo4j graph store was created.

Date (java.util.Date)

yes

no

StoreId

An identifier that, together with store creation time, uniquely identifies this Neo4j graph store.

String

yes

no

StoreLogVersion

The current version of the Neo4j store logical log.

long

yes

no

MBean Locking (org.neo4j.management.LockManager) Attributes

NameDescriptionTypeReadWrite

Information about the Neo4j lock status

Locks

Information about all locks held by Neo4j

java.util.List<org.neo4j.kernel.info.LockInfo> as CompositeData[]

yes

no

NumberOfAvertedDeadlocks

The number of lock sequences that would have lead to a deadlock situation that Neo4j has detected and averted (by throwing DeadlockDetectedException).

long

yes

no

MBean Locking (org.neo4j.management.LockManager) Operations

NameDescriptionReturnTypeSignature

getContendedLocks

getContendedLocks

java.util.List<org.neo4j.kernel.info.LockInfo> as CompositeData[]

long

MBean Memory Mapping (org.neo4j.management.MemoryMapping) Attributes

NameDescriptionTypeReadWrite

The status of Neo4j memory mapping

MemoryPools

Get information about each pool of memory mapped regions from store files with memory mapping enabled

org.neo4j.management.WindowPoolInfo[] as CompositeData[]

yes

no

MBean Page cache (org.neo4j.management.PageCache) Attributes

NameDescriptionTypeReadWrite

Information about the Neo4j page cache. All numbers are counts and sums since the Neo4j instance was started

BytesRead

Number of bytes read from durable storage.

long

yes

no

BytesWritten

Number of bytes written to durable storage.

long

yes

no

EvictionExceptions

Number of exceptions caught during page eviction. This number should be zero, or at least not growing, in a healthy database. Otherwise it could indicate drive failure, storage space, or permission problems.

long

yes

no

Evictions

Number of page evictions. How many pages have been removed from memory to make room for other pages.

long

yes

no

Faults

Number of page faults. How often requested data was not found in memory and had to be loaded.

long

yes

no

FileMappings

Number of files that have been mapped into the page cache.

long

yes

no

FileUnmappings

Number of files that have been unmapped from the page cache.

long

yes

no

Flushes

Number of page flushes. How many dirty pages have been written to durable storage.

long

yes

no

Pins

Number of page pins. How many pages have been accessed (monitoring must be enabled separately).

long

yes

no

[Note]Note

The page pin count metric is disabled by default for performance reasons, in which case the pin count value will always be zero. The page pin count metric can be enabled by adding this line to the neo4j-wrapper.conf file: dbms.jvm.additional=-Dorg.neo4j.io.pagecache.tracing.tracePinUnpin=true

MBean Primitive count (org.neo4j.jmx.Primitives) Attributes

NameDescriptionTypeReadWrite

Estimates of the numbers of different kinds of Neo4j primitives

NumberOfNodeIdsInUse

An estimation of the number of nodes used in this Neo4j instance

long

yes

no

NumberOfPropertyIdsInUse

An estimation of the number of properties used in this Neo4j instance

long

yes

no

NumberOfRelationshipIdsInUse

An estimation of the number of relationships used in this Neo4j instance

long

yes

no

NumberOfRelationshipTypeIdsInUse

The number of relationship types used in this Neo4j instance

long

yes

no

MBean Store file sizes (org.neo4j.jmx.StoreFile) Attributes

NameDescriptionTypeReadWrite

Information about the sizes of the different parts of the Neo4j graph store

ArrayStoreSize

The amount of disk space used to store array properties, in bytes.

long

yes

no

LogicalLogSize

The amount of disk space used by the current Neo4j logical log, in bytes.

long

yes

no

NodeStoreSize

The amount of disk space used to store nodes, in bytes.

long

yes

no

PropertyStoreSize

The amount of disk space used to store properties (excluding string values and array values), in bytes.

long

yes

no

RelationshipStoreSize

The amount of disk space used to store relationships, in bytes.

long

yes

no

StringStoreSize

The amount of disk space used to store string properties, in bytes.

long

yes

no

TotalStoreSize

The total disk space used by this Neo4j instance, in bytes.

long

yes

no

MBean Transactions (org.neo4j.management.TransactionManager) Attributes

NameDescriptionTypeReadWrite

Information about the Neo4j transaction manager

LastCommittedTxId

The id of the latest committed transaction

long

yes

no

NumberOfCommittedTransactions

The total number of committed transactions

long

yes

no

NumberOfOpenedTransactions

The total number started transactions

long

yes

no

NumberOfOpenTransactions

The number of currently open transactions

long

yes

no

NumberOfRolledBackTransactions

The total number of rolled back transactions

long

yes

no

PeakNumberOfConcurrentTransactions

The highest number of transactions ever opened concurrently

long

yes

no

MBean Index sampler (org.neo4j.management.IndexSamplingManager) Operations

NameDescriptionReturnTypeSignature

triggerIndexSampling

triggerIndexSampling

void

java.lang.String,java.lang.String,boolean