Adding README.md File

هذا الالتزام موجود في:
ahmedgamalyousef
2025-09-29 20:18:57 +03:00
الأصل 669ed145e8
التزام 7fa6b76647

عرض الملف

@@ -10,8 +10,8 @@ The project also includes **logging**, a **log monitoring script**, and **automa
- Search fruits by name
- Filter fruits by category
- Health check endpoint
- Logging of all requests & responses to `api.log`
- Bash script for monitoring logs (`monitor.sh`)
- Logging of all requests & responses to `fruit_api.log`
- Bash script for monitoring logs (`log_monitor.sh`)
- Bash script for automated API testing (`test_api.sh`)
- Swagger/OpenAPI documentation
@@ -38,6 +38,10 @@ pip install -r requirements.txt
```bash
python fruit_api.py
```
or
```bash
python3 fruit_api.py
```
API will start at:
👉 `http://localhost:5000`
@@ -89,7 +93,7 @@ curl -X PUT http://localhost:5000/fruits/1 -H "Content-Type: application/js
- All API requests and responses are saved in:
```
api.log
fruit_api.log
```
Example log:
@@ -99,17 +103,17 @@ Example log:
---
## 🔎 Monitoring (monitor.sh)
## 🔎 Monitoring (log_monitor.sh)
The `monitor.sh` script:
- Monitors `api.log` every 2 hours
The `log_monitor.sh` script:
- Monitors `fruit_api.log` every 2 hours
- Detects **errors (4XX, 5XX)** and unusual keywords (`failed`, `timeout`)
- Captures server metrics (IP, CPU, RAM, Disk)
- Sends an **alert JSON** to Ghaymah endpoint
Run it in background:
```bash
bash monitor.sh &
bash log_monitor.sh &
```
---
@@ -153,24 +157,9 @@ fruit-api/
│── fruit_api.py # Main Flask API
│── requirements.txt # Dependencies
│── Dockerfile # Docker support
│── monitor.sh # Log monitoring script
│── log_monitor.sh # Log monitoring script
│── test_api.sh # Automated testing script
│── api.log # API logs
│── test_results.log # Test logs
│── fruit_api.log # API logs
│── README.md # Documentation
│── .gitignore # Ignore venv/logs
```
---
## 📌 Submission Guidelines
- Push project to **GitPasha**: [https://app.gitpasha.com/](https://app.gitpasha.com/)
- Repository must include:
- API source code
- Bash scripts (`monitor.sh`, `test_api.sh`)
- Sample logs
- Documentation (`README.md`)
- Demo should include:
- Running the API
- Triggering errors
- Showing alerts in action