Files
consul-monitor/plan_phase3.md
2025-08-11 12:30:41 -07:00

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