Neo4j 可观测性最佳实践

news2025/7/19 16:22:32

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 input
  disable_host_tag = false

  ## disable setting instance tag for this input
  disable_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.coloradmin.cn/o/2343891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【教程】Windows通过网线共享网络给其它设备

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 1、打开“控制面板”。 2、点击“网络和共享中心”。 3、点击“更改适配器设置”。 4、选中要共享的网络适配器&#xff0c;右击选中“属性”。 5、勾选…

百度AI开发者大会:连发多款AI应用,覆盖AI数字人等热门赛道

4月25日&#xff0c;Create2025百度AI开发者大会在武汉隆重举办。百度创始人李彦宏发表了题为《模型的世界 应用的天下》的演讲。60分钟的演讲中&#xff0c;李彦宏发布了两大模型&#xff0c;多款热门AI应用&#xff0c;并宣布将帮助开发者全面拥抱MCP。 当天发布的文心大模型…

Java 线程的六种状态与完整生命周期详解

&#x1f680; Java 线程的几种状态详解 在 Java 中&#xff0c;线程状态&#xff08;Thread State&#xff09;是由 Thread.State 枚举定义的&#xff0c;总共有六种&#xff1a; 状态含义典型场景示例NEW新建状态&#xff0c;线程对象刚创建&#xff0c;还未调用 start() 方…

05--Altium Designer(AD)的详细安装

一、软件的下载 Altium Designer官网下载 1、临近五一的假期&#xff0c;想着搞个项目&#xff0c;且这个项目与PCB有关系&#xff0c;所以就下这个软件来玩玩。下面保姆级教大家安装。 2、选择适合自己的版本下载&#xff08;我安装的是24的&#xff09; 3、软件安装 1.下…

Java 队列与阻塞队列全面解析:从 Queue 到 TransferQueue 的实现与应用

文章目录 Queue队列QueueDeque 阻塞队列BlockingQueueArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueSynchronousQueueDelayQueue BlockingDequeLinkedBlockingDeque TransferQueueLinkedTransferQueue Queue Queue&#xff08;队列&#xff09;是一种特殊的线性…

【蓝桥杯省赛真题56】Scratch抓不住的蜜蜂 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解

目录 scratch抓不住的蜜蜂 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch抓不住的蜜蜂 第十五届青少年蓝桥…

《TCP/IP详解 卷1:协议》之第七、八章:Ping Traceroute

目录 一、ICMP回显请求和回显应答 1、ICMP回显请求 2、ICMP回显应答 二、ARP高速缓存 三、IP记录路由选项&#xff08;Record Route&#xff0c;RR&#xff09; 1、记录路由选项的工作过程 2、RR 选项的 IP 头部格式 2.1、RR 请求 2.2、RR响应 四、ping 的去返路径 五…

NtripShare 2025第一季度主要技术进展

GNSS方面 1、开源GNSS接收机配置软件基础版本。 2、商业版本GNSS接收机配置软件&#xff0c;增加PPP、文件保存、前端解算&#xff08;静态、RTK-Static&#xff09;&#xff0c;前端坐标转换。 3、GNSS接收机配置软件全面适配米尔T133i硬件方案。 视觉检测方面 1、做出第…

头歌实训之存储过程、函数与触发器

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…

【华为】防火墙双击热备-之-主备模式-单外网线路-分享

FW1和FW2的业务接口都工作在三层&#xff0c;上行连接二层交换机。上行交换机连接运营商的接入点&#xff0c;运营商为企业分配的IP地址为100.100.100.2。现在希望FW1和FW2以主备备份方式工作。正常情况下&#xff0c;流量通过FW1转发&#xff1b;当FW1出现故障时&#xff0c;流…

川翔云电脑32G大显存集群机器上线!

川翔云电脑今日重磅推出32G 大显存机型&#xff0c;为游戏玩家、设计师、AI 开发者等提供极致云端算力体验&#xff01; 一、两大核心配置&#xff0c;突破性能天花板 ✅ 32G 超大显存机型 行业领先&#xff1a;搭载 NVIDIA 专业显卡&#xff0c;单卡可分配 32G 独立显存&am…

加里·基尔代尔:CP/M之父与个人计算时代的先驱

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 加里基尔代尔&#xff1a;CP/M之父与个人计算时代的先驱 一、早年生活与教育背景 1.…

静态多态和动态多态的区别

C多态机制深度解析 多态是面向对象编程的核心特性&#xff0c;允许通过统一接口执行不同实现。在C中&#xff0c;多态表现为基类指针或引用调用虚函数时&#xff0c;根据实际对象类型执行对应派生类的函数逻辑。 基础实现示例 定义基类与派生类&#xff0c;演示动态绑定…

Burp靶场JWT学习笔记1

JWT(JSON Web Token) 从其名字就可以看出来&#xff0c;它具有表示身份的作用&#xff0c;其本质是将用户信息储存到一串json字符串中再将其编码得到一串token JWT由三部分组成&#xff0c;分别是 Header&#xff0c;Payload&#xff0c;Signatrue JWTBase64(Header).Base6…

C++?类和对象(下)!!!

一、前言 在之前我们已经讨论过了有关类和对象的前置知识以及类中的六大默认成员函数&#xff0c;在本期我们继续再讨论类和对象中剩余的友元、初始化列表等相关知识&#xff0c;如果需要再了解之前的知识的话&#xff0c;链接奉上&#xff1a;C&#xff1f;类和对象&#xff0…

FastAPI 零基础入门指南:10 分钟搭建高性能 API

一、为什么选择 FastAPI&#xff1f; 想象一下&#xff0c;用 Python 写 API 可以像搭积木一样简单&#xff0c;同时还能拥有媲美 Go 语言的性能&#xff0c;这个框架凭借三大核心优势迅速风靡全球&#xff1a; 开发效率提升 3 倍&#xff1a;类型注解 自动文档&#xff0c;…

机器人新革命:Pi 0.5如何让智能走进千家万户

在科技飞速发展的今天&#xff0c;机器人技术正在以一种令人惊喜的方式贴近我们的生活。最近&#xff0c;Physical Intelligence 公司推出了 Pi 0.5 版本&#xff0c;这一创新设计不仅颠覆了传统机器人的运作模式&#xff0c;更让我们看到了未来智能设备融入日常生活的无限可能…

从数据结构说起(一)

1 揭开数据结构神奇的面纱 1.1 初识数据结构 在C的标准库模板&#xff08;Standard Template Library,STL&#xff09;课程上&#xff0c;我初次结识了《数据结构》。C语言提供的标准库模板是面向对象程序设计与泛型程序设计思想相结合的典范。所谓的泛型编程就是编写不依赖于具…

Git基本使用(很详细)

一&#xff1a;Git 概述 1.1 定义&#xff1a;分布式版本控制系统 1.2 版本控制 &#xff08;1&#xff09;定义&#xff1a; 版本控制时一种记录文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统 &#xff08;2&#xff09;举例 多副本 优化&#xff1a; 不使用多…

仓颉编程语言最佳实例 “Hello, world!”

仓颉编程语言最佳实例 “Hello, world!” The Best Practice to Cangjie Programming Language - “Hello, world!” BY JACKSON 1. 仓颉集成开发工具&#xff08;IDE&#xff09;安装 打开Chrome浏览器&#xff0c;访问仓颉编程语言官网&#xff1a;https://cangjie-lang.…