指标参考

在解读不熟悉的指标时,应谨慎小心。建议阅读性能部分,以更好地理解指标。

指标类型

Neo4j 具有以下类型的指标

  • 全局 — 涵盖整个 Neo4j DBMS。

  • 每个数据库 — 涵盖单个数据库。

这些指标属于以下类别之一

  • 规格 — 显示特定值的瞬时读数。

  • 计数器 — 显示累积值。

  • 直方图 — 显示值的分布。

Neo4j 支持多种公开指标的方式。有关更多详细信息,请参阅页面公开指标

全局指标

全局指标涵盖整个数据库管理系统,并表示整个系统的状态。

全局指标具有以下名称格式

  • <用户配置的前缀>.dbms.<指标名称>,其中 <用户配置的前缀> 可以使用 server.metrics.prefix 配置设置进行配置。

此类型的指标在数据库管理系统可用后立即报告。例如,所有与 JVM 相关的指标都是全局的。特别是,neo4j.dbms.vm.thread.count 指标具有默认用户配置的前缀 neo4j,全局指标名称为 vm.thread.count

默认情况下,全局指标包括

数据库指标

每个数据库指标仅针对特定数据库报告。数据库指标仅在数据库的生命周期内可用。当数据库变得不可用时,其所有指标也将变得不可用。

数据库指标具有以下名称格式

  • <用户配置的前缀>.database.<数据库名称>.<指标名称>,其中 <用户配置的前缀> 可以使用 server.metrics.prefix 配置设置进行配置。

例如,任何事务指标都是数据库指标。特别是,neo4j.database.mydb.transaction.started 指标具有默认用户配置的前缀 neo4j,并且是 mydb 数据库的指标。

默认情况下,数据库指标包括:

通用指标

Bolt 指标

表 1. Bolt 指标
名称 描述

<prefix>.dbms.bolt.connections_opened

自启动以来打开的 Bolt 连接总数。这包括成功和失败的连接。可用于结合其他指标通过 Bolt 驱动程序监控负载。(计数器)

<prefix>.dbms.bolt.connections_closed

自启动以来关闭的 Bolt 连接总数。这包括正常和异常结束的连接。可用于结合其他指标通过 Bolt 驱动程序监控负载。(计数器)

<prefix>.dbms.bolt.connections_running

当前正在执行 Cypher 并返回结果的 Bolt 连接总数。用于跟踪 Bolt 连接上的总体负载。这受限于通过 dbms.connector.bolt.thread_pool_max_size 配置的 Bolt 工作线程数。达到此最大值表示服务器已满负荷运行。(规格)

<prefix>.dbms.bolt.connections_idle

当前未执行 Cypher 或返回结果的 Bolt 连接总数。(规格)

<prefix>.dbms.bolt.messages_received

自启动以来通过 Bolt 收到的消息总数。可用于结合其他指标跟踪常规消息活动。(计数器)

<prefix>.dbms.bolt.messages_started

自收到以来开始处理的消息总数。接收到的消息可能在 Bolt 工作线程可用之前才开始处理。在 bolt.messages_receivedbolt.messages_started 之间观察到的较大差距可能表明服务器已满负荷运行。(计数器)

<prefix>.dbms.bolt.messages_done

已完成处理的 Bolt 消息总数,无论成功与否。用于跟踪整体负载。(计数器)

<prefix>.dbms.bolt.messages_failed

处理过程中失败的消息总数。大量的故障可能表明服务器存在问题,建议进一步调查日志。(计数器)

<prefix>.dbms.bolt.accumulated_queue_time

(不支持的功能)当启用 internal.server.bolt.thread_pool_queue_size 时,Bolt 消息在处理队列中等待 Bolt 工作线程可用以处理它之前的时间(毫秒)。此值的急剧增加表明服务器已满负荷运行。如果禁用 internal.server.bolt.thread_pool_queue_size,则该值应为 0,这意味着消息将直接传递给工作线程。(计数器)

<prefix>.dbms.bolt.accumulated_processing_time

工作线程处理消息的总时间(毫秒)。可用于结合其他指标通过 Bolt 驱动程序监控负载。(计数器)

<prefix>.dbms.bolt.worker_thread_bound_time

在 5.21 中引入工作线程绑定到给定连接所花费的时间(毫秒)。(直方图)

