इस प्रोजेक्ट के बारे में
# Build-Eye CI निगरानी प्रणाली
**बिल्ड ईगल** - vLLM-Ascend CI बिल्ड स्वचालित निगरानी और मूल कारण विश्लेषण प्रणाली
## प्रणाली अवलोकन
Build-Eye विशेष रूप से vLLM-Ascend परियोजना के लिए डिज़ाइन की गई CI बिल्ड निगरानी प्रणाली है, जो निम्नलिखित कर सकती है:
- vllm-project/vllm-ascend रिपॉजिटरी के CI बिल्ड की **स्वचालित निगरानी**
- बिल्ड विफलता के मूल कारणों का **बुद्धिमान वर्गीकरण** (कोड समस्या/अवसंरचना समस्या/हस्तक्षेप समस्या)
- कम लागत वाले कार्यान्वयन योग्य समाधानों का **सुझाव निर्माण**
- मानकीकृत रिपोर्ट का build-eye रिपॉजिटरी में स्वचालित **संग्रहण**
## निगरानी लक्ष्य
- मुख्य निगरानी रिपॉजिटरी: https://github.com/vllm-project/vllm-ascend
- संग्रहण होस्टिंग रिपॉजिटरी: https://github.com/winson-00178005/build-eye.git
## विफलता मूल कारण वर्गीकरण
### 1. PR कोड समस्या
- परीक्षण अभिकथन विफलता
- संकलन त्रुटि (CMake, clang)
- Python आयात त्रुटि
- vLLM API असंगतता
- Ascend kernel संकलन समस्या
### 2. अवसंरचना समस्या
- K8s cache-service विफलता (cache-service.nginx-pypi-cache)
- Runner अनुपलब्ध
- NPU हार्डवेयर समस्या (910B/910C/310P)
- CANN toolkit समस्या
- HCCL मल्टी-कार्ड संचार विफलता
- Docker इमेज पुल विफलता
- Csrc कैश विफलता
- बिल्ड टाइमआउट
### 3. बहु-PR समवर्ती हस्तक्षेप
- कम समय में कई PR का मर्ज
- vLLM संस्करण मैट्रिक्स अंतर
- Runner संसाधन प्रतिस्पर्धा
- CANN इमेज अपडेट प्रभाव
## त्वरित शुरुआत
### 1. GitHub Token कॉन्फ़िगर करें
आवश्यक कुंजियों को कॉन्फ़िगर करने के लिए `docs/token-setup.md` देखें।
### 2. निर्भरताएँ स्थापित करें
```bash
pip install -r requirements.txt
```
### 3. मैन्युअल रूप से निगरानी ट्रिगर करें
```bash
python scripts/monitor/fetch_runs.py --output data/workflow_runs.json
python scripts/monitor/collect_metadata.py --input data/workflow_runs.json --output data/build_metadata.json
python scripts/classify/classifier.py --input data/build_metadata.json --output data/classifications.json
python scripts/recommend/recommender.py --input data/classifications.json --output data/recommendations.json
python scripts/report/generator.py --input data/recommendations.json --output reports/
```
### 4. रिपोर्ट संग्रहीत करें
```bash
python scripts/archive/archiver.py --input reports/ --repo https://github.com/winson-00178005/build-eye.git
```
## GitHub Actions वर्कफ़्लो
प्रणाली दो ट्रिगर मोड का समर्थन करती है:
### निर्धारित पोलिंग
हर 6 घंटे में हाल की बिल्ड विफलताओं की स्वचालित जाँच।
वर्कफ़्लो फ़ाइल: `.github/workflows/monitor.yml`
### मैन्युअल ट्रिगर
GitHub Actions के `workflow_dispatch` के माध्यम से मैन्युअल रूप से ट्रिगर करें।
वैकल्पिक पैरामीटर:
- `lookback_hours`: पिछले कितने घंटे जाँचें (डिफ़ॉल्ट 24)
- `dry_run`: परीक्षण मोड (संग्रहण नहीं)
- `target_repo`: लक्ष्य रिपॉजिटरी
## परियोजना संरचना
```
build-eye/
├── .github/workflows/
│ └── monitor.yml # GitHub Actions वर्कफ़्लो
├── scripts/
│ ├── monitor/ # CI निगरानी मॉड्यूल
│ │ ├── github_client.py # GitHub API क्लाइंट
│ │ ├── fetch_runs.py # workflow runs प्राप्त करें
│ │ ├── collect_metadata.py # मेटाडेटा एकत्र करें
│ │ └── config_loader.py # कॉन्फ़िगरेशन लोडिंग
│ ├── classify/ # विफलता वर्गीकरण मॉड्यूल
│ │ ├── classifier.py # वर्गीकरण इंजन
│ │ ├── code_detector.py # कोड समस्या पहचान
│ │ ├── infra_detector.py # अवसंरचना पहचान
│ │ └── interference_detector.py # हस्तक्षेप पहचान
│ ├── recommend/ # समाधान सुझाव मॉड्यूल
│ │ ├── recommender.py # सुझाव जनरेटर
│ │ └── templates.py # सुझाव टेम्पलेट
│ ├── report/ # रिपोर्ट निर्माण मॉड्यूल
│ │ ├── generator.py # रिपोर्ट जनरेटर
│ │ ├── formatter.py # फ़ॉर्मेटिंग उपकरण
│ │ └── summary.py # सारांश निर्माण
│ └── archive/ # रिपोर्ट संग्रहण मॉड्यूल
│ ├── archiver.py # संग्रहकर्ता
│ └── git_client.py # Git क्लाइंट
├── config/
│ └── config.yaml # प्रणाली कॉन्फ़िगरेशन
├── templates/
│ └ example_reports.py # रिपोर्ट उदाहरण
├── tests/ # परीक्षण निर्देशिका
├── docs/
│ └ token-setup.md # Token कॉन्फ़िगरेशन गाइड
├── reports/ # रिपोर्ट आउटपुट निर्देशिका
└ requirements.txt # Python निर्भरताएँ
└ requirements-dev.txt # विकास निर्भरताएँ
└ README.md # यह दस्तावेज़
```
## कॉन्फ़िगरेशन विकल्प
### config/config.yaml
```yaml
target_repository:
owner: vllm-project
repo: vllm-ascend
url: https://github.com/vllm-project/vllm-ascend
branch: main
monitored_workflows:
- pr_test_full.yaml
- pr_test_light.yaml
archive_repository:
owner: winson-00178005
repo: build-eye
url: https://github.com/winson-00178005/build-eye.git
monitoring:
polling_interval_hours: 6
lookback_hours: 24
```
### पर्यावरण चर
- `GITHUB_TOKEN`: GitHub API एक्सेस token
- `ARCHIVE_TOKEN`: संग्रहण रिपॉजिटरी राइट token
- `TARGET_REPO_OWNER`: लक्ष्य रिपॉजिटरी owner
- `TARGET_REPO_NAME`: लक्ष्य रिपॉजिटरी नाम
## रिपोर्ट प्रारूप
प्रत्येक रिपोर्ट में शामिल है:
- YAML frontmatter (मेटाडेटा)
- सारांश (1-2 वाक्य)
- मूल कारण विश्लेषण (वर्गीकरण, विश्वास स्तर, तर्क)
- प्रमाण (मिलान पैटर्न, लिंक, लॉग अंश)
- समाधान सुझाव (प्राथमिक सुझाव, विस्तृत चरण)
- संबंधित PR (केवल हस्तक्षेप वर्गीकरण)
रिपोर्ट संग्रहण पथ: `reports/YYYY/MM/DD/<वर्गीकरण>-pr-<संख्या>.md`
## परीक्षण चलाएँ
```bash
pip install -r requirements-dev.txt
pytest tests/
```
## nightly पाइपलाइन का विस्तार
प्रणाली nightly पाइपलाइन निगरानी का समर्थन करने के लिए डिज़ाइन की गई है, बस कॉन्फ़िगरेशन में जोड़ें:
```yaml
target_repository:
monitored_workflows:
- schedule_nightly_test_a2.yaml
- schedule_nightly_test_a3.yaml
```
## रखरखाव और विस्तार
### नए वर्गीकरण नियम जोड़ें
`scripts/classify/` में नया डिटेक्टर जोड़ें:
```python
def detect_new_pattern(log_excerpt: str) -> dict:
patterns = [...]
# पहचान तर्क लागू करें
```
फिर `classifier.py` में कॉल करें।
### नए सुझाव टेम्पलेट जोड़ें
`scripts/recommend/templates.py` में नया टेम्पलेट जोड़ें।
## लाइसेंस
Apache License 2.0 - विवरण के लिए LICENSE फ़ाइल देखें
## संपर्क
समस्या प्रतिक्रिया: https://github.com/winson-00178005/build-eye/issues
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.