mirror of
https://github.com/Dvorinka/beszel.git
synced 2026-06-03 21:02:56 +00:00
8011d487f1
- Add status pages, incidents, badges, maintenance, bulk ops, and metrics - Add Docker packaging, env example, and frontend routes - Refresh GitHub workflows and project metadata
217 lines
7.3 KiB
Markdown
217 lines
7.3 KiB
Markdown
# Feature Analysis & Comparison
|
|
|
|
## Chart Library Export
|
|
Created `/chart-library.tsx` - A standalone chart library that can be exported to other projects.
|
|
|
|
### Components Included:
|
|
- **Base Charts**: AreaChart, LineChart, BarChart, PieChart
|
|
- **Pre-built Monitoring Charts**:
|
|
- `CpuUsageChart` - CPU utilization with % formatting
|
|
- `MemoryUsageChart` - Memory with byte formatting and stacking
|
|
- `DiskUsageChart` - Disk I/O with read/write lines
|
|
- `NetworkTrafficChart` - Network sent/received
|
|
- `ResponseTimeChart` - Monitor response times
|
|
- `UptimeChart` - Uptime percentage with SLA reference line
|
|
- `DomainExpiryChart` - Domain and SSL expiry timeline
|
|
- **UI Components**:
|
|
- `ChartCard` - Container with title, description, and corner elements
|
|
- `StatCard` - Statistics card with trend indicators (up/down/neutral)
|
|
- `StatusCard` - Status indicator cards
|
|
- **Utilities**: formatBytes, formatPercentage, formatDuration, formatShortDate
|
|
|
|
---
|
|
|
|
## Feature Comparison Matrix
|
|
|
|
### Domain Locker vs Our System vs Uptime Kuma
|
|
|
|
| Feature | Domain Locker | Our System | Uptime Kuma | Priority |
|
|
|---------|--------------|------------|-------------|----------|
|
|
| **Domain Management** | | | | |
|
|
| Domain expiry tracking | ✅ | ✅ | ❌ | - |
|
|
| Auto-fetch WHOIS data | ✅ | ✅ | ❌ | - |
|
|
| SSL certificate monitoring | ✅ | ✅ | Partial | - |
|
|
| Subdomain tracking | ✅ | ❌ | ❌ | Medium |
|
|
| DNS record tracking | ✅ | ✅ | ❌ | - |
|
|
| Domain valuation/cost tracking | ✅ | Partial | ❌ | Low |
|
|
| Domain tags/categories | ✅ | ✅ | ✅ | - |
|
|
| Bulk domain import | ✅ | ❌ | ❌ | Medium |
|
|
| **System Monitoring** | | | | |
|
|
| CPU/Memory/Disk/Network | ❌ | ✅ | ❌ | - |
|
|
| Docker container monitoring | ❌ | ✅ | ❌ | - |
|
|
| GPU monitoring | ❌ | ✅ | ❌ | - |
|
|
| SMART disk health | ❌ | ✅ | ❌ | - |
|
|
| Temperature sensors | ❌ | ✅ | ❌ | - |
|
|
| **Service Monitoring** | | | | |
|
|
| HTTP/HTTPS monitoring | ✅ | ✅ | ✅ | - |
|
|
| TCP port monitoring | ✅ | ✅ | ✅ | - |
|
|
| Ping/ICMP monitoring | ✅ | ✅ | ✅ | - |
|
|
| DNS monitoring | ✅ | ✅ | ✅ | - |
|
|
| Keyword monitoring | ✅ | ✅ | ✅ | - |
|
|
| JSON query monitoring | ✅ | ✅ | ✅ | - |
|
|
| Real browser monitoring | ❌ | ❌ | ✅ | High |
|
|
| gRPC monitoring | ❌ | ❌ | ✅ | Medium |
|
|
| Game server monitoring | ❌ | ❌ | ✅ | Low |
|
|
| MQTT monitoring | ❌ | ❌ | ✅ | Low |
|
|
| **Notifications** | | | | |
|
|
| Email notifications | ✅ | ✅ | ✅ | - |
|
|
| Webhook notifications | ✅ | ✅ | ✅ | - |
|
|
| Discord | ✅ | ✅ | ✅ | - |
|
|
| Slack | ✅ | ✅ | ✅ | - |
|
|
| Telegram | ✅ | ✅ | ✅ | - |
|
|
| Gotify | ✅ | ✅ | ✅ | - |
|
|
| Pushover | ✅ | ✅ | ✅ | - |
|
|
| Signal | ✅ | ❌ | ✅ | Medium |
|
|
| Microsoft Teams | ❌ | ❌ | ✅ | Medium |
|
|
| PagerDuty | ❌ | ❌ | ✅ | Low |
|
|
| Twilio/SMS | ❌ | ❌ | ✅ | Low |
|
|
| **Features** | | | | |
|
|
| Status pages | ✅ | ❌ | ✅ | High |
|
|
| Incident management | ✅ | Partial | ✅ | High |
|
|
| Maintenance windows | ❌ | ❌ | ✅ | Medium |
|
|
| Multi-user/roles | ✅ | Partial | ✅ | Medium |
|
|
| 2FA/SSO | ✅ | ❌ | Partial | Medium |
|
|
| API access | ✅ | ❌ | ✅ | High |
|
|
| Prometheus export | ✅ | ❌ | ❌ | Medium |
|
|
| iCal/RSS feeds | ✅ | ❌ | ❌ | Low |
|
|
| Mobile app/push | ❌ | ❌ | Partial | Low |
|
|
| **Charts & Visualization** | | | | |
|
|
| System resource charts | ❌ | ✅ | ❌ | - |
|
|
| Domain expiry charts | ✅ | ✅ | ❌ | - |
|
|
| Response time charts | ✅ | ✅ | ✅ | - |
|
|
| Uptime statistics | ✅ | ✅ | ✅ | - |
|
|
| Multi-series charts | ❌ | ✅ | ❌ | - |
|
|
| Heatmaps/calendars | ✅ | ❌ | ❌ | Low |
|
|
| **Data & Export** | | | | |
|
|
| Import/export data | ✅ | ❌ | ❌ | Medium |
|
|
| API for data access | ✅ | ❌ | Partial | High |
|
|
| Backup/restore | ✅ | ❌ | ❌ | Medium |
|
|
|
|
---
|
|
|
|
## Missing Features (Priority Order)
|
|
|
|
### High Priority
|
|
1. **Status Pages** - Public-facing status pages for services
|
|
2. **Real Browser Monitoring** - Monitor with headless browser for actual user experience
|
|
3. **Incident Management** - Full incident tracking with status page integration
|
|
4. **API Access** - REST API for external integrations
|
|
5. **Maintenance Windows** - Schedule maintenance periods to suppress alerts
|
|
|
|
### Medium Priority
|
|
6. **Subdomain Tracking** - Track subdomains for each domain
|
|
7. **Bulk Operations** - Bulk import/export for domains and monitors
|
|
8. **Microsoft Teams** - Teams notification provider
|
|
9. **Signal** - Signal messenger notifications
|
|
10. **Multi-user Roles** - Better role-based access control
|
|
11. **2FA/SSO** - Two-factor authentication and single sign-on
|
|
12. **Prometheus Export** - Export metrics in Prometheus format
|
|
|
|
### Low Priority
|
|
13. **Game Server Monitoring** - Steam, GameDig protocols
|
|
14. **MQTT Monitoring** - IoT device monitoring
|
|
15. **gRPC Monitoring** - gRPC health checks
|
|
16. **RSS/iCal Feeds** - Calendar and feed exports
|
|
17. **Heatmaps** - Visual calendar heatmaps for uptime
|
|
18. **Mobile Push** - Native mobile push notifications
|
|
|
|
---
|
|
|
|
## Recommended Next Features
|
|
|
|
Based on user requests and gaps:
|
|
|
|
### 1. Status Pages (HIGH)
|
|
Public status pages showing:
|
|
- Overall system status
|
|
- Individual monitor status
|
|
- Incident history
|
|
- Uptime statistics
|
|
- Custom branding/logo
|
|
|
|
### 2. Maintenance Windows (HIGH)
|
|
- Schedule maintenance periods
|
|
- Suppress alerts during maintenance
|
|
- Pre/post maintenance notifications
|
|
- Recurring maintenance schedules
|
|
|
|
### 3. API Endpoints (HIGH)
|
|
REST API for:
|
|
- CRUD operations on monitors/domains
|
|
- Fetching stats and history
|
|
- Triggering manual checks
|
|
- Managing notifications
|
|
|
|
### 4. Real Browser Monitoring (MEDIUM)
|
|
- Puppeteer/Playwright integration
|
|
- Full page load metrics
|
|
- Screenshot on failure
|
|
- Performance metrics (LCP, FCP, CLS)
|
|
|
|
### 5. Enhanced Notifications (MEDIUM)
|
|
- Signal provider
|
|
- Microsoft Teams provider
|
|
- Twilio SMS provider
|
|
- PagerDuty integration
|
|
- Custom webhook templates
|
|
|
|
---
|
|
|
|
## Chart Implementation Status
|
|
|
|
### System Detail Page Charts (Complete)
|
|
- ✅ CPU Usage Chart (Area with gradient)
|
|
- ✅ Memory Usage Chart (Stacked area)
|
|
- ✅ Disk I/O Chart (Line chart)
|
|
- ✅ Network Traffic Chart (Line chart)
|
|
- ✅ GPU Charts (Multi-metric)
|
|
- ✅ Temperature Charts (Multi-sensor)
|
|
- ✅ Load Average Chart
|
|
|
|
### Domain Detail Page Charts (Updated)
|
|
- ✅ Domain Expiry Timeline (Area chart with dual series)
|
|
- 📊 Need: Domain health gauge
|
|
- 📊 Need: SSL grade indicator
|
|
|
|
### Monitor Detail Page Charts (Partial)
|
|
- ✅ Response Time Chart (Area chart)
|
|
- ✅ Uptime Chart (Area with SLA line)
|
|
- 📊 Need: Status history heatmap
|
|
- 📊 Need: Error rate chart
|
|
|
|
---
|
|
|
|
## Notification Providers Status
|
|
|
|
### Currently Implemented (7)
|
|
1. Email (SMTP)
|
|
2. Webhook (Generic)
|
|
3. Discord
|
|
4. Slack
|
|
5. Telegram
|
|
6. Gotify
|
|
7. Pushover
|
|
|
|
### Recommended Additions
|
|
1. **Signal** - Growing privacy-focused messenger
|
|
2. **Microsoft Teams** - Enterprise standard
|
|
3. **Twilio** - SMS/voice calls
|
|
4. **PagerDuty** - Enterprise alerting
|
|
5. **Matrix** - Decentralized chat
|
|
6. **Ntfy** - Simple pub/sub notifications
|
|
7. **Bark** - iOS push notifications
|
|
8. **Pushbullet** - Cross-platform push
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
Our system has strong **system monitoring** (Beszel heritage) and good **domain monitoring** (Domain Locker inspired). The gaps are primarily in:
|
|
|
|
1. **Public-facing features** (Status pages)
|
|
2. **Enterprise integrations** (SSO, 2FA, Teams)
|
|
3. **Advanced monitoring** (Real browser, gRPC)
|
|
4. **API access** for external integrations
|
|
|
|
The chart library is now exportable and can be used in other projects.
|