<prefix>.dbms.bolt.response_success

(不支持的功能)当启用 internal.server.bolt.response_metrics 时,encounteredsuccess 响应的数量。(计数器)

<prefix>.dbms.bolt.response_ignored

(不支持的功能)当启用 internal.server.bolt.response_metrics 时,encounteredignored 响应的数量(计数器)

<prefix>.dbms.bolt.response_failed

(不支持的功能)当启用 internal.server.bolt.response_metrics 时,给定错误代码的 encounteredinstances 的数量。(计数器)

Bolt 驱动程序指标

表 2. Bolt 驱动程序指标
名称 描述

<prefix>.dbms.bolt_driver.api.managed_transaction_function_calls

托管事务函数调用的总数。(计数器)

<prefix>.dbms.bolt_driver.api.unmanaged_transaction_calls

非托管事务函数调用的总数。(计数器)

<prefix>.dbms.bolt_driver.api.implicit_transaction_calls

隐式事务函数调用的总数。(计数器)

<prefix>.dbms.bolt_driver.api.execute_calls

驱动程序级 execute 函数调用的总数。(计数器)

数据库检查点指标

表 3. 数据库检查点指标
名称 描述

<prefix>.check_point.events

迄今为止执行的检查点事件总数。(计数器)

<prefix>.check_point.total_time

迄今为止在检查点花费的总时间(毫秒)。(计数器)

<prefix>.check_point.duration

上次检查点事件的持续时间(毫秒)。检查点通常需要几秒到几分钟。长时间的检查点可能是一个问题,因为当数据库停止时、当进行热备份时以及定期也会调用这些检查点。超过 30 分钟左右的值应该引起一些调查。(规格)

<prefix>.check_point.flushed_bytes

在 5.10 中引入在所有检查点事件中累积的刷新字节数。(计数器)

<prefix>.check_point.limit_millis

IO 限制器暂停检查点的毫秒数。(规格)

<prefix>.check_point.limit_times

IO 限制器暂停检查点的次数。(规格)

<prefix>.check_point.pages_flushed

上次检查点事件期间刷新的页面数。(规格)

<prefix>.check_point.io_performed

从 Neo4j 的角度来看,上次检查点事件期间执行的 IO 次数。(规格)

<prefix>.check_point.io_limit

上次检查点事件期间使用的 IO 限制。(规格)

Cypher 指标

表 4. Cypher 指标
名称 描述

<prefix>.cypher.replan_events

Cypher 决定重新规划查询的总次数。Neo4j 默认缓存 1000 个计划。看到持续的重新规划事件或大幅峰值可能表明需要调查的问题。(计数器)

<prefix>.cypher.replan_wait_time

查询重新规划之间等待的总秒数。(计数器)

数据库数据计数指标

表 5. 数据库数据计数指标
名称 描述

<prefix>.neo4j.count.relationship

数据库中关系的总数。(规格)

<prefix>.neo4j.count.node

数据库中节点的总数。图大小的粗略指标。如果您正在运行批量插入操作,您可以看到此值增加。(规格)

<prefix>.neo4j.count.relationship_types

在 5.15 中引入数据库中存储的不同关系类型的内部生成的 ID 总数。这些 ID 不会反映实际数据中的更改。信息性,不是任何问题的指示。(规格)

数据库 neo4j 池指标

表 6. 数据库 neo4j 池指标
名称 描述

<prefix>.pool.<pool>.<database>.used_heap

使用的或保留的堆内存(字节)。(规格)

<prefix>.pool.<pool>.<database>.used_native

使用的或保留的本地内存(字节)。(规格)

<prefix>.pool.<pool>.<database>.total_used

使用的堆和本地内存的总和(字节)。(规格)

<prefix>.pool.<pool>.<database>.total_size

堆和/或本地内存池容量的总大小。(规格)

<prefix>.pool.<pool>.<database>.free

池中可用的未使用内存(字节)。(规格)

数据库操作计数指标

表 7. 数据库操作计数指标
名称 描述

<prefix>.db.operation.count.create

成功的数据库创建操作的计数。(计数器)

<prefix>.db.operation.count.start

成功的数据库启动操作的计数。(计数器)

<prefix>.db.operation.count.stop

成功的数据库停止操作的计数。(计数器)

<prefix>.db.operation.count.drop

