Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

๐Ÿ› ๏ธ Essential toolkit for SRE/DevOps engineers - monitoring, automation, troubleshooting, and incident response tools

License

Notifications You must be signed in to change notification settings

sunyifei83/ClusterReport

Repository files navigation

ClusterReport - Enterprise Cluster Management and Reporting Platform

License Go Version

๐Ÿš€ Comprehensive Cluster Analysis and Report Generation Tool
An integrated monitoring solution combining NodeProbe and PerfSnap engines

English | ไธญๆ–‡

โœจ Core Features

  • ๐Ÿ“Š Automated Data Collection - Automatic collection of cluster node configuration and performance data
  • ๐Ÿ” Deep System Analysis - Comprehensive analysis of CPU, memory, disk, network, and more
  • โšก Real-time Performance Monitoring - Integrated PerfSnap engine for real-time monitoring capabilities
  • ๐Ÿ”Œ Extensible Plugin System - Support for custom collectors and analyzers
  • ๐Ÿ“„ Multi-format Reports - Generate reports in HTML, JSON, Markdown, and more
  • ๐Ÿค– Intelligent Analysis Engine - Automatic health scoring and issue detection

๐Ÿš€ Quick Start

Building from Source

# Clone the repository
git clone https://github.com/sunyifei83/ClusterReport.git
cd ClusterReport
# Build the project
go build -o clusterreport ./cmd/cli
# Run the application
./clusterreport --help

Basic Usage

# Check version
./clusterreport version
# Collect data (in development)
./clusterreport collect --nodes localhost
# Generate report (in development)
./clusterreport generate --output report.html
# One-command report generation (planned)
./clusterreport report --cluster production --formats html,pdf

๐Ÿ“ Project Structure

ClusterReport/ # Project root directory
โ”œโ”€โ”€ README.md # Project homepage (English)
โ”œโ”€โ”€ README-zh.md # Chinese documentation
โ”œโ”€โ”€ LICENSE # MIT License
โ”œโ”€โ”€ CODE_OF_CONDUCT.md # Code of conduct
โ”œโ”€โ”€ CONTRIBUTING.md # Contribution guidelines
โ”œโ”€โ”€ config.yaml # Configuration file
โ”œโ”€โ”€ go.mod / go.sum # Go dependencies
โ”‚
โ”œโ”€โ”€ cmd/ # Command line entry points
โ”‚ โ”œโ”€โ”€ cli/ # CLI mode
โ”‚ โ”œโ”€โ”€ server/ # Server mode (planned)
โ”‚ โ””โ”€โ”€ agent/ # Agent mode (planned)
โ”‚
โ”œโ”€โ”€ pkg/ # Core packages
โ”‚ โ”œโ”€โ”€ collector/ # Data collectors
โ”‚ โ”œโ”€โ”€ analyzer/ # Data analyzers
โ”‚ โ””โ”€โ”€ generator/ # Report generators
โ”‚
โ”œโ”€โ”€ plugins/ # Plugin system
โ”‚ โ”œโ”€โ”€ collectors/ # Collection plugins (MySQL, Redis, etc.)
โ”‚ โ””โ”€โ”€ analyzers/ # Analysis plugins
โ”‚
โ”œโ”€โ”€ web/ # Web interface (in development)
โ”‚ โ””โ”€โ”€ dashboard/ # Management dashboard
โ”‚
โ”œโ”€โ”€ deployments/ # Deployment configurations
โ”‚ โ”œโ”€โ”€ docker/ # Docker configs
โ”‚ โ”œโ”€โ”€ kubernetes/ # Kubernetes configs
โ”‚ โ””โ”€โ”€ ansible/ # Ansible playbooks
โ”‚
โ”œโ”€โ”€ docs/ # Project documentation
โ”‚ โ”œโ”€โ”€ getting-started/ # Quick start guides
โ”‚ โ”œโ”€โ”€ tools/go/ # Tool documentation
โ”‚ โ””โ”€โ”€ archive/ # Archived documentation
โ”‚
โ”œโ”€โ”€ tools/ # Utility tools
โ”‚ โ””โ”€โ”€ utils/ # Utility scripts
โ”‚ โ””โ”€โ”€ DocConverter.go # Document converter
โ”‚
โ”œโ”€โ”€ scripts/ # Script tools
โ”‚ โ””โ”€โ”€ README.md # Scripts documentation
โ”‚
โ””โ”€โ”€ legacy/ # Legacy tools
 โ”œโ”€โ”€ NodeProbe.go # Legacy node probe
 โ”œโ”€โ”€ PerfSnap.go # Legacy performance snapshot
 โ””โ”€โ”€ tools/ # Legacy tool scripts

