Open
Description
There's a PR for this ongoing at:
Background
KEDA is a Kubernetes-based Event Driven Autoscaler. With KEDA, one can drive the scaling of any container in Kubernetes based on the number of events needing to be processed. While KEDA provides excellent functionality for scaling workloads based on event sources and custom metrics, monitoring and managing KEDA resources through Kubernetes dashboards remains challenging.
Problem Statement
Currently, Kubernetes administrators and developers face several challenges when working with KEDA:
- Limited visibility into ScaledObjects and ScaledJobs without using command-line tools
- Difficulty in monitoring the current scaling state and triggers in real-time
- No unified interface for viewing KEDA metrics alongside other Kubernetes resources
Objective
Create a Headlamp plugin that provides comprehensive visibility and management capabilities for KEDA resources, enabling users to:
- View and manage ScaledObjects and ScaledJobs through a intuitive interface
- Monitor real-time scaling metrics and trigger states
- Troubleshoot scaling behaviors with integrated logging and event visualization
Implementation Details
Resource Management
- List view of all ScaledObjects and ScaledJobs with filtering and sorting capabilities
- Detailed view of individual KEDA resources showing configurations and relationships
- YAML editor for direct modification of KEDA resources
- Creation wizard for new ScaledObjects and ScaledJobs (Optional)
Monitoring and Visualization
- Real-time metrics visualization for active scaling triggers (in Details View)
- Historical scaling activity graphs (in Details View)
Relationship Mapping
- Visual representation of relationships between KEDA resources and target workloads (in Details View)
- Cross-linking between related resources for easy navigation (in Details View)
Development Phases
Phase 1: Basic Resource Management
- Implementation of list and detail views
- Basic CRUD operations for KEDA resources
- Integration with Headlamp's navigation and layout
Phase 2: Monitoring and Visualization
- Metrics collection and visualization
- Real-time updates via WebSocket
- Event correlation and display
Phase 3: Advanced Features
- Relationship visualization
- Creation wizard
- Documentation and examples