প্রকল্প সম্পর্কে
# 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
## ব্যর্থতার মূল কারণ শ্রেণীবিভাগ
### ১. PR কোড সমস্যা
- টেস্ট অ্যাসারশন ব্যর্থতা
- কম্পাইল ত্রুটি (CMake, clang)
- Python ইমপোর্ট ত্রুটি
- vLLM API অসামঞ্জস্য
- Ascend kernel কম্পাইল সমস্যা
### ২. অবকাঠামো সমস্যা
- K8s cache-service ব্যর্থতা (cache-service.nginx-pypi-cache)
- Runner অনুপলব্ধ
- NPU হার্ডওয়্যার সমস্যা (910B/910C/310P)
- CANN toolkit সমস্যা
- HCCL মাল্টি-কার্ড যোগাযোগ ব্যর্থতা
- Docker ইমেজ pull ব্যর্থতা
- Csrc ক্যাশে ব্যর্থতা
- বিল্ড টাইমআউট
### ৩. একাধিক PR সমকালীন হস্তক্ষেপ
- অল্প সময়ের মধ্যে একাধিক PR মার্জ
- vLLM সংস্করণ ম্যাট্রিক্স পার্থক্য
- Runner রিসোর্স প্রতিযোগিতা
- CANN ইমেজ আপডেটের প্রভাব
## দ্রুত শুরু
### ১. GitHub Token কনফিগার করুন
প্রয়োজনীয় কী কনফিগার করতে `docs/token-setup.md` দেখুন।
### ২. নির্ভরতা ইনস্টল করুন
```bash
pip install -r requirements.txt
```
### ৩. ম্যানুয়ালি পর্যবেক্ষণ ট্রিগার করুন
```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/
```
### ৪. রিপোর্ট সংরক্ষণ করুন
```bash
python scripts/archive/archiver.py --input reports/ --repo https://github.com/winson-00178005/build-eye.git
```
## GitHub Actions ওয়ার্কফ্লো
সিস্টেম দুটি ট্রিগার মোড সমর্থন করে:
### নির্ধারিত পোলিং
প্রতি ৬ ঘণ্টায় স্বয়ংক্রিয়ভাবে সাম্প্রতিক বিল্ড ব্যর্থতা পরীক্ষা করে।
ওয়ার্কফ্লো ফাইল: `.github/workflows/monitor.yml`
### ম্যানুয়াল ট্রিগার
GitHub Actions-এর `workflow_dispatch` এর মাধ্যমে ম্যানুয়ালি ট্রিগার করুন।
ঐচ্ছিক প্যারামিটার:
- `lookback_hours`: কত ঘণ্টা পিছনে পরীক্ষা করবে (ডিফল্ট ২৪)
- `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 (মেটাডেটা)
- সারসংক্ষেপ (১-২ বাক্য)
- মূল কারণ বিশ্লেষণ (শ্রেণীবিভাগ, আত্মবিশ্বাস, যুক্তি)
- প্রমাণ (ম্যাচিং প্যাটার্ন, লিংক, লগ স্নিপেট)
- সমাধান পরামর্শ (অগ্রাধিকার পরামর্শ, বিস্তারিত ধাপ)
- সম্পর্কিত 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.