mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-29 03:50:18 +00:00
Keep only the simple AI-powered approach: - set_resource_url tool lets AI save discovered URLs - Users ask AI directly: 'Find URLs for my containers' - AI uses its intelligence to discover and set URLs Removed: - URLDiscoveryService (rigid port scanning) - Bulk discovery API endpoints - Frontend discovery button The AI itself is smart enough to iterate through resources and discover URLs when asked.
76 lines
2.3 KiB
Go
76 lines
2.3 KiB
Go
package ai
|
|
|
|
import (
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/alerts"
|
|
)
|
|
|
|
// AlertThresholdAdapter adapts alerts.Manager to the ThresholdProvider interface
|
|
// This allows the patrol service to use user-configured alert thresholds
|
|
type AlertThresholdAdapter struct {
|
|
manager *alerts.Manager
|
|
}
|
|
|
|
// NewAlertThresholdAdapter creates a new adapter for the alerts manager
|
|
func NewAlertThresholdAdapter(manager *alerts.Manager) *AlertThresholdAdapter {
|
|
return &AlertThresholdAdapter{manager: manager}
|
|
}
|
|
|
|
// GetNodeCPUThreshold returns the CPU alert trigger threshold for nodes (0-100%)
|
|
func (a *AlertThresholdAdapter) GetNodeCPUThreshold() float64 {
|
|
if a.manager == nil {
|
|
return 80 // default
|
|
}
|
|
cfg := a.manager.GetConfig()
|
|
if cfg.NodeDefaults.CPU != nil && cfg.NodeDefaults.CPU.Trigger > 0 {
|
|
return cfg.NodeDefaults.CPU.Trigger
|
|
}
|
|
return 80 // default
|
|
}
|
|
|
|
// GetNodeMemoryThreshold returns the memory alert trigger threshold for nodes (0-100%)
|
|
func (a *AlertThresholdAdapter) GetNodeMemoryThreshold() float64 {
|
|
if a.manager == nil {
|
|
return 85 // default
|
|
}
|
|
cfg := a.manager.GetConfig()
|
|
if cfg.NodeDefaults.Memory != nil && cfg.NodeDefaults.Memory.Trigger > 0 {
|
|
return cfg.NodeDefaults.Memory.Trigger
|
|
}
|
|
return 85 // default
|
|
}
|
|
|
|
// GetGuestMemoryThreshold returns the memory alert trigger threshold for guests (0-100%)
|
|
func (a *AlertThresholdAdapter) GetGuestMemoryThreshold() float64 {
|
|
if a.manager == nil {
|
|
return 85 // default
|
|
}
|
|
cfg := a.manager.GetConfig()
|
|
if cfg.GuestDefaults.Memory != nil && cfg.GuestDefaults.Memory.Trigger > 0 {
|
|
return cfg.GuestDefaults.Memory.Trigger
|
|
}
|
|
return 85 // default
|
|
}
|
|
|
|
// GetGuestDiskThreshold returns the disk alert trigger threshold for guests (0-100%)
|
|
func (a *AlertThresholdAdapter) GetGuestDiskThreshold() float64 {
|
|
if a.manager == nil {
|
|
return 90 // default
|
|
}
|
|
cfg := a.manager.GetConfig()
|
|
if cfg.GuestDefaults.Disk != nil && cfg.GuestDefaults.Disk.Trigger > 0 {
|
|
return cfg.GuestDefaults.Disk.Trigger
|
|
}
|
|
return 90 // default
|
|
}
|
|
|
|
// GetStorageThreshold returns the usage alert trigger threshold for storage (0-100%)
|
|
func (a *AlertThresholdAdapter) GetStorageThreshold() float64 {
|
|
if a.manager == nil {
|
|
return 85 // default
|
|
}
|
|
cfg := a.manager.GetConfig()
|
|
if cfg.StorageDefault.Trigger > 0 {
|
|
return cfg.StorageDefault.Trigger
|
|
}
|
|
return 85 // default
|
|
}
|