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

2.5 KiB

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