成功的数据库删除操作的计数。(计数器)

<prefix>.db.operation.count.failed

失败的数据库操作的计数。(计数器)

<prefix>.db.operation.count.recovered

之前失败但已恢复的数据库操作的计数。(计数器)

数据库状态计数指标

表 8. 数据库状态计数指标
名称 描述

<prefix>.db.state.count.hosted

在此服务器上托管的数据库。处于 startedstore copyingdraining 状态的数据库被认为是托管的。(规格)

<prefix>.db.state.count.failed

在此服务器上处于失败状态的数据库。(规格)

<prefix>.db.state.count.desired_started

希望在此服务器上启动的数据库。(规格)

数据库数据指标

在 5.15 中弃用

表 9. 数据库数据指标
名称 描述

<prefix>.ids_in_use.relationship_type

数据库中存储的不同关系类型的内部生成的 ID 总数。这些 ID 不会反映实际数据中的更改。信息性,不是任何问题的指示。(规格)

<prefix>.ids_in_use.property

数据库中存储的不同属性名称的内部生成的 ID 总数。这些 ID 不会反映实际数据中的更改。信息性,不是任何问题的指示。(规格)

<prefix>.ids_in_use.relationship

数据库中存储的关系的内部生成的可重用 ID 总数。这些 ID 不会反映实际数据中的更改。如果您想获得图大小的粗略指标,请改用 <prefix>.neo4j.count.relationship。(规格)

<prefix>.ids_in_use.node

数据库中存储的节点的内部生成的可重用 ID 总数。这些 ID 不会反映实际数据中的更改。如果您想获得图大小的粗略指标,请改用 <prefix>.neo4j.count.node。(规格)

全局 neo4j 池指标

表 10. 全局 neo4j 池指标
名称 描述

<prefix>.dbms.pool.<pool>.used_heap

使用的或保留的堆内存(字节)。(规格)

<prefix>.dbms.pool.<pool>.used_native

使用的或保留的本地内存(字节)。(规格)

<prefix>.dbms.pool.<pool>.total_used

使用的堆和本地内存的总和(字节)。(规格)

<prefix>.dbms.pool.<pool>.total_size

堆和/或本地内存池容量的总大小。(规格)

<prefix>.dbms.pool.<pool>.free

池中可用的未使用内存(字节)。(规格)

数据库页面缓存指标

表 11. 数据库页面缓存指标
名称 描述

<prefix>.page_cache.eviction_exceptions

页面缓存中驱逐过程中遇到的异常总数。(计数器)

<prefix>.page_cache.flushes

页面缓存执行的页面刷新总数。(计数器)

<prefix>.page_cache.merges

页面缓存执行的页面合并总数。(计数器)

<prefix>.page_cache.unpins

页面缓存执行的页面取消固定总数。(计数器)

<prefix>.page_cache.pins

页面缓存执行的页面固定总数。(计数器)

<prefix>.page_cache.evictions

页面缓存执行的页面驱逐总数。(计数器)

<prefix>.page_cache.evictions.cooperative

由于可用页面较少,页面缓存执行的协作页面驱逐总数。(计数器)

<prefix>.page_cache.eviction.flushes

5.17 版本引入页面驱逐刷新的页面总数。(计数器)

<prefix>.page_cache.eviction.cooperative.flushes

5.17 版本引入协作页面驱逐刷新的页面总数。(计数器)

<prefix>.page_cache.page_faults

页面缓存中的页面错误总数。如果此计数随着时间的推移持续增加,则可能表明需要更多页面缓存。但是,请注意,当 Neo4j Enterprise 启动时,所有页面缓存预热活动都会导致页面错误。因此,在启动后立即观察到大量的页面错误计数是正常的。(计数器)

<prefix>.page_cache.page_fault_failures

页面缓存中发生的页面错误失败总数。(计数器)

<prefix>.page_cache.page_cancelled_faults

页面缓存中发生的页面错误取消总数。(计数器)

<prefix>.page_cache.page_vectored_faults

页面缓存中发生的矢量化页面错误总数。(计数器)

<prefix>.page_cache.page_vectored_faults_failures

页面缓存中发生的矢量化页面错误失败总数。(计数器)

<prefix>.page_cache.page_no_pin_page_faults

页面缓存中发生的非页面固定导致的页面错误总数。表示由矢量化错误加载的页面。(计数器)

