mirror of
https://github.com/sstent/consul-monitor.git
synced 2025-12-06 08:01:58 +00:00
74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# Phase 3 Implementation Plan - Service Grouping and Scalability
|
|
|
|
## Overview
|
|
Implemented service grouping with composite health reporting and UI scalability enhancements to support up to 30 services.
|
|
|
|
## Key Features
|
|
1. **Service Grouping**: Services are grouped by name into single rows
|
|
2. **Composite Health**: Overall service health based on all instances
|
|
3. **Scalability**: UI optimizations to support 30+ services
|
|
|
|
## Implementation Details
|
|
|
|
### Backend Modifications
|
|
1. **Service Grouping Logic** (database.py)
|
|
- Added `get_all_services_grouped()` function
|
|
- Implemented composite health calculation per service
|
|
- Returns aggregated service data with instance lists
|
|
|
|
2. **Database Queries**
|
|
- Created optimized query to group services by name
|
|
- Added composite status calculation in SQL
|
|
- Maintained instance details within service groups
|
|
|
|
3. **API Endpoint Updates** (app.py)
|
|
- Modified `/api/services` to return service groups
|
|
- Added service-based instance grouping in responses
|
|
|
|
### Frontend Changes
|
|
1. **Table Redesign** (index.html)
|
|
- Converted to service-based table structure
|
|
- Added expandable rows for instance details
|
|
- Implemented service health indicators
|
|
|
|
2. **Health Reporting UI**
|
|
- Added composite status indicators per service
|
|
- Maintained instance-level health details
|
|
- Preserved history chart functionality
|
|
|
|
3. **Scalability Features**
|
|
- Added expand/collapse functionality
|
|
- Optimized UI for 30+ services
|
|
- Efficient data loading with grouping
|
|
|
|
### Health Calculation
|
|
1. **Status Algorithm**
|
|
- Critical if any instance critical
|
|
- Warning if any instance warning (no criticals)
|
|
- Passing if all instances passing
|
|
|
|
## Implementation Sequence
|
|
1. Updated database.py for service grouping
|
|
2. Modified app.py endpoints to use service groups
|
|
3. Redesigned frontend to display service groups
|
|
4. Added expand/collapse functionality for instances
|
|
5. Maintained URL generation for instances
|
|
6. Added error handling for new data model
|
|
|
|
## Testing Considerations
|
|
- Verify service grouping by name
|
|
- Test composite health calculation logic
|
|
- Validate expand/collapse functionality
|
|
- Test with 30+ services to ensure scalability
|
|
- Verify history charts still function properly
|
|
- Test error handling for Consul unavailability
|
|
|
|
## Estimated Implementation Time
|
|
**Total: 4-5 hours**
|
|
|
|
## Next Steps
|
|
- Implement pagination for large service sets
|
|
- Add search/filter functionality
|
|
- Optimize database queries for large datasets
|
|
- Implement service-level history charts
|