Phoenix监控平台技术解析(十二):线程池信息采集——MonitoredExecutor 注册表与定时上报机制

上一篇我们拆解了 JVM 信息采集——Phoenix 通过 MXBean 给每个 Java 进程做了一次“全身体检”。但 JVM 层面的线程数只是一个笼统的数字,它告诉你“有 200 个线程在跑”,却不告诉你“这 200 个线程分别属于哪个线程池,哪个池子快满了,哪个池子在疯狂拒绝任务”。本篇将深入 Phoenix 的线程池信息采集机制——它是如何把散落在系统各处的线程池“收编”进一个统一注册表,再定时上报给服务端的。......

Phoenix监控平台技术解析(十一):JVM 信息采集——内存、线程、GC、类加载数据的收集

上一篇我们聊了心跳——那根维系客户端和服务端之间“生死契约”的细线。心跳回答的是“你还活着吗?”这个最基本的问题。但活着只是底线,运维真正关心的是“你活得怎么样?”。本篇将深入 Phoenix 的 JVM 信息采集机制,看它如何在不侵入一行业务代码的前提下,给每一个 Java 进程做一次全面的“体检”。......

Phoenix监控平台技术解析(八):Monitor 入口类——客户端启动全流程解析

从这一篇开始,我们正式进入 Phoenix 客户端 SDK 的源码世界。前七篇讲了通信通道和数据安全——HTTP 怎么发、WebSocket 怎么连、数据怎么加密压缩——但这些能力不会凭空启动。谁来拉起这一切?谁来决定“先做什么、后做什么”? 答案就是本篇的主角:`Monitor` 类。它是客户端 SDK 的“总开关”,一个 `Monitor.start()` 调用,背后是 12 个步骤的精密编排。......

Phoenix监控平台技术解析(九):配置加载机制——properties 文件与 SpringBoot 配置的双轨制

上一篇我们拆解了 `Monitor.start()` 的 12 步启动编排,其中第二步“加载配置信息”只用了四行代码,却藏着整个客户端 SDK 最灵活的设计之一——**配置的双轨制**。Phoenix 的客户端既可以跑在传统 SpringMVC 项目里读 `.properties` 文件,也可以跑在 SpringBoot 项目里读 `application.yml`。两条截然不同的配置路径,最终汇入同一个属性模型。这背后的设计,值得细细品味。......

Phoenix监控平台技术解析(十):心跳机制——HeartbeatTaskScheduler 的设计与实现

如果把监控系统比作一个人体,心跳就是那个你永远不会去主动关注、却一秒都不能停的东西。上一篇我们讲了配置加载的“双轨制”,配置加载完成后,`Monitor.start()` 的第六步就是调用 `HeartbeatTaskScheduler.run()`——心脏,开始跳动。本篇将从调度器、执行线程、数据包构造,一路追到服务端的存活判定与告警触发,完整拆解 Phoenix 的心跳机制。......

1 / 4