当前位置: 首页 > news >正文

Neo4j 可观测性最佳实践

Neo4j 介绍

Neo4j 是一款领先的图数据库管理系统,采用图数据模型来表示和存储数据。它以节点、关系和属性的形式组织数据,节点代表实体,关系表示节点间的连接,属性则为节点和关系附加信息。Neo4j 使用 Cypher 查询语言,提供高效的图数据存储、检索和操作能力,尤其擅长处理复杂的关系查询和路径查找,广泛应用于社交网络、推荐系统、知识图谱等领域。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

前置条件

  • 安装 Neo4j 服务:参见官方安装文档。
  • 验证是否正确安装:在浏览器访问网址 <ip>:7474 可以进入 Neo4j 管理界面。
  • 打开 Neo4j Prometheus 端口,找到并编辑 Neo4j 启动配置文件,通常是在 /etc/neo4j/neo4j.conf,尾部追加,参见官方配置文档。
# Enable the Prometheus endpoint. Default is false.
server.metrics.prometheus.enabled=true
# The hostname and port to use as Prometheus endpoint.
# A socket address is in the format <hostname>, <hostname>:<port>, or :<port>.
# If missing, the port or hostname is acquired from server.default_listen_address.
# The default is localhost:2004.
server.metrics.prometheus.endpoint=0.0.0.0:2004
  • 重启 Neo4j 服务

采集器配置

主机安装

1、安装 DataKit

2、配置采集器

进入 DataKit 安装目录下的 conf.d/neo4j 目录,复制 neo4j.conf.sample 并命名为 neo4j.conf。示例如下:

[[inputs.neo4j]]## Exporter URLs.urls = ["http://127.0.0.1:2004/metrics"]## TLS configuration.tls_open = false# tls_ca = "/tmp/ca.crt"# tls_cert = "/tmp/peer.crt"# tls_key = "/tmp/peer.key"## Set to 'true' to enable election.election = true## disable setting host tag for this inputdisable_host_tag = false## disable setting instance tag for this inputdisable_instance_tag = false## Customize tags.# [inputs.neo4j.tags]# some_tag = "some_value"# more_tag = "some_other_value"## (Optional) Collect interval: (defaults to "30s").# interval = "30s

3、重启 DataKit

Kubernetes 安装

目前可以通过 ConfigMap 方式注入采集器配置来开启采集器。

关键指标

Metric描述Unit
bolt_sessions_started(仅适用于 neo4j.v3) 自此实例启动以来启动的总 Bolt 会话数。count
database_check_point_duration上一个检查点事件的持续时间(以毫秒为单位)。检查点通常需要几秒到几分钟。长时间的检查点可能会引发问题,因为这些检查点在数据库停止、进行热备份以及定期执行时会被调用。超过 30 分钟的值应引起关注。ms
database_check_point_events_total到目前为止已执行的检查点事件总数。count
database_check_point_flushed_bytes在上一个检查点事件期间累积刷新的字节数。count
database_check_point_io_limit上一个检查点事件期间使用的 IO 限制。count
database_check_point_io_performed在上一个检查点事件期间从 Neo4j 角度执行的 IO 数量。count
database_check_point_limit_millis上一个检查点期间使用的限制时间(以毫秒为单位)。ms
database_check_point_limit_times上一个检查点期间使用的限制次数。ms
database_check_point_pages_flushed在上一个检查点事件期间刷新的页面数。count
database_check_point_total_time_total到目前为止花费在检查点上的总时间(以毫秒为单位)。ms
database_cluster_catchup_tx_pull_requests_received_total从次要节点接收到的事务拉取请求总数。count
database_cluster_discovery_cluster_converged发现集群收敛状态。count
database_cluster_discovery_cluster_members发现集群成员数量。count
database_cluster_discovery_cluster_unreachable发现集群不可达成员数量。count

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “Neo4j”, 选择 “Neo4j监控视图”,点击 “确定” 即可添加视图。

监控器(告警)

垃圾回收时间过长

垃圾回收时间反映了 JVM 的内存管理性能。过长的垃圾回收时间可能表明内存分配存在问题,或者应用程序产生了过多的垃圾对象,导致系统性能下降。

页面缓存命中率过低

页面缓存命中率是衡量数据库 I/O 性能的关键指标。高缓存命中率意味着数据库能够高效地利用缓存,减少磁盘 I/O 操作,提高查询性能。如果命中率过低,可能表明缓存配置不足或存在大量的随机 I/O 操作。

数据库查询时间过长

查询执行时间直接反映了数据库的响应速度和性能。如果该指标值过高或波动较大,可能表明数据库存在性能瓶颈或负载过高。

总结

Neo4j 作为一款高性能的图数据库,其性能监控对于确保数据查询效率和整体系统稳定性具有重要意义。通过合理利用观测云等监控工具,可以全面、实时地监控 Neo4j 的运行状态。

http://www.xdnf.cn/news/83053.html

相关文章:

  • Vue指令详解:从入门到精通
  • BBR 的 minRTT 采集问题
  • 二叉树层序遍历技术解析与面试指南
  • 根据极点-零点分布进行状态空间模型降阶
  • 火山RTC 5 转推CDN 布局合成规则
  • 2024年ESWA SCI1区TOP:量子计算蜣螂算法QHDBO,深度解析+性能实测
  • 【简单学习】llamaindex环境搭建以及构建RAG
  • 真实趋势策略思路
  • 高并发秒杀使用RabbitMQ的优化思路
  • Vue2-重要知识点
  • Reflex 完全指南:用 Python 构建现代 Web 应用的终极体验
  • SpringCloud组件—Eureka
  • 面向组织的网络安全措施
  • 详解Node.js中的setImmediate()函数
  • 智慧城市新标配:苏州金龙无人清扫车开启城市清洁“智”时代
  • C++(初阶)(十二)——stack和queue
  • Web网页核心技术解析:从结构到节点操作
  • 大模型学习笔记------Llama 3模型架构之分组查询注意力(GQA)
  • [Git] Git Stash 命令详解
  • 【MATLAB第115期】基于MATLAB的多元时间序列的ARIMAX的预测模型
  • 线缆屏蔽与浪涌测试
  • Linux中查询进程服务,通过端口方式关闭
  • C++模板学习(进阶)
  • PH热榜 | 2025-04-22
  • 客户端本地搭建
  • Baidu Comate初体验:强大的全局ai工具
  • 嘻游后台系统与机器人模块结构详解:功能逻辑 + 定制改造实战
  • 性能比拼: Go vs Java
  • mybatis实现增删改查1
  • 三网通电玩城平台系统结构与源码工程详解(二):Node.js 服务端核心逻辑实现