<prefix>.page_cache.hits

页面缓存中发生的页面命中总数。(计数器)

<prefix>.page_cache.hit_ratio

页面缓存中命中次数与查找总数的比率。性能依赖于有效使用页面缓存,因此此指标应始终保持在 98-100% 的范围内。如果远低于此值,则表示数据库访问磁盘的频率过高。(仪表盘)

<prefix>.page_cache.usage_ratio

已用页面数与可用页面总数的比率。此指标显示分配的页面缓存的百分比实际使用情况。如果为 100%,则命中率可能会开始下降,您应该考虑为页面缓存分配更多 RAM。(仪表盘)

<prefix>.page_cache.bytes_read

页面缓存读取的字节总数。(计数器)

<prefix>.page_cache.bytes_written

页面缓存写入的字节总数。(计数器)

<prefix>.page_cache.iops

页面缓存执行的 IO 操作总数。(计数器)

<prefix>.page_cache.throttled.times

在正在进行的 IO 操作期间,页面缓存刷新 IO 限流器被限流的次数。(计数器)

<prefix>.page_cache.throttled.millis

在正在进行的 IO 操作期间,页面缓存刷新 IO 限流器被限流的毫秒数。(计数器)

<prefix>.page_cache.pages_copied

页面缓存中发生的页面复制总数。(计数器)

查询执行指标

表 12. 查询执行指标
名称 描述

<prefix>.db.query.execution.success

成功执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

<prefix>.db.query.execution.failure

失败执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

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

成功执行的查询的执行时间(毫秒)。(直方图)

<prefix>.db.query.execution.parallel.success

并行运行时成功执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

<prefix>.db.query.execution.parallel.failure

并行运行时失败执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

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

并行运行时成功执行的查询的执行时间(毫秒)。(直方图)

<prefix>.db.query.execution.pipelined.success

流水线运行时成功执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

<prefix>.db.query.execution.pipelined.failure

流水线运行时失败执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

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

流水线运行时成功执行的查询的执行时间(毫秒)。(直方图)

<prefix>.db.query.execution.slotted.success

槽位运行时成功执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

<prefix>.db.query.execution.slotted.failure

槽位运行时失败执行的查询计数。服务器端路由的查询在最终到达并执行的服务器上对此计数做出贡献,而不是在中间的路由服务器上。(计数器)

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

槽位运行时成功执行的查询的执行时间(毫秒)。(直方图)

查询路由指标

表 13. 查询路由指标
名称 描述

<prefix>.dbms.routing.query.count.local

本地执行的查询总数。(计数器)

<prefix>.dbms.routing.query.count.remote_internal

路由到同一集群中另一个成员的查询总数。(计数器)

<prefix>.dbms.routing.query.count.remote_external

路由到集群外部服务器的查询总数。(计数器)

数据库存储大小指标

表 14. 数据库存储大小指标
名称 描述

<prefix>.store.size.total

数据库和事务日志的总大小(字节)。数据库的总大小有助于确定需要多少缓存页面。它还有助于比较数据存储使用的总磁盘空间以及可用空间。(仪表盘)

<prefix>.store.size.database

数据库的大小(字节)。数据库的总大小有助于确定需要多少缓存页面。它还有助于比较数据存储使用的总磁盘空间以及可用空间。(仪表盘)

<prefix>.store.size.available_reserved

5.21 版本引入数据库中已保留但可用空间的估计值(字节)。在写入新数据时,至少可以重用这么多空间。(仪表盘)

数据库事务日志指标

表 15. 数据库事务日志指标
名称 描述

<prefix>.log.rotation_events

迄今为止执行的事务日志轮换总数。(计数器)

<prefix>.log.rotation_total_time

迄今为止在轮换事务日志中花费的总时间(毫秒)。(计数器)

<prefix>.log.rotation_duration

上次日志轮换事件的持续时间(毫秒)。(仪表盘)

<prefix>.log.appended_bytes

追加到事务日志的字节总数。(计数器)

<prefix>.log.flushes

事务日志刷新的总数。(计数器)

<prefix>.log.append_batch_size

上次事务追加批处理的大小。(仪表盘)

数据库事务指标

表 16. 数据库事务指标
名称 描述

<prefix>.transaction.started

已启动的事务总数。(计数器)

