16.6. Monitoring

apoc.monitor.ids

node and relationships-ids in total and in use

apoc.monitor.kernel

store information such as kernel version, start time, read-only, database-name, store-log-version etc.

apoc.monitor.store

store size information for the different types of stores

apoc.monitor.tx

number of transactions total,opened,committed,concurrent,rolled-back,last-tx-id

apoc.monitor.locks(minWaitTime long)

db locking information such as avertedDeadLocks, lockCount, contendedLockCount and contendedLocks etc. (enterprise)

16.6.1. UUID

These procedures manage the UUID Handler Lifecycle. The UUID handler is a transaction event handler that automatically adds the UUID property to a provided label and for the provided property name. Please check the following documentation to an in-depth description.

Enable apoc.uuid.enabled=true in $NEO4J_HOME/config/neo4j.conf first.

procedure

description

CALL apoc.uuid.install(label, {addToExistingNodes: true/false, uuidProperty: 'uuid'}) yield label, installed, properties, batchComputationResult

it will add the uuid transaction handler for the provided label and uuidProperty, in case the UUID handler is already present it will be replaced by the new one

CALL apoc.uuid.remove(label) yield label, installed, properties

remove previously added uuid handler and returns uuid information. All the existing uuid properties are left as-is

CALL apoc.uuid.removeAll() yield label, installed, properties

removes all previously added uuid handlers and returns uuids information. All the existing uuid properties are left as-is

CALL apoc.uuid.list() yield label, installed, properties

provides a list of all the uuid handlers installed with the related configuration

16.6.1.1. Config

config

type

description

addToExistingNodes

Boolean (default: true)

when installed, for the label provided, adds the UUID to the nodes already existing in your graph

uuidProperty

String (default: uuid)

the name of the UUID field

16.6.1.2. UUID Examples

First create a Constraint for the Label and the Property, if you try to add a uuid an error occured.

CREATE CONSTRAINT ON (person:Person) ASSERT person.uuid IS UNIQUE

Add the uuid:

CALL apoc.uuid.install('Person') YIELD label RETURN label

The result is:

+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| label    | installed | properties                                               | batchComputationResult                                                                                                                         |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "Person" | true      | {uuidProperty -> "uuid", addToExistingNodes -> true} | {wasTerminated -> false, count -> 10, batches -> 1, successes -> 1, failedOps -> 0, timeTaken -> 0, operationErrors -> {}, failedBatches -> 0} |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

The result is Node Person have 2 property:

apoc.uuid.result

Get all the uuid installed, call the procedure as:

call apoc.uuid.list() yield label, installed return label, installed

The result is:

+---------------------------------------------------------------------------------+
| label    | installed | properties                                               |
+---------------------------------------------------------------------------------+
| "Person" | true      | {uuidProperty -> "uuid", addToExistingNodes -> true} |
+---------------------------------------------------------------------------------+

Remove the uuid installed call the procedure as:

call apoc.uuid.remove('Person') yield label return label

The result is:

+---------------------------------------------------------------------------------+
| label    | installed | properties                                               |
+---------------------------------------------------------------------------------+
| "Person" | false     | {uuidProperty -> "uuid", addToExistingNodes -> true} |
+---------------------------------------------------------------------------------+
1 row

You can also remove all the uuid installed call the procedure as:

call apoc.uuid.removeAll() yield label return label

The result is:

+---------------------------------------------------------------------------------+
| label    | installed | properties                                               |
+---------------------------------------------------------------------------------+
| "Person" | false     | {uuidProperty -> "uuid", addToExistingNodes -> true} |
+---------------------------------------------------------------------------------+