指标参考企业版
|
解读不熟悉的指标时应谨慎行事。建议阅读性能章节以更好地理解这些指标。 |
有关 2025-2026 系列中已更改、已弃用或已删除指标的列表,请参阅Neo4j 2025-2026 系列中的变更、当前弃用内容以及Neo4j 2025.01 中的重大变更。
指标类型
Neo4j 具有以下类型的指标
-
全局 (Global) — 涵盖整个 Neo4j DBMS。
-
数据库级 (Per database) — 涵盖单个数据库。
指标分为以下类别
-
计量器 (Gauge) — 显示特定值的瞬时读数。
-
计数器 (Counter) — 显示累积值。
-
直方图 (Histogram) — 显示值的分布情况。
Neo4j 支持多种公开指标的方式。有关详细信息,请参阅公开指标 (Expose metrics) 页面。
全局指标
全局指标涵盖整个数据库管理系统,并代表系统的整体状态。
全局指标采用以下名称格式
-
<user-configured-prefix>.dbms.<metric-name>,其中 <user-configured-prefix> 可通过server.metrics.prefix配置设置进行配置。
此类指标在数据库管理系统可用时立即上报。例如,所有 JVM 相关指标均为全局指标。特别是 neo4j.dbms.vm.thread.count 指标,其默认用户配置前缀为 neo4j,因此全局指标名称为 vm.thread.count。
默认情况下,全局指标包括
-
线程指标
-
Web 服务器指标
数据库指标
每个数据库指标仅针对特定数据库上报。数据库指标仅在数据库生命周期内可用。当数据库不可用时,其所有指标也将不可用。
数据库指标采用以下名称格式
-
<user-configured-prefix>.database.<database-name>.<metric-name>,其中 <user-configured-prefix> 可通过server.metrics.prefix配置设置进行配置。
例如,任何事务指标都是数据库指标。特别是 neo4j.database.mydb.transaction.started 指标,其默认用户配置前缀为 neo4j,且是针对 mydb 数据库的指标。
默认情况下,数据库指标包括
通用指标
Bolt 指标
| 名称 | 描述 |
|---|---|
|
自启动以来打开的 Bolt 连接总数。这包括成功和失败的连接。结合其他指标,有助于通过 Bolt 驱动程序监控负载。(计数器) |
|
自启动以来关闭的 Bolt 连接总数。这包括正常和异常结束的连接。结合其他指标,有助于通过 Bolt 驱动程序监控负载。(计数器) |
|
当前正在执行 Cypher 并返回结果的 Bolt 连接总数。有助于跟踪 Bolt 连接上的总负载。此值受通过 |
|
当前未执行 Cypher 或返回结果的 Bolt 连接总数。(计量器) |
|
自启动以来通过 Bolt 接收的消息总数。结合其他指标,有助于跟踪常规消息活动。(计数器) |
|
自接收以来已开始处理的消息总数。接收到的消息可能需要等待 Bolt 工作线程可用才能开始处理。如果观察到 |
|
已完成处理(无论成功与否)的 Bolt 消息总数。有助于跟踪总负载。(计数器) |
|
处理过程中失败的消息总数。大量失败可能表明服务器存在问题,建议进一步调查日志。(计数器) |
|
(不支持的功能) 当启用 |
|
工作线程处理消息的总时间(毫秒)。结合其他指标,有助于通过 Bolt 驱动程序监控负载。(计数器) |
|
工作线程绑定到给定连接的时间(毫秒)。(直方图) |
|
(不支持的功能) 当启用 |
|
(不支持的功能) 当启用 |
|
(不支持的功能) 当启用 |
Bolt 驱动程序指标
| 名称 | 描述 |
|---|---|
|
托管事务函数调用总数。(计数器) |
|
非托管事务函数调用总数。(计数器) |
|
隐式事务函数调用总数。(计数器) |
|
驱动程序级执行函数调用总数。(计数器) |
数据库检查点指标
| 名称 | 描述 |
|---|---|
|
到目前为止执行的检查点事件总数。(计数器) |
|
到目前为止花费在检查点上的总时间(毫秒)。(计数器) |
|
上一次检查点事件的持续时间(毫秒)。检查点通常需要几秒到几分钟。长时间的检查点可能会成为问题,因为它们在数据库停止时、执行热备份时以及定期调用。超过约 |
|
所有检查点事件期间刷新字节数的累积总和。(计数器) |
|
检查点因 IO 限制器而暂停的毫秒数。(计量器) |
|
检查点因 IO 限制器而暂停的次数。(计量器) |
|
在上一次检查点事件期间刷新的页面数。(计量器) |
|
从 Neo4j 角度看,在上一次检查点事件期间执行的 IO 数量。(计量器) |
|
上一次检查点事件期间使用的 IO 限制。(计量器) |
Cypher 指标
| 名称 | 描述 |
|---|---|
|
Cypher 决定重新计划查询的总次数。Neo4j 默认缓存 1000 个计划。如果观察到持续的重计划事件或大规模峰值,可能表明存在需要调查的问题。(计数器) |
|
查询重计划之间等待的总秒数。(计数器) |
数据库数据计数指标
| 名称 | 描述 |
|---|---|
|
数据库中的关系总数。(计量器) |
|
数据库中的节点总数。这是图大小的一个粗略指标。如果您正在运行批量插入操作,可以看到此数值增加。(计量器) |
|
为存储在数据库中的不同关系类型内部生成的 ID 总数。这些 ID 不反映实际数据的变化。仅供参考,不代表任何问题。(计量器) |
数据库 neo4j 池指标
| 名称 | 描述 |
|---|---|
|
已使用或保留的堆内存(字节)。(计量器) |
|
已使用或保留的本地内存(字节)。(计量器) |
|
堆内存和本地内存已使用的总和(字节)。(计量器) |
|
堆内存和/或本地内存池容量的总和。(计量器) |
|
池中可用的未用内存(字节)。(计量器) |
数据库操作计数指标
| 名称 | 描述 |
|---|---|
|
成功的数据库创建操作计数。(计数器) |
|
成功的数据库启动操作计数。(计数器) |
|
成功的数据库停止操作计数。(计数器) |
|
成功的数据库删除操作计数。(计数器) |
|
失败的数据库操作计数。(计数器) |
|
先前失败但已恢复的数据库操作计数。(计数器) |
数据库状态计数指标
| 名称 | 描述 |
|---|---|
|
此服务器上托管的数据库。处于 |
|
此服务器上处于失败状态的数据库。(计量器) |
|
希望在此服务器上启动的数据库。(计量器) |
数据库数据指标
在 5.15 版本中已弃用
| 名称 | 描述 |
|---|---|
|
为存储在数据库中的不同关系类型内部生成的 ID 总数。这些 ID 不反映实际数据的变化。仅供参考,不代表任何问题。(计量器) |
|
为存储在数据库中的不同属性名称内部生成的 ID 总数。这些 ID 不反映实际数据的变化。仅供参考,不代表任何问题。(计量器) |
|
为存储在数据库中的关系内部生成的、可重用的 ID 总数。这些 ID 不反映实际数据的变化。如果您想要一个粗略的图大小指标,请改用 |
|
为存储在数据库中的节点内部生成的、可重用的 ID 总数。这些 ID 不反映实际数据的变化。如果您想要一个粗略的图大小指标,请改用 |
|
对于使用 块格式 (block format) 的数据库,数据库数据指标不报告数值。相反,这些指标始终报告 |
全局 neo4j 池指标
| 名称 | 描述 |
|---|---|
|
已使用或保留的堆内存(字节)。(计量器) |
|
已使用或保留的本地内存(字节)。(计量器) |
|
堆内存和本地内存已使用的总和(字节)。(计量器) |
|
堆内存和/或本地内存池容量的总和。(计量器) |
|
池中可用的未用内存(字节)。(计量器) |
数据库页面缓存指标
| 名称 | 描述 |
|---|---|
|
页面缓存驱逐过程中出现的异常总数。(计数器) |
|
页面缓存执行的页面刷新总数。(计数器) |
|
页面缓存执行的页面合并总数。(计数器) |
|
页面缓存执行的页面解除固定 (unpin) 总数。(计数器) |
|
页面缓存执行的页面固定 (pin) 总数。(计数器) |
|
页面缓存执行的页面驱逐总数。(计数器) |
|
由于可用页面较少,页面缓存执行的协作页面驱逐总数。(计数器) |
|
通过页面驱逐刷新的页面总数。(计数器) |
|
通过协作页面驱逐刷新的页面总数。(计数器) |
|
页面缓存中的缺页中断 (page fault) 总数。如果此计数随着时间的推移不断增加,可能表明需要更多的页面缓存。但是,请注意,当 Neo4j Enterprise 启动时,所有的页面缓存预热活动都会导致缺页中断。因此,在启动后立即观察到大量的缺页中断计数是正常的。(计数器) |
|
页面缓存中发生的失败的缺页中断总数。(计数器) |
|
页面缓存中发生的已取消的缺页中断总数。(计数器) |
|
页面缓存中发生的向量缺页中断总数。(计数器) |
|
页面缓存中发生的失败的向量缺页中断总数。(计数器) |
|
页面缓存中发生的不是由页面固定引起的缺页中断总数。代表通过向量缺页中断加载的页面。(计数器) |
|
页面缓存中发生的页面命中总数。(计数器) |
|
命中次数与页面缓存中查找总数的比率。性能依赖于有效地使用页面缓存,因此该指标应持续保持在 98-100% 的范围内。如果远低于此值,则说明数据库访问磁盘的频率过高。(计量器) |
|
已使用页面数与可用页面总数的比率。该指标显示了分配的页面缓存中有多少百分比正在实际使用。如果为 100%,则命中率可能会开始下降,您应考虑分配更多的内存给页面缓存。(计量器) |
|
页面缓存读取的总字节数。(计数器) |
|
页面缓存写入的总字节数。(计数器) |
|
页面缓存执行的 IO 操作总数。(计数器) |
|
在进行 IO 操作期间页面缓存刷新 IO 限制器被节流的总次数。(计数器) |
|
在进行 IO 操作期间页面缓存刷新 IO 限制器被节流的总毫秒数。(计数器) |
|
页面缓存中发生的页面复制总数。(计数器) |
|
引入于 2026.02 页面缓存中加载的旧页面快照总数。(计数器) |
|
引入于 2026.02 页面缓存中发生的页面异步 IO 提交总数。(计数器) |
|
引入于 2026.02 页面缓存中发生的页面异步 IO 完成总数。(计数器) |
|
引入于 2026.02 页面缓存中发生的页面异步 IO 失败总数。(计数器) |
查询执行指标
| 名称 | 描述 |
|---|---|
|
已执行的成功查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数,而不是在中间的路由服务器上。(计数器) |
|
已执行的失败查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数,而不是在中间的路由服务器上。(计数器) |
|
成功执行的查询的执行时间(毫秒)。(直方图) |
|
并行运行时执行的成功查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数。(计数器) |
|
并行运行时执行的失败查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数。(计数器) |
|
并行运行时成功执行的查询的执行时间(毫秒)。(直方图) |
|
流水线 (pipelined) 运行时执行的成功查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数。(计数器) |
|
流水线运行时执行的失败查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数。(计数器) |
|
流水线运行时成功执行的查询的执行时间(毫秒)。(直方图) |
|
槽位 (slotted) 运行时执行的成功查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数。(计数器) |
|
槽位运行时执行的失败查询计数。服务端路由的查询在它们最终到达并执行的服务器上贡献此计数。(计数器) |
|
槽位运行时成功执行的查询的执行时间(毫秒)。(直方图) |
查询路由指标
| 名称 | 描述 |
|---|---|
|
本地执行的查询总数。(计数器) |
|
路由到同一集群中其他成员的查询总数。(计数器) |
|
路由到集群外服务器的查询总数。(计数器) |
数据库存储大小指标
| 名称 | 描述 |
|---|---|
|
重命名于 2025.01 数据库和事务日志的总大小(字节)。数据库的总大小有助于确定需要多少页面缓存。它还有助于比较数据存储所使用的总磁盘空间以及剩余可用空间。(计量器) |
|
数据库的大小(字节)。数据库的总大小有助于确定需要多少页面缓存。它还有助于比较数据存储所使用的总磁盘空间以及剩余可用空间。(计量器) |
|
数据库中已保留但可用空间的估计值(字节)。在写入新数据时,至少有这么多空间是可以重复利用的。(计量器) |
数据库事务日志指标
| 名称 | 描述 |
|---|---|
|
到目前为止执行的事务日志轮转总数。(计数器) |
|
到目前为止花费在轮转事务日志上的总时间(毫秒)。(计数器) |
|
上一次日志轮转事件的持续时间(毫秒)。(计量器) |
|
追加到事务日志的总字节数。(计数器) |
|
事务日志刷新总数。(计数器) |
|
上一个事务追加批次的大小。(计量器) |
数据库事务指标
| 名称 | 描述 |
|---|---|
|
已启动的事务总数。(计数器) |
|
并发事务的最高峰值。这是一个非常有用的数值,有助于理解最高负载场景的设计,以及是否应该调整 Bolt 线程设置。(计数器) |
|
当前活动事务的数量。仅供参考,不代表任何问题。峰值或大幅增长可能表明存在大量数据加载或高读取负载。(计量器) |
|
当前活动读取事务的数量。(计量器) |
|
当前活动写入事务的数量。(计量器) |
|
已提交事务的总数。仅供参考,不代表任何问题。峰值或大幅增长表明存在大量数据加载或高读取负载。(计数器) |
|
已提交的读取事务总数。仅供参考,不代表任何问题。峰值或大幅增长表明存在高读取负载。(计数器) |
|
已提交的写入事务总数。仅供参考,不代表任何问题。峰值或大幅增长表明存在大量数据加载,这可能与您正在调查的某些行为相对应。(计数器) |
|
已回滚事务的总数。(计数器) |
|
已回滚的读取事务总数。(计数器) |
|
已回滚的写入事务总数。看到大量写入回滚可能表明存在各种锁定、事务超时等问题。(计数器) |
|
引入于 2026.01 因死锁而回滚的事务总数。(计数器) |
|
已终止事务的总数。(计数器) |
|
已终止的读取事务总数。(计数器) |
|
已终止的写入事务总数。(计数器) |
|
最后提交的事务 ID。请为每个实例跟踪此值。(集群)请为每个主库和从库跟踪此值。可能需要分拆成单独的图表。它应该显示一条不断增加的线;如果其中一条线持平或落后,则很清楚该成员不再复制数据,需要采取行动来纠正这种情况。(计数器) |
|
最后一个关闭的事务的 ID。(计数器) |
|
堆内存中事务的大小(字节)。(直方图) |
|
本地内存中事务的大小(字节)。(直方图) |
|
引入于 2025.04 事务日志中可用的最低已提交事务 ID。请为每个实例跟踪此值。(集群)请为每个主库和从库跟踪此值。数据可以组织成单独的图表,显示随时间增加的单条线。此 ID 与 |
数据库索引指标
| 名称 | 描述 |
|---|---|
|
全文索引被查询的总次数。(计数器) |
|
已完成的全文索引填充作业总数。(计数器) |
|
查找索引被查询的总次数。(计数器) |
|
已完成的查找索引填充作业总数。(计数器) |
|
文本索引被查询的总次数。(计数器) |
|
已完成的文本索引填充作业总数。(计数器) |
|
范围索引被查询的总次数。(计数器) |
|
已完成的范围索引填充作业总数。(计数器) |
|
点索引被查询的总次数。(计数器) |
|
已完成的点索引填充作业总数。(计数器) |
|
向量索引被查询的总次数。(计数器) |
|
已完成的向量索引填充作业总数。(计数器) |
集群特定指标
追赶 (Catch-up) 指标
| 名称 | 描述 |
|---|---|
|
从其他集群成员接收的事务 (TX) 拉取请求。(计数器) |
发现服务指标
| 名称 | 描述 |
|---|---|
|
处于存活或被怀疑状态的成员数量。(计量器) |
|
不可达的集群成员数量。(计量器) |
Raft 指标
| 名称 | 描述 |
|---|---|
|
Raft 日志的追加索引。每个索引代表一个提议提交的写事务(可能是内部事务)。数值大多会增加,但有时由于领导者更换,它们可能会减少。追加索引应始终大于或等于提交索引。(计量器) |
|
Raft 日志的提交索引。代表先前追加条目的提交。如果您不解绑集群状态,其值会单调增加。提交索引应始终小于或等于追加索引,并大于或等于已应用索引。(计量器) |
|
Raft 日志的已应用索引。代表将已提交的 Raft 日志条目应用到数据库和内部状态。已应用索引应始终小于或等于提交索引。此值与提交索引之间的差异可用于监控从库数据库的更新程度。(计量器) |
|
Raft 日志的头部索引。代表日志中存在的最旧 Raft 索引。修剪 (prune) 事件会增加此值。这可用于跟踪成员拥有的 Raft 日志历史记录有多少。(计量器) |
|
此数据库的 Raft 任期 (term)。除非您清除集群状态,否则它会单调增加。(计量器) |
|
弃用于 2025.02 事务重试。(计数器) |
|
此服务器是否为领导者?请为集群中每个 Raft 主数据库跟踪此指标。如果不是领导者,它报告 |
|
传输中缓存的总字节数。(计量器) |
|
传输中缓存的最大字节数。(计量器) |
|
传输中缓存的元素数量。(计量器) |
|
传输中缓存的最大元素数。(计量器) |
|
传输中缓存命中数。(计数器) |
|
传输中缓存缺失数。(计数器) |
|
Raft 日志条目预取缓冲区滞后。已添加到 Raft 日志但未应用到存储的条目数量。(计量器) |
|
Raft 日志条目预取缓冲区字节数。预取缓冲区中条目的总大小(字节)。(计量器) |
|
Raft 日志条目预取缓冲区大小。预取缓冲区中存储的条目数量。(计量器) |
|
Raft 日志条目预取缓冲区异步放入 (async puts)。(计量器) |
|
Raft 日志条目预取缓冲区同步放入 (sync puts)。(计量器) |
|
接收 Raft 消息到开始处理之间的延迟。(计量器) |
|
引入于 2025.07 用于 Raft 消息处理延迟的指标计时器。该计时器提供不同类型的统计信息,例如 |
|
用于 Raft 消息处理的指标计时器,与消息类型无关。该计时器提供不同类型的统计信息,例如 |
|
Raft 复制请求的总数。它随着写事务(可能是内部事务)活动的增加而增加。(计数器) |
|
Raft 复制请求尝试的总次数。它大于或等于复制请求次数。(计数器) |
|
失败的 Raft 复制尝试总次数。(计数器) |
|
本地无法确定结果的 Raft 复制尝试总次数。(计数器) |
|
成功的 Raft 复制请求总次数。(计数器) |
|
自上次领导者发送消息以来经过的时间(毫秒)。应该定期重置。(计量器) |
|
引入于 2025.01 触发的 Raft 快照下载尝试总次数。(计数器) |
|
引入于 2025.01 成功下载的 Raft 快照总次数。(计数器) |
|
引入于 2025.01 失败的 Raft 快照下载尝试总次数。(计数器) |
|
引入于 2025.02 提供给队列的入站消息总数。(计数器) |
|
引入于 2025.02 队列接受的入站消息总数。(计数器) |
|
引入于 2025.02 队列拒绝的入站消息总数。(计数器) |
|
引入于 2025.02 此成员触发的预选举总数。(计数器) |
|
引入于 2025.02 此成员触发的选举总数。(计数器) |
存储复制指标
| 名称 | 描述 |
|---|---|
|
此实例发出的拉取请求总数。(计数器) |
|
此实例在拉取更新中请求的最高事务 ID。(计数器) |
|
此实例在最近的拉取更新中拉取的最高事务 ID。(计数器) |
|
引入于 2025.02 存储文件下载尝试总次数。(计数器) |
|
引入于 2025.02 失败的存储文件下载总次数。(计数器) |
|
引入于 2025.02 成功的存储文件下载总次数。(计数器) |
Java 虚拟机指标
JVM 指标显示有关垃圾回收(例如,事件数量和收集所花费的时间)、内存池和缓冲区、正在运行的活动线程数以及 Neo4j 进程和操作系统的中央处理器 (CPU) 使用率的信息。它们依赖于环境,因此可能会因硬件和 JVM 配置的不同而有所差异。
有关 JVM 内存使用情况的指标暴露了由 MemoryPoolMXBeans 和 BufferPoolMXBeans 提供的值。内存池是 JVM 管理的内存,例如 neo4j.dbms.vm.memory.pool.g1_survivor_space。因此,如有必要,您可以使用 JVM 设置对其进行调优。
缓冲区池是垃圾回收器管理的内存之外的空间。Neo4j 会根据需要分配这些池中的缓冲区。您可以使用 JVM 设置限制此内存,但通常没有充分理由去修改它们。
CPU 使用率指标引入于 2025.01
| 名称 | 描述 |
|---|---|
|
操作系统的最近 CPU 使用率。此值是 [0.0, 1.0] 区间内的双精度浮点数。根据您使用的 Java 发行版,该指标可能不可用。(计量器) |
|
Neo4j 进程的最近 CPU 使用率。此值是 [0.0, 1.0] 区间内的双精度浮点数。根据您使用的 Java 发行版,该指标可能不可用。(计量器) |
JVM 文件描述符指标
| 名称 | 描述 |
|---|---|
|
当前打开的文件描述符数量。(计量器) |
|
(操作系统设置) 打开文件描述符的最大数量。由于 Neo4j 使用了本地和 Lucene 索引,建议将其设置为 40K 文件句柄。如果此指标接近该限制,您应考虑提高它。(计量器) |
GC 指标
| 名称 | 描述 |
|---|---|
|
累计垃圾回收时间(毫秒)。长时间的 GC 可能表明存在性能问题或潜在的不稳定性。如果这在集群中接近心跳超时,可能会导致不必要的领导者切换。(计数器) |
|
垃圾回收总次数。(计数器) |
JVM 堆内存指标
| 名称 | 描述 |
|---|---|
|
保证可供 JVM 使用的内存量(字节)。(计量器) |
|
当前已使用的内存量(字节)。这是在给定时间点当前使用的堆空间量。监控此指标以确定您是否持续达到极限(在这种情况下,您应该增加初始和最大堆大小),或者是否利用不足(您应该减少初始和最大堆大小)。(计量器) |
|
可使用的最大堆内存量(字节)。这是在给定时间点当前使用的堆空间量。监控此指标以确定您是否持续达到极限(在这种情况下,您应该增加初始和最大堆大小),或者是否利用不足(您应该减少初始和最大堆大小)。(计量器) |