<prefix>.transaction.peak_concurrent

并发事务的最高峰值。这是一个有用的值,可以帮助您了解最高负载场景的设计以及是否应该更改 Bolt 线程设置。(计数器)

<prefix>.transaction.active

当前活动的事务数。信息性,不是任何问题的指示。峰值或大幅增加可能表示大量数据加载或只是高读取负载。(仪表盘)

<prefix>.transaction.active_read

当前活动读取事务数。(仪表盘)

<prefix>.transaction.active_write

当前活动写入事务数。(仪表盘)

<prefix>.transaction.committed

已提交的事务总数。信息性,不是任何问题的指示。峰值或大幅增加表示大量数据加载或只是高读取负载。(计数器)

<prefix>.transaction.committed_read

已提交的读取事务总数。信息性,不是任何问题的指示。峰值或大幅增加表示高读取负载。(计数器)

<prefix>.transaction.committed_write

已提交的写入事务总数。信息性,不是任何问题的指示。峰值或大幅增加表示大量数据加载,这可能与您正在调查的某些行为相对应。(计数器)

<prefix>.transaction.rollbacks

回滚的事务总数。(计数器)

<prefix>.transaction.rollbacks_read

回滚的读取事务总数。(计数器)

<prefix>.transaction.rollbacks_write

回滚的写入事务总数。看到很多写入回滚可能表示锁定、事务超时等各种问题。(计数器)

<prefix>.transaction.terminated

终止的事务总数。(计数器)

<prefix>.transaction.terminated_read

终止的读取事务总数。(计数器)

<prefix>.transaction.terminated_write

终止的写入事务总数。(计数器)

<prefix>.transaction.last_committed_tx_id

上次提交的事务 ID。每个实例跟踪此 ID。(集群)每个主节点和每个辅助节点都跟踪此 ID。可能会拆分为单独的图表。它应该显示一条不断增长的线,如果其中一条线趋于平缓或落后,则表示该成员不再复制数据,需要采取措施纠正这种情况。(计数器)

<prefix>.transaction.last_closed_tx_id

上次关闭的事务 ID。(计数器)

<prefix>.transaction.tx_size_heap

事务在堆上的大小(以字节为单位)。(直方图)

<prefix>.transaction.tx_size_native

事务在本地内存中的大小(以字节为单位)。(直方图)

<prefix>.transaction.validation_failure

多版本事务验证失败的总数。(计数器)

数据库索引指标

表 17. 数据库索引指标
名称 描述

<prefix>.index.fulltext.queried

全文索引被查询的总次数。(计数器)

<prefix>.index.fulltext.populated

已完成的全文索引填充作业总数。(计数器)

<prefix>.index.lookup.queried

查找索引被查询的总次数。(计数器)

<prefix>.index.lookup.populated

已完成的查找索引填充作业总数。(计数器)

<prefix>.index.text.queried

文本索引被查询的总次数。(计数器)

<prefix>.index.text.populated

已完成的文本索引填充作业总数。(计数器)

<prefix>.index.range.queried

范围索引被查询的总次数。(计数器)

<prefix>.index.range.populated

已完成的范围索引填充作业总数。(计数器)

<prefix>.index.point.queried

点索引被查询的总次数。(计数器)

<prefix>.index.point.populated

已完成的点索引填充作业总数。(计数器)

<prefix>.index.vector.queried

向量索引被查询的总次数。(计数器)

<prefix>.index.vector.populated

已完成的向量索引填充作业总数。(计数器)

服务器指标

表 18. 服务器指标
名称 描述

<prefix>.server.threads.jetty.idle

Jetty 池中空闲线程的总数。(规格)

<prefix>.server.threads.jetty.all

Jetty 池中线程的总数(包括空闲和繁忙)。(规格)

特定于集群的指标

追赶指标

表 19. 追赶指标
名称 描述

<prefix>.cluster.catchup.tx_pull_requests_received

从其他集群成员接收到的 TX 拉取请求。(计数器)

发现服务 v1 指标

表 20. 发现服务 V1
名称 描述

<prefix>.cluster.discovery.replicated_data

复制的数据结构的大小。(规格)

<prefix>.cluster.discovery.cluster.members

发现集群成员的大小。(规格)

<prefix>.cluster.discovery.cluster.unreachable

发现集群无法访问的大小。(规格)

