核心指标

为确保您的应用程序平稳运行,您应该监控

  • 服务器负载 — 托管 Neo4j 的机器所承受的压力。

  • Neo4j 负载 — Neo4j 本身所承受的压力。

  • 集群健康状况 — 确保集群按预期工作。

  • Neo4j 实例的工作负载

建议阅读性能章节,以便更好地理解这些指标。

服务器负载指标

监控硬件资源可以反映运行 Neo4j 的服务器所承受的压力。

您可以使用诸如 collectd 守护进程或 Linux 上的 systemd 等工具来收集系统信息。随着工作负载的增长,这些指标有助于进行容量规划。

指标名称 描述

CPU 使用率

如果此项达到 100%,您可能需要增加 CPU 容量。

已用内存

此指标告知您是否即将耗尽服务器上的所有可用内存。请确保您的峰值保持在 95% 或以下,以降低内存耗尽的风险。有关详细信息,请参阅内存配置

剩余磁盘空间

观察数据增长率,以便在耗尽存储空间之前规划额外的存储。这适用于 Neo4j 写入的所有磁盘。您也可以选择将日志文件写入不同的磁盘。

磁盘耗尽事件可能会破坏系统可用性并导致数据库下线,从而产生数据库或日志文件损坏的风险。为避免这种情况,应配置系统监控工具,以监控用于数据库、索引和事务日志的所有驱动器上的可用磁盘空间。有关更多建议,请参阅磁盘、RAM 及其他提示,以及 Neo4j 集群中的监控服务器监控数据库

Neo4j 负载指标

Neo4j 负载指标用于监控 Neo4j 所承受的压力。它们有助于容量规划。

指标名称 指标 描述

堆使用率

<prefix>.dbms.vm.heap.used

如果 Neo4j 持续使用 100% 的堆,请增加初始堆大小和最大堆大小。有关详细信息,请参阅内存配置

页面缓存

<prefix>.dbms.page_cache.hit_ratio<prefix>.dbms.page_cache.usage_ratio

当请求未命中页面缓存时,数据必须从速度慢得多的磁盘中获取。理想情况下,hit_ratio(命中率)大部分时间应保持在 98% 以上。这显示了分配给页面缓存的内存使用了多少。如果此项达到 100%,请考虑增加页面缓存大小。

JVM 垃圾回收

<prefix>.dbms.vm.gc.time.%s

JVM 用于回收堆而非执行其他工作所花费的时间比例。当数据库内存不足时,此指标可能会飙升。如果发生这种情况,可能会暂停处理并导致查询执行错误。如果出现这种情况,请考虑增加数据库的规模。

检查点时间

<prefix>.database.<db>.check_point.duration

您应该监控检查点持续时间,以确保它不会接近检查点之间的时间间隔。如果发生这种情况,请考虑采取以下步骤来提高检查点性能:

Neo4j 集群健康指标

集群健康指标可以一眼看出集群成员的健康状况。了解哪个实例是领导者(leader)至关重要。领导者的负载模式与追随者(follower)不同,追随者应该表现出相似的负载模式。

指标名称 指标 描述

主节点 (Leader)

<prefix>.database.<db>.cluster.raft.is_leader

针对每个数据库主节点进行跟踪。如果它不是领导者,则报告 0;如果是领导者,则报告 1。所有这些的总和应该始终为 1。但是,有时会出现短暂的时期,总和可能大于 1,因为可能有不止一个成员认为自己是领导者。

事务工作负载

<prefix>.database.<db>.transaction.last_committed_tx_id

最后提交事务的 ID。为每个 Neo4j 实例跟踪此指标。它可以拆分为单独的图表。它应该显示一条持续增加的线,如果其中一条线趋于平缓或落后,则很明显该实例已停止复制数据,需要采取行动来纠正这种情况。

查看关于如何监控集群端点以获取状态信息的更多信息。

工作负载指标

这些指标有助于监控 Neo4j 实例的工作负载。这些指标的绝对值取决于您预期的工作负载类型。

指标名称 指标 描述

Bolt 连接

<prefix>.dbms.bolt.connections_running

当前正在执行 Cypher 并返回结果的连接数。

节点/关系总数

<prefix>.database.<db>.count.node<prefix>.database.<db>.count.relationship

(默认未启用)不同关系类型的总数。不同属性名称的总数。关系总数。节点总数。

吞吐量

<prefix>.database.<db>.db.query.execution.latency.millis

此指标生成一个事务延迟的 99 分位和 95 分位直方图。对于识别数据负载的峰值或增加非常有用。

有关 Neo4j 中所有可用指标的完整列表,请参阅指标参考