指标参考
解释不熟悉的指标时应谨慎。建议阅读性能部分以更好地理解这些指标。 |
要了解更多关于2025.x中弃用和移除的指标,请参阅页面Neo4j 2025.x中的变更、弃用和移除。
指标类型
Neo4j具有以下指标类型
-
全局 — 覆盖整个Neo4j DBMS。
-
每个数据库 — 覆盖单个数据库。
指标属于以下类别之一
-
瞬时值 — 显示特定值的瞬时读数。
-
计数器 — 显示累积值。
-
直方图 — 显示值的分布。
Neo4j支持多种方式暴露指标。更多详情请参阅页面暴露指标。
全局指标
全局指标涵盖整个数据库管理系统,并代表系统的整体状态。
全局指标的命名格式如下
-
<user-configured-prefix>.dbms.<metric-name>
,其中<user-configured-prefix>可通过server.metrics.prefix
配置设置进行配置。
只要数据库管理系统可用,就会报告此类指标。例如,所有与JVM相关的指标都是全局的。特别是,neo4j.dbms.vm.thread.count
指标的默认用户配置前缀为neo4j
,全局指标名称为vm.thread.count
。
默认情况下,全局指标包括
数据库指标
每个数据库指标仅针对特定数据库报告。数据库指标仅在数据库的生命周期内可用。当数据库变得不可用时,其所有指标也变得不可用。
数据库指标的命名格式如下
-
<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不反映实际数据的变化。如果您想粗略衡量图的大小,请改用 |
数据库数据指标不报告使用块格式的数据库的值。相反,指标总是报告 |
全局Neo4j池指标
名称 | 描述 |
---|---|
|
已使用或保留的堆内存(字节)。(瞬时值) |
|
已使用或保留的本地内存(字节)。(瞬时值) |
|
堆内存和本地内存已使用总和(字节)。(瞬时值) |
|
堆和/或本地内存池的总容量大小。(瞬时值) |
|
池中可用未使用的内存(字节)。(瞬时值) |
数据库页面缓存指标
名称 | 描述 |
---|---|
|
页面缓存驱逐过程中遇到的异常总数。(计数器) |
|
页面缓存执行的页面刷新总数。(计数器) |
|
页面缓存执行的页面合并总数。(计数器) |
|
页面缓存执行的页面解除固定总数。(计数器) |
|
页面缓存执行的页面固定总数。(计数器) |
|
页面缓存执行的页面驱逐总数。(计数器) |
|
由于可用页面不足,页面缓存执行的协作页面驱逐总数。(计数器) |
|
页面驱逐刷新的页面总数。(计数器) |
|
协作页面驱逐刷新的页面总数。(计数器) |
|
页面缓存中的页面错误总数。如果此计数随时间持续增加,可能表明需要更多页面缓存。但是,请注意,当Neo4j Enterprise启动时,所有页面缓存预热活动都会导致页面错误。因此,在启动后立即观察到显著的页面错误计数是正常的。(计数器) |
|
页面缓存中发生的失败页面错误总数。(计数器) |
|
页面缓存中发生的取消页面错误总数。(计数器) |
|
页面缓存中发生的矢量页面错误总数。(计数器) |
|
页面缓存中发生的失败矢量页面错误总数。(计数器) |
|
页面缓存中未由页面固定引起的页面错误总数。表示由矢量错误加载的页面。(计数器) |
|
页面缓存中发生的页面命中总数。(计数器) |
|
页面缓存中命中数与查找总数的比率。性能依赖于高效使用页面缓存,因此此指标应持续保持在98-100%的范围内。如果远低于此,则数据库过于频繁地访问磁盘。(瞬时值) |
|
已使用页面数与可用页面总数的比率。此指标显示已分配页面缓存的实际使用百分比。如果为100%,则命中率很可能会开始下降,您应该考虑为页面缓存分配更多RAM。(瞬时值) |
|
页面缓存读取的总字节数。(计数器) |
|
页面缓存写入的总字节数。(计数器) |
|
页面缓存执行的IO操作总数。(计数器) |
|
页面缓存刷新IO限制器在正在进行的IO操作中被限制的总次数。(计数器) |
|
页面缓存刷新IO限制器在正在进行的IO操作中被限制的总毫秒数。(计数器) |
|
页面缓存中发生的页面复制总数。(计数器) |
查询执行指标
名称 | 描述 |
---|---|
|
成功执行的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
执行失败的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
成功执行查询的执行时间(毫秒)。(直方图) |
|
并行运行时成功执行的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
并行运行时执行失败的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
在并行运行时成功执行查询的执行时间(毫秒)。(直方图) |
|
流水线运行时成功执行的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
流水线运行时执行失败的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
在流水线运行时成功执行查询的执行时间(毫秒)。(直方图) |
|
槽式运行时成功执行的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
槽式运行时执行失败的查询计数。服务器端路由的查询会增加它们最终到达并执行的服务器上的此计数,而不是中间的路由服务器。(计数器) |
|
在槽式运行时成功执行查询的执行时间(毫秒)。(直方图) |
查询路由指标
名称 | 描述 |
---|---|
|
本地执行的查询总数。(计数器) |
|
路由到同一集群中另一个成员的查询总数。(计数器) |
|
路由到集群外服务器的查询总数。(计数器) |
数据库存储大小指标
名称 | 描述 |
---|---|
|
在2025.01中重命名 数据库和事务日志的总大小(字节)。数据库的总大小有助于确定所需的缓存页面大小。它还有助于比较数据存储使用的总磁盘空间和可用空间。(瞬时值) |
|
数据库的大小(字节)。数据库的总大小有助于确定所需的缓存页面大小。它还有助于比较数据存储使用的总磁盘空间和可用空间。(瞬时值) |
|
数据库中保留但可用空间的估计值(字节)。至少有这么多的空间在写入新数据时可能可重复使用。(瞬时值) |
数据库事务日志指标
名称 | 描述 |
---|---|
|
迄今为止执行的事务日志轮换总数。(计数器) |
|
迄今为止在轮换事务日志中花费的总时间(毫秒)。(计数器) |
|
上次日志轮换事件的持续时间(毫秒)。(瞬时值) |
|
追加到事务日志的字节总数。(计数器) |
|
事务日志刷新总数。(计数器) |
|
上一个事务追加批次的大小。(瞬时值) |
数据库事务指标
名称 | 描述 |
---|---|
|
已启动事务的总数。(计数器) |
|
并发事务的最高峰值。这是一个有用的值,有助于您针对最高负载场景进行设计,并决定是否应更改Bolt线程设置。(计数器) |
|
当前活动的事务数。此为信息性指标,不表示任何问题。峰值或大幅增加可能表示大量数据加载或高读取负载。(瞬时值) |
|
当前活动的读取事务数。(瞬时值) |
|
当前活动的写入事务数。(瞬时值) |
|
已提交事务的总数。此为信息性指标,不表示任何问题。峰值或大幅增加表示大量数据加载或高读取负载。(计数器) |
|
已提交读取事务的总数。此为信息性指标,不表示任何问题。峰值或大幅增加表示高读取负载。(计数器) |
|
已提交写入事务的总数。此为信息性指标,不表示任何问题。峰值或大幅增加表示大量数据加载,这可能与您正在调查的某些行为相关。(计数器) |
|
已回滚事务的总数。(计数器) |
|
已回滚读取事务的总数。(计数器) |
|
已回滚写入事务的总数。看到大量写入被回滚可能表明锁定、事务超时等各种问题。(计数器) |
|
已终止事务的总数。(计数器) |
|
已终止读取事务的总数。(计数器) |
|
已终止写入事务的总数。(计数器) |
|
最后提交事务的ID。跟踪每个实例的此ID。(集群)跟踪每个主数据库和每个从数据库的此ID。可能需要分成单独的图表。它应该显示一条持续增加的线,如果其中一条线趋于平稳或落后,则表明该成员不再复制数据,需要采取措施纠正这种情况。(计数器) |
|
最后关闭事务的ID。(计数器) |
|
事务在堆上的大小(字节)。(直方图) |
|
事务在本地内存中的大小(字节)。(直方图) |
|
在2025.04中引入 事务日志中最低可用已提交事务的ID。跟踪每个实例的此ID。(集群)跟踪每个主数据库和从数据库的此ID。数据可以组织成单独的图表,显示一条随时间增长的单线。此ID与 |
数据库索引指标
名称 | 描述 |
---|---|
|
全文索引被查询的总次数。(计数器) |
|
已完成的全文索引填充作业总数。(计数器) |
|
查找索引被查询的总次数。(计数器) |
|
已完成的查找索引填充作业总数。(计数器) |
|
文本索引被查询的总次数。(计数器) |
|
已完成的文本索引填充作业总数。(计数器) |
|
范围索引被查询的总次数。(计数器) |
|
已完成的范围索引填充作业总数。(计数器) |
|
点索引被查询的总次数。(计数器) |
|
已完成的点索引填充作业总数。(计数器) |
|
向量索引被查询的总次数。(计数器) |
|
已完成的向量索引填充作业总数。(计数器) |
集群特定指标
发现指标
名称 | 描述 |
---|---|
|
处于活动或可疑状态的成员数量。(瞬时值) |
|
不可达集群成员的数量。(瞬时值) |
Raft指标
名称 | 描述 |
---|---|
|
Raft日志的追加索引。每个索引代表一个提议提交的写入事务(可能是内部事务)。值大多增加,但有时由于领导者变更可能会减少。追加索引应始终大于或等于提交索引。(瞬时值) |
|
Raft日志的提交索引。表示先前追加条目的提交。如果您不解除绑定集群状态,其值会单调增加。提交索引应始终小于或等于追加索引,并大于或等于已应用索引。(瞬时值) |
|
Raft日志的应用索引。表示已提交的Raft日志条目应用于数据库和内部状态。应用索引应始终小于或等于提交索引。此索引与提交索引之间的差异可用于监控追随者数据库的最新程度。(瞬时值) |
|
Raft日志的头部索引。表示日志中存在的最旧的Raft索引。修剪事件将增加此值。这可用于跟踪成员拥有的Raft日志历史记录量。(瞬时值) |
|
此数据库的Raft任期。除非您清除集群状态,否则它会单调增加。(瞬时值) |
|
在2025.02中已弃用 事务重试次数。(计数器) |
|
此服务器是领导者吗?跟踪集群中每个Raft主数据库的此指标。如果不是领导者,则报告 |
|
飞行中缓存总字节数。(瞬时值) |
|
飞行中缓存最大字节数。(瞬时值) |
|
飞行中缓存元素计数。(瞬时值) |
|
飞行中缓存最大元素数。(瞬时值) |
|
飞行中缓存命中次数。(计数器) |
|
飞行中缓存未命中次数。(计数器) |
|
Raft日志条目预取缓冲区延迟。已添加到Raft日志但尚未应用于存储的条目数量。(瞬时值) |
|
Raft日志条目预取缓冲区字节数。预取缓冲区中条目的总大小(字节)。(瞬时值) |
|
Raft日志条目预取缓冲区大小。预取缓冲区中存储的条目数量。(瞬时值) |
|
Raft日志条目预取缓冲区异步放入数。(瞬时值) |
|
Raft日志条目预取缓冲区同步放入数。(瞬时值) |
|
接收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使用率指标
名称 | 描述 |
---|---|
|
操作系统的近期CPU使用率。此值是一个介于[0.0, 1.0]之间的双精度浮点数。根据您使用的Java发行版,此指标可能不可用。(瞬时值) |
|
Neo4j进程的近期CPU使用率。此值是一个介于[0.0, 1.0]之间的双精度浮点数。根据您使用的Java发行版,此指标可能不可用。(瞬时值) |
JVM文件描述符指标
名称 | 描述 |
---|---|
|
当前打开的文件描述符数量。(瞬时值) |
|
(操作系统设置) 打开文件描述符的最大数量。建议设置为4万个文件句柄,因为Neo4j使用本地和Lucene索引。如果此指标接近限制,您应该考虑提高它。(瞬时值) |
GC指标
名称 | 描述 |
---|---|
|
累积的垃圾回收时间(毫秒)。长时间的GC可能表示性能问题或潜在的不稳定性。如果它接近集群中的心跳超时时间,可能会导致不必要的领导者切换。(计数器) |
|
垃圾回收的总次数。(计数器) |
JVM堆指标
名称 | 描述 |
---|---|
|
保证可供JVM使用的内存量(字节)。(瞬时值) |
|
当前使用的内存量(字节)。这是在给定时间点当前使用的堆空间量。监控此指标以确定您是否持续达到最大值,在这种情况下,您应该增加初始和最大堆大小;或者如果您利用不足,则应该减小初始和最大堆大小。(瞬时值) |
|
可使用的最大堆内存量(字节)。这是在给定时间点当前使用的堆空间量。监控此指标以确定您是否持续达到最大值,在这种情况下,您应该增加初始和最大堆大小;或者如果您利用不足,则应该减小初始和最大堆大小。(瞬时值) |