<prefix>.cluster.discovery.cluster.converged

发现集群的收敛。(规格)

<prefix>.cluster.discovery.restart.success_count

发现重启次数。(规格)

<prefix>.cluster.discovery.restart.failed_count

发现重启失败次数。(规格)

发现服务 v2 指标

表 21. 发现服务 V2
名称 描述

<prefix>.cluster.discovery.memberset.reachable

处于活动或可疑状态的成员数量。(规格)

<prefix>.cluster.discovery.memberset.unreachable

无法访问的集群成员数量。(规格)

Raft 核心指标

在 5.0 中已弃用

表 22. Raft 核心指标
名称 描述

<prefix>.causal_clustering.core.append_index

Raft 日志的追加索引。每个索引表示为提交而提出的写入事务(可能是内部事务)。这些值大多会增加,但有时由于领导者变更而导致它们会减少。追加索引应始终大于或等于提交索引。(规格)

<prefix>.causal_clustering.core.commit_index

Raft 日志的提交索引。表示先前追加条目的提交。如果未取消绑定集群状态,则其值会单调递增。提交索引应始终小于或等于追加索引,且大于或等于应用索引。(规格)

<prefix>.causal_clustering.core.applied_index

Raft 日志的应用索引。表示将已提交的 Raft 日志条目应用于数据库和内部状态。应用索引应始终小于或等于提交索引。此索引与提交索引之间的差异可用于监控 Follower 数据库的最新程度。(规格)

<prefix>.causal_clustering.core.term

此服务器的 Raft 任期。如果未取消绑定集群状态,则会单调递增。(规格)

<prefix>.causal_clustering.core.tx_retries

事务重试。(计数器)

<prefix>.causal_clustering.core.is_leader

此服务器是否为领导者?跟踪每个核心集群成员的此指标。如果它不是领导者,则报告 0;如果它是领导者,则报告 1。所有这些指标的总和应始终为 1。但是,在某些瞬态期间,总和可能大于 1,因为多个成员认为自己是领导者。如果指标在 30 秒内显示 0,则可能需要采取措施。(规格)

<prefix>.causal_clustering.core.in_flight_cache.total_bytes

飞行缓存总字节数。(规格)

<prefix>.causal_clustering.core.in_flight_cache.max_bytes

飞行缓存最大字节数。(规格)

<prefix>.causal_clustering.core.in_flight_cache.element_count

飞行缓存元素计数。(规格)

<prefix>.causal_clustering.core.in_flight_cache.max_elements

飞行缓存最大元素数。(规格)

<prefix>.causal_clustering.core.in_flight_cache.hits

飞行缓存命中次数。(计数器)

<prefix>.causal_clustering.core.in_flight_cache.misses

飞行缓存未命中次数。(计数器)

<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.lag

Raft 日志条目预取延迟。(规格)

<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.bytes

Raft 日志条目预取总字节数。(规格)

<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.size

Raft 日志条目预取缓冲区大小。(规格)

<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.async_put

Raft 日志条目预取缓冲区异步放入。(规格)

<prefix>.causal_clustering.core.raft_log_entry_prefetch_buffer.sync_put

Raft 日志条目预取缓冲区同步放入。(规格)

<prefix>.causal_clustering.core.message_processing_delay

Raft 消息接收和处理之间的延迟。(规格)

<prefix>.causal_clustering.core.message_processing_timer

Raft 消息处理的计时器。(计数器,直方图)

<prefix>.causal_clustering.core.replication_new

Raft 复制请求的总数。它随着写入事务(可能是内部事务)活动的增加而增加。(计数器)

<prefix>.causal_clustering.core.replication_attempt

Raft 复制请求尝试的总数。它大于或等于复制请求。(计数器)

<prefix>.causal_clustering.core.replication_fail

失败的 Raft 复制尝试总数。(计数器)

<prefix>.causal_clustering.core.replication_maybe

Raft 复制可能计数。(计数器)

<prefix>.causal_clustering.core.replication_success

成功完成的 Raft 复制请求总数。(计数器)

<prefix>.causal_clustering.core.last_leader_message

自上次收到领导者消息以来的时间(以毫秒为单位)。应定期重置。(规格)

如上表所示,特定于因果集群的指标已弃用。已弃用的 Raft 核心指标将由下表中的 Raft 指标相应替换。

Raft 指标

表 23. Raft 指标
名称 描述

<prefix>.cluster.raft.append_index

Raft 日志的追加索引。每个索引表示为提交而提出的写入事务(可能是内部事务)。这些值大多会增加,但有时由于领导者变更而导致它们会减少。追加索引应始终大于或等于提交索引。(规格)

<prefix>.cluster.raft.commit_index

Raft 日志的提交索引。表示先前追加条目的提交。如果未取消绑定集群状态,则其值会单调递增。提交索引应始终小于或等于追加索引,且大于或等于应用索引。(规格)

<prefix>.cluster.raft.applied_index

Raft 日志的应用索引。表示将已提交的 Raft 日志条目应用于数据库和内部状态。应用索引应始终小于或等于提交索引。此索引与提交索引之间的差异可用于监控 Follower 数据库的最新程度。(规格)

<prefix>.cluster.raft.prune_index

在 5.25 中引入 Raft 日志的头部索引。表示日志中存在的 oldest Raft 索引。修剪事件将增加此值。这可以用于跟踪成员拥有多少 Raft 日志历史记录。(规格)

<prefix>.cluster.raft.term

此服务器的 Raft 任期。如果未取消绑定集群状态,则会单调递增。(规格)

<prefix>.cluster.raft.tx_retries

事务重试。(计数器)

<prefix>.cluster.raft.is_leader

此服务器是否为领导者?跟踪集群中每个 Raft 主数据库的此指标。如果它不是领导者,则报告0;如果它是领导者,则报告1。所有这些指标的总和应始终为1。但是,在某些瞬态期间,总和可能大于1,因为多个成员认为自己是领导者。如果指标在 30 秒内显示0,则可能需要采取措施。(规格)

<prefix>.cluster.raft.in_flight_cache.total_bytes

飞行缓存总字节数。(规格)

<prefix>.cluster.raft.in_flight_cache.max_bytes

飞行缓存最大字节数。(规格)

<prefix>.cluster.raft.in_flight_cache.element_count

飞行缓存元素计数。(规格)

<prefix>.cluster.raft.in_flight_cache.max_elements

飞行缓存最大元素数。(规格)

<prefix>.cluster.raft.in_flight_cache.hits

飞行缓存命中次数。(计数器)

<prefix>.cluster.raft.in_flight_cache.misses

飞行缓存未命中次数。(计数器)

<prefix>.cluster.raft.raft_log_entry_prefetch_buffer.lag

Raft 日志条目预取延迟。(规格)

<prefix>.cluster.raft.raft_log_entry_prefetch_buffer.bytes

Raft 日志条目预取总字节数。(规格)

<prefix>.cluster.raft.raft_log_entry_prefetch_buffer.size

Raft 日志条目预取缓冲区大小。(规格)

<prefix>.cluster.raft.raft_log_entry_prefetch_buffer.async_put

Raft 日志条目预取缓冲区异步放入。(规格)

<prefix>.cluster.raft.raft_log_entry_prefetch_buffer.sync_put

Raft 日志条目预取缓冲区同步放入。(规格)

<prefix>.cluster.raft.message_processing_delay

Raft 消息接收和处理之间的延迟。(规格)

<prefix>.cluster.raft.message_processing_timer

Raft 消息处理的计时器。(计数器,直方图)

<prefix>.cluster.raft.replication_new

Raft 复制请求的总数。它随着写入事务(可能是内部事务)活动的增加而增加。(计数器)

<prefix>.cluster.raft.replication_attempt

Raft 复制请求尝试的总数。它大于或等于复制请求。(计数器)

<prefix>.cluster.raft.replication_fail

失败的 Raft 复制尝试总数。(计数器)

<prefix>.cluster.raft.replication_maybe

Raft 复制可能计数。(计数器)

<prefix>.cluster.raft.replication_success

成功完成的 Raft 复制请求总数。(计数器)

<prefix>.cluster.raft.last_leader_message

自上次收到领导者消息以来的时间(以毫秒为单位)。应定期重置。(规格)

只读副本指标

在 5.0 中已弃用

表 24. 只读副本指标
名称 描述

<prefix>.causal_clustering.read_replica.pull_updates

此实例发出的拉取请求总数。(计数器)

<prefix>.causal_clustering.read_replica.pull_update_highest_tx_id_requested