๐Ÿ“š Documentation

๐Ÿšฆ Project Status

Current Version: v0.7.0 (70% Complete) ๐Ÿšง
Target Version: v1.0.0
Expected Release: December 2025

Completed โœ…

  • โœ… Project architecture design
  • โœ… Core code framework
  • โœ… Data collectors (collector package)
  • โœ… Data analyzers (analyzer package)
  • โœ… Report generators (generator package)
  • โœ… Plugin system foundation
  • โœ… Web Dashboard UI prototype

In Development ๐Ÿšง

  • ๐Ÿšง CLI command-line tools
  • ๐Ÿšง Configuration file management
  • ๐Ÿšง Remote node collection (SSH)
  • ๐Ÿšง Complete report formats
  • ๐Ÿšง Test coverage

Planned ๐Ÿ“‹

  • ๐Ÿ“‹ Server/Agent architecture
  • ๐Ÿ“‹ Data persistence and storage
  • ๐Ÿ“‹ Scheduled task system
  • ๐Ÿ“‹ Alert and notification system
  • ๐Ÿ“‹ Docker/Kubernetes deployment

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ClusterReport Platform โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๐Ÿ“ฆ Built-in Data Collection Engines โ”‚
โ”‚ โ€ข NodeProbe Engine - System configuration collection โ”‚
โ”‚ โ€ข PerfSnap Engine - Performance data collection โ”‚
โ”‚ โ€ข Plugin System - Custom collectors โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๐Ÿ“Š Collector โ†’ ๐Ÿ“ˆ Analyzer โ†’ ๐Ÿ“ Generator โ”‚
โ”‚ Data Collection Smart Analysis Report Generation โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๐Ÿ”Œ Plugin System โ”‚
โ”‚ โ€ข MySQL/Redis/Custom Collectors โ”‚
โ”‚ โ€ข Anomaly Detection/Trend Analysis โ”‚
โ”‚ โ€ข HTML/PDF/Excel Output โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Core Components

  1. Data Collection Layer

    • System metrics collection (CPU, Memory, Disk, Network)
    • Performance data acquisition
    • Plugin-based extensibility
  2. Analysis Layer

    • Multi-dimensional metric analysis
    • Intelligent health scoring (0-100)
    • Automated issue detection
  3. Report Generation Layer

    • Multiple output formats (HTML, JSON, Markdown, PDF)
    • Customizable templates
    • Rich visualization and charts
  4. Plugin System

    • Custom collector support
    • Third-party integrations (MySQL, Redis, Prometheus)
    • Extensible analyzer framework

๐Ÿ› ๏ธ Technology Stack

  • Language: Go 1.21+
  • Configuration: YAML
  • CLI Framework: Cobra + Viper
  • Web: HTML + CSS + JavaScript
  • Report Formats: HTML, JSON, Markdown, PDF (planned)
  • Deployment: Docker, Kubernetes (planned)

๐ŸŽฏ Use Cases

1. New Cluster Acceptance

# Collect data from all nodes
clusterreport collect --cluster production --nodes node1,node2,node3
# Generate acceptance report
clusterreport generate --type acceptance --baseline baseline.yaml --output acceptance_report.html

2. Regular Inspections

# Monthly inspection report
clusterreport report --cluster production --formats html,pdf --output ./reports/

3. Performance Benchmarking

# Performance baseline testing
clusterreport collect --nodes all --include-benchmarks
clusterreport analyze --input collected_data.json --type performance
clusterreport generate --format html --output performance_report.html

4. Incident Analysis

# Analyze specific time period
clusterreport analyze --time-range "2025ๅนด01ๆœˆ15ๆ—ฅ 14:00,2025ๅนด01ๆœˆ15ๆ—ฅ 16:00" \
 --focus performance,logs --output incident_report.pdf

