Distributed Database Anomaly Detection & Diagnosis Platform
DBPecker is a sophisticated platform designed to monitor, detect, and diagnose anomalies in distributed database environments. With real-time metrics visualization, automated anomaly detection, and streamlined diagnosis workflows, DBPecker helps administrators maintain optimal performance and stability in their databases.
Before you begin, ensure you have the following installed:
- Python 3.8 or higher
- Node.js 16 or higher (with pnpm installed)
- Kubernetes and kubectl for cluster management
- ob-operator and Chaos Mesh (refer to their official manuals for installation)
- Toda and stress-ng for pod resource stress testing (refer to their respective official documentation)
Follow the official documentation to install these components:
- Create a Kubernetes cluster configured with 3 nodes.
- Deploy the OceanBase cluster:
- Apply the cluster manifest by running:
kubectl apply -f k8s/obcluster.yaml
- Apply the cluster manifest by running:
- Configure the OceanBase proxy:
- Open the file
k8s/obproxy.yaml. - Modify the
RS_LISTfield to include the actual IP:port for each of the 3 nodes.
- Open the file
- Apply the proxy configuration:
kubectl apply -f k8s/obproxy.yaml
- Navigate to the backend directory.
- Create and activate a Python virtual environment:
python3 -m venv venv source venv/bin/activate - Install the required Python dependencies:
pip install -r requirements.txt
- Start the backend server with auto-reload enabled:
uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload
- Navigate to the frontend directory.
- Install node dependencies using pnpm:
pnpm install
- Start the frontend development server:
pnpm run dev
- Open your web browser and go to http://localhost:3000 to access the application.
Once the system is up and running, you can:
- Monitor real-time metrics of your OceanBase cluster.
- Configure and inject anomalies to test and validate system behavior.
- Access detailed anomaly diagnostics and root cause analysis through an intuitive control panel.
Use the interface to manage workloads, observe system performance, and ensure your distributed database environment remains robust.
For more details, please refer to the following resources:
- Official ob-operator documentation
- Official Chaos Mesh documentation
This project is licensed under the MIT License. See the LICENSE file for details.