此实例在拉取更新中请求的最高事务 ID。(计数器)

<prefix>.causal_clustering.read_replica.pull_update_highest_tx_id_received

此实例在上次拉取更新中拉取的最高事务 ID。(计数器)

如上表所示,特定于因果集群的指标已弃用。已弃用的只读副本指标将由下表中的存储副本指标相应替换。

存储副本指标

表 25. 存储副本指标
名称 描述

<prefix>.cluster.store_copy.pull_updates

此实例发出的拉取请求总数。(计数器)

<prefix>.cluster.store_copy.pull_update_highest_tx_id_requested

此实例在拉取更新中请求的最高事务 ID。(计数器)

<prefix>.cluster.store_copy.pull_update_highest_tx_id_received

此实例在上次拉取更新中拉取的最高事务 ID。(计数器)

Java 虚拟机指标

JVM 指标显示有关垃圾回收的信息(例如,事件数量和垃圾回收花费的时间)、内存池和缓冲区,以及正在运行的活动线程数。它们依赖于环境,因此在不同的硬件和不同的 JVM 配置下可能会有所不同。有关 JVM 内存用量的指标公开了由 MemoryPoolMXBeans 和 BufferPoolMXBeans 提供的值。内存池由 JVM 管理内存,例如 neo4j.dbms.vm.memory.pool.g1_survivor_space。因此,如有必要,您可以使用 JVM 设置对其进行调整。缓冲池是垃圾回收器管理的内存之外的空间。Neo4j 会根据需要在这些池中分配缓冲区。您可以使用 JVM 设置限制此内存,但您永远没有充分的理由设置它们。

JVM 文件描述符指标

表 26. JVM 文件描述符指标
名称 描述

<prefix>.vm.file.descriptors.count

当前打开的文件描述符数量。(仪表盘)

<prefix>.vm.file.descriptors.maximum

(操作系统设置) 打开的文件描述符的最大数量。建议设置为 40K 个文件句柄,因为 Neo4j 使用了原生和 Lucene 索引。如果此指标接近限制,则应考虑提高它。(仪表盘)

GC 指标

表 27. GC 指标
名称 描述

<prefix>.vm.gc.time.<gc>

累计垃圾回收时间(毫秒)。长时间的 GC 可能表示性能问题或潜在的不稳定性。如果这接近集群中的心跳超时,则可能会导致不需要的领导者切换。(计数器)

<prefix>.vm.gc.count.<gc>

垃圾回收的总次数。(计数器)

JVM 堆指标

表 28. JVM 堆指标
名称 描述

<prefix>.vm.heap.committed

JVM 保证可用于使用的内存量(以字节为单位)。(仪表盘)

<prefix>.vm.heap.used

当前使用的内存量(以字节为单位)。这是在给定时间点当前使用的堆空间量。监控此指标以确定您是否始终达到最大值,如果是,则应增加初始堆大小和最大堆大小,或者如果利用率不足,则应减少初始堆大小和最大堆大小。(仪表盘)

<prefix>.vm.heap.max

可使用的最大堆内存量(以字节为单位)。这是在给定时间点当前使用的堆空间量。监控此指标以确定您是否始终达到最大值,如果是,则应增加初始堆大小和最大堆大小,或者如果利用率不足,则应减少初始堆大小和最大堆大小。(仪表盘)

JVM 内存缓冲区指标

表 29. JVM 内存缓冲区指标
名称 描述

<prefix>.vm.memory.buffer.<bufferpool>.count

池中缓冲区的估计数量。(仪表盘)

<prefix>.vm.memory.buffer.<bufferpool>.used

池使用的估计内存量。(仪表盘)

<prefix>.vm.memory.buffer.<bufferpool>.capacity

池中缓冲区的估计总容量。(仪表盘)

JVM 内存池指标

表 30. JVM 内存池指标
名称 描述

<prefix>.vm.memory.pool.<pool>

池使用的估计内存量(以字节为单位)。(仪表盘)

JVM 暂停时间指标

表 31. JVM 暂停时间指标
名称 描述

<prefix>.vm.pause_time

累计检测到的 VM 暂停时间。(计数器)

JVM 线程指标

表 32. JVM 线程指标
名称 描述

<prefix>.vm.threads

活动线程的总数,包括守护线程和非守护线程。(仪表盘)