Types of metrics

This section describes the types of metrics available in Neo4j.

Neo4j provides a built-in metrics subsystem. Reported metrics can be queried via JMX, retrieved from CSV files, or consumed by third-party monitoring tools.

Neo4j has the following types of metrics:

1. Global metrics

Global metrics cover the whole database management system, and represents the status of the system as a whole.

Global metrics have the following name format: <user-configured-prefix>.<metric-name> if metrics.namespaces.enabled is false, or <user-configured-prefix>.dbms.<metric-name> if the setting is true.

Metrics of this type are reported as soon as the database management system is available. For example, all JVM related metrics are global. In particular, the neo4j.vm.thread.count metric has a default user-configured-prefix neo4j and the metric name is vm.thread.count.

By default, global metrics include:

  • Page cache metrics

  • GC metrics

  • Thread metrics

  • Memory pool metrics

  • Memory buffers metrics

  • File descriptor metrics

  • Database operation metrics

  • Bolt metrics

  • Web Server metrics

2. Database metrics

Each database metric is reported for a particular database only. Database metrics are only available during the lifetime of the database. When a database becomes unavailable, all of its metrics become unavailable also.

Database metrics have the following name format: <user-configured-prefix>.<database-name>.<metric-name> if metrics.namespaces.enabled is false, or <user-configured-prefix>.database.<database-name>.<metric-name> if the setting is true.

For example, any transaction metric is a database metric. In particular, the neo4j.mydb.transaction.started metric has a default user-configured-prefix neo4j and it is a metric for the mydb database.

By default, database metrics include:

  • Transaction metrics

  • Checkpoint metrics

  • Log rotation metrics

  • Database data metrics

  • Cypher metrics

  • Causal clustering metrics