๐Ÿค Contributing

We welcome contributions, bug reports, and feature suggestions!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

๐Ÿ“„ License

This project is licensed under the MIT License

๐Ÿ“ฎ Contact

๐ŸŽฏ Design Philosophy

  1. Unified Platform - Integrate NodeProbe and PerfSnap functionality
  2. Simple to Use - Accomplish complex tasks with a single command
  3. Highly Extensible - Plugin system for custom extensions
  4. Lightweight Deployment - Single binary, no external dependencies
  5. Cloud-Native Ready - Container deployment with native Kubernetes support

๐Ÿ—บ๏ธ Roadmap

Phase 1: CLI Foundation (v0.8.0) - Q2 2025

  • Complete CLI command implementation
  • Configuration file management
  • Local data collection and analysis
  • Basic report generation (HTML, Markdown, JSON)

Phase 2: Remote Collection (v0.9.0) - Q3 2025

  • SSH-based remote node collection
  • Batch processing of multiple nodes
  • Enhanced data analysis
  • Advanced reporting features

Phase 3: Server/Agent Architecture (v1.0.0) - Q4 2025

  • REST API server
  • Web management dashboard
  • Agent-based data collection
  • Scheduled task system
  • User authentication and authorization

Phase 4: Enterprise Features (v2.0.0) - 2026

  • Microservices architecture
  • Data persistence and history
  • Machine learning-based anomaly detection
  • Multi-cluster management
  • Alert and notification system
  • Third-party integrations (Prometheus, Grafana, etc.)

๐Ÿ“Š Current Implementation Status

Component Status Completion Notes
Core Framework โœ… Complete 100% Architecture and interfaces defined
Data Collector โœ… Complete 100% System metrics collection implemented
Data Analyzer โœ… Complete 90% Health scoring and analysis logic
Report Generator โœ… Complete 80% HTML, JSON, Markdown supported
CLI Commands ๐Ÿšง In Progress 60% Basic commands functional
Plugin System โœ… Complete 70% Interface defined, examples provided
Web Dashboard ๐Ÿšง In Progress 40% UI prototype complete
Configuration ๐Ÿšง In Progress 70% YAML config support
Testing ๐Ÿšง In Progress 30% Unit tests for core modules
Documentation โœ… Complete 85% Architecture and design docs

๐Ÿ”ง Development Setup

Prerequisites

  • Go 1.21 or higher
  • Linux or macOS (Windows support planned)
  • Git

Build and Run

# Install dependencies
go mod download
# Build
go build -o clusterreport ./cmd/cli
# Run tests
go test ./...
# Run with verbose output
./clusterreport collect --nodes localhost --verbose

Development Commands

# Format code
go fmt ./...
# Run linter
golangci-lint run
# Generate documentation
go doc -all

๐ŸŒŸ Comparison with Other Tools

Feature ClusterReport Generic Monitoring Cloud Services
Hardware Config Analysis โœ… Deep โš ๏ธ Basic โš ๏ธ Limited
Performance Benchmarking โœ… Complete โœ… Partial โš ๏ธ Basic
Offline Reports โœ… Supported โš ๏ธ Partial โŒ Requires Online
Customization โœ… Highly Flexible โš ๏ธ Limited โš ๏ธ Limited
Batch Processing โœ… Native Support โš ๏ธ Script Required โœ… Supported
Cost โœ… Open Source Free โš ๏ธ Partially Paid โŒ Paid
Multi-Cluster Support ๐Ÿ“‹ Planned โœ… Supported โœ… Supported

๐Ÿ“– Learn More

๐Ÿ™ Acknowledgments

This project integrates concepts and learnings from:

  • NodeProbe - Hardware configuration collection
  • PerfSnap - Performance profiling and analysis
  • Various open-source monitoring and reporting tools

โญ If this project helps you, please give us a Star!

Note: The project is under active development (70% complete). Some features are not yet implemented. Contributions and suggestions are welcome! ๐Ÿš€

About

๐Ÿ› ๏ธ Essential toolkit for SRE/DevOps engineers - monitoring, automation, troubleshooting, and incident response tools

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /