MCPcopy Index your code
hub / github.com/709343767/phoenix

github.com/709343767/phoenix @v1.2.7.RELEASE

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.7.RELEASE ↗ · + Follow
4,098 symbols 13,341 edges 938 files 2,075 documented · 51%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Phoenix Monitoring Platform

A flexible and configurable open-source monitoring platform integrating monitoring, alerting, and notification

License Java Spring Boot Maven Central GitHub Stars Gitee Stars Version

Live Demo | WeChat | GitCode | Gitee | GitHub

中文 | English


📖 Table of Contents

💡 Introduction

Phoenix is a flexible and configurable open-source monitoring platform designed for monitoring applications, servers, network devices, Docker, databases, networks, TCP ports, and HTTP interfaces. By collecting, aggregating, and analyzing monitoring data in real time, it pushes alert notifications immediately upon detecting anomalies, and provides a visual system for configuration, management, and viewing.

Open source does not mean free of restrictions. Secondary development based on Phoenix is allowed, but the logo, name, and copyright must not be modified.

🏆 G-Star Certification

Phoenix has passed the GitCode G-Star Graduation Project Certification.

G-Star Certification

✨ Key Features

  • 🖥️ Full-Stack Monitoring — One-stop monitoring from applications to infrastructure, see Feature Comparison for details
  • ⚡ Real-Time Alerting — Multi-channel notifications + four-level alerting mechanism (INFO/WARN/ERROR/FATAL)
  • 🔧 Flexible Configuration — Flexible alert definition engine with dynamically adjustable monitoring strategies
  • 🌐 Distributed Architecture — Supports cluster deployment; agents can be deployed on jump servers to bridge network barriers
  • 🔒 Data Security — Supports encrypted data transmission to ensure monitoring data security
  • 🐳 Containerized Deployment — One-click deployment with Docker / Docker Compose, installation completed in 10 minutes
  • 📱 Multi-Platform Support — Web interface supports both desktop and mobile devices
  • 🔄 Dynamic Thread Pool — View and modify thread pool parameters at runtime, supporting 7 queue types, 6 rejection policies + SPI extension
  • 📡 High Extensibility — Multi-protocol communication architecture, extensible to monitor programs written in other programming languages

🔍 Feature Comparison

Phoenix offers two editions: Open Source (1.x) and Commercial (2.x). The open source edition includes core monitoring capabilities, suitable for personal learning and small projects. The commercial edition extends with Docker monitoring, network device management, online diagnostics, dynamic thread pool, slow SQL monitoring, enterprise notification channels, business exception log collection, and other advanced features, suitable for enterprise production environments.

💰 Marks indicate commercial edition exclusive paid features.

Module Feature Monitoring Content Open Source (1.x) Commercial (2.x)
Server Monitoring Server Resource Monitoring Online status, OS, CPU, load average, memory, disk, NIC, battery, sensors, processes
Java Application Monitoring JVM Monitoring JVM overview, memory, threads, class loading, GC
Application Instance Status Monitoring Online status
Business Instrumentation Monitoring Business instrumentation
Dynamic Thread Pool Monitoring & Management Thread pool parameter viewing and dynamic modification 💰
Arthas Online JVM Diagnostics Online JVM diagnostics 💰
Network Monitoring HTTP Interface Monitoring Interface availability
TCP Port Monitoring Telnet port status
Ping Network Connectivity Monitoring Network connectivity
Network Device SNMP Monitoring Switches, routers, etc.: online status, system info, interface info 💰
Database Monitoring Database Connection Status Monitoring MySQL, Oracle, Redis, MongoDB online status and sessions
Database Slow SQL Monitoring MySQL slow SQL, Oracle slow SQL and tablespace 💰
Docker Monitoring Full Docker Monitoring Service status, containers, images, events, resource statistics 💰
Alert System Alert Notification (Email / SMS) Four-level alerts (INFO/WARN/ERROR/FATAL)
Alert Notification (DingTalk / WeCom / Feishu) Multi-channel enterprise notification 💰
Alert Count Configuration (Failure / Recovery) Failure and recovery alert count thresholds 💰
Log Management Operation Log Management Operation log recording, viewing, management
Exception Log Management Exception log recording, viewing, management
Business Exception Log Collection Client-side exception log collection 💰
Communication Architecture HTTP Communication Basic HTTP communication
WebSocket Communication WebSocket real-time communication 💰
Visual Interface Basic Monitoring Dashboard Desktop and mobile monitoring panels
Docker Management Interface Docker management and monitoring pages 💰
Network Device Management Interface Network device management and monitoring pages 💰
Network Topology Map Topology map display 💰
Web Terminal Emulation Online terminal 💰
Arthas Diagnostics Interface Arthas diagnostics operation pages 💰

📮 Get Commercial Edition: To obtain a commercial license or learn more details, please refer to the 《Commercial Pricing Plan》 or contact the author (WeChat: pifengeclipse). For more contact methods, see Contact Us.

🏗️ System Architecture

System Architecture

🛠️ Tech Stack

Category Technology
Core Framework Spring Boot, Netty
Security Framework Spring Security, Spring Session
Persistence Layer MyBatis-Plus, Alibaba Druid
Task Scheduling JUC, Spring Task, Quartz
Server Monitoring Sigar / OSHI
Network Device Monitoring SNMP4J
Docker Monitoring docker-java
JVM Diagnostics Alibaba Arthas
Encryption Bouncy Castle
Frontend Framework Layui, ECharts, jtopo (topology), xterm (terminal emulation)
Utility Libraries Hutool, FastJSON, Jackson, Apache Commons (IO/Collections/Net)
Others EasyPOI (export), Knife4j (API documentation)

📦 Project Structure

phoenix (Monitoring Platform)
├── phoenix-common (Common Modules)
│   ├── phoenix-common-core                   -- Core common: thread pool, data models, utilities, encryption/decryption
│   ├── phoenix-common-netty                  -- Netty communication: WebSocket, persistent connections, reconnection
│   └── phoenix-common-web                    -- Web common: REST API infrastructure
├── phoenix-client (Client SDK)
│   ├── phoenix-client-core                   -- Core: data collection, heartbeat, business instrumentation
│   ├── phoenix-client-spring-boot-starter    -- Spring Boot auto-configuration
│   └── phoenix-client-spring-mvc-integrator  -- Spring MVC adapter
├── phoenix-agent                             -- Agent: server/Docker/SNMP data collection
├── phoenix-server                            -- Server: data processing, alert engine, configuration distribution
├── phoenix-ui                                -- Visual UI: web management interface
├── doc                                       -- Documentation: architecture diagrams, screenshots, DB scripts, deployment scripts, technical blog
└── mvn                                       -- Maven packaging scripts

🚀 Quick Start

One-click installation: complete automated setup in 10 minutes
Minimum resource requirements: 1 CPU core / 2 GB RAM / 5 GB disk

Docker Installation (Recommended)

Software dependency: Docker 20.10.14+

bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/Docker/install.sh)"

Docker Compose Installation

Software dependency: Docker Compose 2.0.0+

bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/DockerCompose/install.sh)"

Install Agent (Required for Server Monitoring)

bash -c "$(curl -fsSL https://gitee.com/monitoring-platform/phoenix/raw/master/doc/Docker/phoenix-agent/install_agent.sh)"

Configuration Guide

phoenix-server configuration: 1. Copy application-prod.yml from the source directory phoenix-server/src/main/resources/ 2. Place it in /data/phoenix/phoenix-server/config/ 3. Edit the file to configure email and other alert channels 4. Restart the phoenix-server container

phoenix-agent configuration: 1. Copy monitoring-prod.properties from the source directory phoenix-agent/src/main/resources/ 2. Place it in /data/phoenix/phoenix-agent/config/ 3. Set monitoring.comm.http.url to http://<server-ip>:16000/phoenix-server 4. Restart the phoenix-agent container

After installation, visit: http://<ui-ip>/phoenix-ui/index, default accounts: admin / admin123, guest / guest123

📥 Client Integration

Latest stable version on Maven Central: 1.2.7.RELEASE

Plain Java application:

<dependency>
    <groupId>com.gitee.pifeng</groupId>
    <artifactId>phoenix-client-core</artifactId>
    <version>1.2.7.RELEASE</version>
</dependency>

Spring Boot application:

<dependency>
    <groupId>com.gitee.pifeng</groupId>
    <artifactId>phoenix-client-spring-boot-starter</artifactId>
    <version>1.2.7.RELEASE</version>
</dependency>

Spring MVC application:

<dependency>
    <groupId>com.gitee.pifeng</groupId>
    <artifactId>phoenix-client-spring-mvc-integrator</artifactId>
    <version>1.2.7.RELEASE</version>
</dependency>

📸 Screenshots

🏠 Home Overview

Home 1 Home 2 Home 3

🖥️ Server Monitoring

Server 1 Server 2 Server 3

☕ Application Monitoring

Application 1 Application 2 Application 3

🗄️ Database Monitoring

Database 1 Database 2 Database 3 Database 4

🌐 Network / TCP / HTTP Monitoring

Network 1 Network 2 TCP 1 TCP 2 HTTP 1 HTTP 2 HTTP 3

🐳 Docker Monitoring

Docker 1 Docker 2 Docker 3 Docker 4 Docker 5

🗺️ Topology Map

Topology 1 Topology 2 Topology 3 Topology 4 Topology 5

🔔 Alert Management

Alert 1 Alert 2 Alert Definition

⚙️ System Management

User Management Operation Log 1 Operation Log 2 Exception Log 1 Exception Log 2 Monitoring Configuration

📚 Technical Blog

Over 60+ in-depth technical articles (continuously updated), covering architecture design and core implementation

Extension points exported contracts — how you extend this code

IDbTableSpace4OracleService (Interface)
Oracle数据库表空间服务类 @author 皮锋 @custom.date 2020/12/31 16:10 [6 implementers]
phoenix-ui/src/main/java/com/gitee/pifeng/monitoring/ui/business/web/service/IDbTableSpace4OracleService.java
IDbTableSpace4OracleService (Interface)
Oracle数据库表空间服务接口 @author 皮锋 @custom.date 2020/12/31 16:10 [6 implementers]
phoenix-server/src/main/java/com/gitee/pifeng/monitoring/server/business/server/service/IDbTableSpace4OracleService.java
ISuperBean (Interface)
父接口,定义默认方法 @author 皮锋 @custom.date 2020/3/25 10:49 [80 implementers]
phoenix-common/phoenix-common-core/src/main/java/com/gitee/pifeng/monitoring/common/inf/ISuperBean.java
IAlarmService (Interface)
告警服务接口 @author 皮锋 @custom.date 2020年3月6日 下午3:07:24 [1 implementers]
phoenix-agent/src/main/java/com/gitee/pifeng/monitoring/agent/business/client/service/IAlarmService.java
IDbInfo4RedisService (Interface)
Redis数据库信息服务类 @author 皮锋 @custom.date 2021/10/16 20:46 [6 implementers]
phoenix-ui/src/main/java/com/gitee/pifeng/monitoring/ui/business/web/service/IDbInfo4RedisService.java
IHttpHistoryService (Interface)
HTTP信息历史记录服务接口 @author 皮锋 @custom.date 2022/4/13 9:06 [6 implementers]
phoenix-server/src/main/java/com/gitee/pifeng/monitoring/server/business/server/service/IHttpHistoryService.java
ISecurer (Interface)
加解密接口 @author 皮锋 @custom.date 2021/8/13 11:57 [5 implementers]
phoenix-common/phoenix-common-core/src/main/java/com/gitee/pifeng/monitoring/common/inf/ISecurer.java
IHeartbeatService (Interface)
心跳服务接口 @author 皮锋 @custom.date 2020年3月4日 下午1:42:57 [1 implementers]
phoenix-agent/src/main/java/com/gitee/pifeng/monitoring/agent/business/client/service/IHeartbeatService.java

Core symbols most depended-on inside this repo

call
called by 1366
phoenix-client/phoenix-client-core/src/main/java/com/gitee/pifeng/monitoring/plug/thread/OfflineThread.java
e
called by 699
phoenix-ui/src/main/resources/static/lib/extend/echarts.js
n
called by 615
phoenix-ui/src/main/resources/static/js/eruda.js
s
called by 336
phoenix-ui/src/main/resources/static/js/eruda.js
i
called by 270
phoenix-ui/src/main/resources/static/lib/extend/echarts.js
split
called by 263
phoenix-common/phoenix-common-core/src/main/java/com/gitee/pifeng/monitoring/common/util/CollectionUtils.java
l
called by 210
phoenix-ui/src/main/resources/static/js/eruda.js
o
called by 186
phoenix-ui/src/main/resources/static/js/eruda.js

Shape

Function 1,951
Method 1,301
Class 631
Interface 195
Enum 20

Languages

Java52%
TypeScript48%

Modules by API surface

phoenix-ui/src/main/resources/static/js/echarts.min.js1,229 symbols
phoenix-ui/src/main/resources/static/js/eruda.js91 symbols
phoenix-ui/src/main/resources/static/js/jquery.min.js86 symbols
phoenix-ui/src/main/resources/static/layui/layui.all.js66 symbols
phoenix-ui/src/main/resources/static/layui/lay/modules/jquery.js66 symbols
phoenix-ui/src/main/resources/static/js/echarts-liquidfill.min.js46 symbols
phoenix-ui/src/main/resources/static/layui/lay/modules/mobile.js42 symbols
phoenix-ui/src/main/resources/static/lib/extend/echarts.js40 symbols
phoenix-ui/src/main/resources/static/layui/lay/modules/layim.js35 symbols
phoenix-ui/src/main/resources/static/js/md5.js19 symbols
phoenix-server/src/main/java/com/gitee/pifeng/monitoring/server/config/QuartzConfig.java19 symbols
phoenix-common/phoenix-common-core/src/main/java/com/gitee/pifeng/monitoring/common/util/server/NetUtils.java18 symbols

Datastores touched

(mysql)Database · 1 repos
phoenixDatabase · 1 repos
(mongodb)Database · 1 repos

For agents

$ claude mcp add phoenix \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact