Documentation
¶
Overview ¶
File: backend/internal/monitoring/campaign_integration.go
File: backend/internal/monitoring/integration.go
File: backend/internal/monitoring/monitoring_service.go
File: backend/internal/monitoring/performance_tracker.go
File: backend/internal/monitoring/resource_monitor.go
Index ¶
- func DefaultLogAlertHandler(alert Alert)
- func QuickTrackDNSValidation(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func QuickTrackDomainGeneration(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func QuickTrackHTTPValidation(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func SetGlobalMonitoringIntegration(integration *CampaignMonitoringIntegration)
- type ActiveOperation
- type Alert
- type AlertHandler
- type AlertThresholds
- type CampaignCleanupInfo
- type CampaignHealth
- type CampaignMonitoringIntegration
- func (cmi *CampaignMonitoringIntegration) GetCampaignHealth(campaignID uuid.UUID) CampaignHealth
- func (cmi *CampaignMonitoringIntegration) GetSystemHealthSummary() SystemHealthSummary
- func (cmi *CampaignMonitoringIntegration) SetCampaignResourceLimits(campaignID uuid.UUID, maxCPU float64, maxMemoryMB uint64, maxDiskGB uint64, ...)
- func (cmi *CampaignMonitoringIntegration) TrackBulkOperation(operationType string, campaignID *uuid.UUID, itemCount int) (string, func(bool, string))
- func (cmi *CampaignMonitoringIntegration) TrackContentAnalysis(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func (cmi *CampaignMonitoringIntegration) TrackDNSValidation(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func (cmi *CampaignMonitoringIntegration) TrackDomainGeneration(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func (cmi *CampaignMonitoringIntegration) TrackHTTPValidation(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
- func (cmi *CampaignMonitoringIntegration) UpdateCampaignResourceUsage(campaignID uuid.UUID, cpuPercent float64, memoryMB uint64, diskGB uint64)
- type CampaignResourceLimits
- type CleanupConfig
- type CleanupService
- func (cs *CleanupService) AddTempFile(campaignID uuid.UUID, filePath string)
- func (cs *CleanupService) ForceCleanupCampaign(campaignID uuid.UUID) error
- func (cs *CleanupService) GetCampaignCleanupInfo(campaignID uuid.UUID) (*CampaignCleanupInfo, bool)
- func (cs *CleanupService) GetCleanupStats() CleanupStats
- func (cs *CleanupService) IsRunning() bool
- func (cs *CleanupService) MarkCampaignFinished(campaignID uuid.UUID, status string)
- func (cs *CleanupService) RegisterCampaign(campaignID uuid.UUID)
- func (cs *CleanupService) Start(ctx context.Context) error
- func (cs *CleanupService) Stop()
- type CleanupStats
- type MonitoringConfig
- type MonitoringIntegration
- func (mi *MonitoringIntegration) CheckCampaignHealth(campaignID uuid.UUID) (bool, string)
- func (mi *MonitoringIntegration) FinishBulkOperation(operationID string, itemsProcessed int, success bool, errorMsg string)
- func (mi *MonitoringIntegration) FinishCampaignExecution(operationID string, campaignID uuid.UUID, itemsProcessed int, success bool, ...)
- func (mi *MonitoringIntegration) FinishDNSValidation(operationID string, domainsValidated int, success bool, errorMsg string)
- func (mi *MonitoringIntegration) FinishDomainGeneration(operationID string, domainsGenerated int, success bool, errorMsg string)
- func (mi *MonitoringIntegration) GetSystemHealthStatus() string
- func (mi *MonitoringIntegration) InitializeMonitoring(ctx context.Context) error
- func (mi *MonitoringIntegration) LogSystemHealth()
- func (mi *MonitoringIntegration) Shutdown()
- func (mi *MonitoringIntegration) TrackBulkOperation(operationType string, campaignID *uuid.UUID, operationID string)
- func (mi *MonitoringIntegration) TrackCampaignExecution(campaignID uuid.UUID, operationID string)
- func (mi *MonitoringIntegration) TrackDNSValidation(campaignID uuid.UUID, operationID string)
- func (mi *MonitoringIntegration) TrackDomainGeneration(campaignID uuid.UUID, operationID string)
- type MonitoringService
- func (ms *MonitoringService) AddAlertHandler(handler AlertHandler)
- func (ms *MonitoringService) EndOperationTracking(operationID string, itemsProcessed int, success bool, errorMessage string)
- func (ms *MonitoringService) GetCampaignResourceUsage(campaignID uuid.UUID) (*ResourceUsage, bool)
- func (ms *MonitoringService) GetMonitoringStats() MonitoringStats
- func (ms *MonitoringService) GetSystemHealth() SystemHealth
- func (ms *MonitoringService) IsRunning() bool
- func (ms *MonitoringService) SetCampaignResourceLimits(campaignID uuid.UUID, limits CampaignResourceLimits)
- func (ms *MonitoringService) Start(ctx context.Context, config MonitoringConfig) error
- func (ms *MonitoringService) StartOperationTracking(operationID, operationType string, campaignID *uuid.UUID)
- func (ms *MonitoringService) Stop()
- type MonitoringStats
- type PerformanceMetric
- type PerformanceSummary
- type PerformanceTracker
- func (pt *PerformanceTracker) EndOperation(operationID string, itemsProcessed int, success bool, errorMessage string)
- func (pt *PerformanceTracker) GetActiveOperations() []ActiveOperation
- func (pt *PerformanceTracker) GetAllSummaries() map[string]PerformanceSummary
- func (pt *PerformanceTracker) GetFailedOperations(limit int) []PerformanceMetric
- func (pt *PerformanceTracker) GetMetricsByOperationType(operationType string, limit int) []PerformanceMetric
- func (pt *PerformanceTracker) GetRecentMetrics(limit int) []PerformanceMetric
- func (pt *PerformanceTracker) GetSlowOperations(thresholdMs int64, limit int) []PerformanceMetric
- func (pt *PerformanceTracker) GetSummary(operationType string) (*PerformanceSummary, bool)
- func (pt *PerformanceTracker) GetThroughputTrends(operationType string, hours int) []ThroughputPoint
- func (pt *PerformanceTracker) Reset()
- func (pt *PerformanceTracker) StartOperation(operationID, operationType string, campaignID *uuid.UUID)
- type ResourceAlert
- type ResourceMonitor
- func (rm *ResourceMonitor) CheckCampaignLimits(campaignID uuid.UUID) (bool, string)
- func (rm *ResourceMonitor) GetActiveAlerts(limit int) []ResourceAlert
- func (rm *ResourceMonitor) GetCampaignUsage(campaignID uuid.UUID) (*ResourceUsage, bool)
- func (rm *ResourceMonitor) GetResourceHistory(hours int) []ResourceUsage
- func (rm *ResourceMonitor) GetSystemUsage() ResourceUsage
- func (rm *ResourceMonitor) RegisterCampaign(campaignID uuid.UUID)
- func (rm *ResourceMonitor) SetCampaignLimits(campaignID uuid.UUID, limits CampaignResourceLimits)
- func (rm *ResourceMonitor) StartMonitoring(ctx context.Context)
- func (rm *ResourceMonitor) Stop()
- func (rm *ResourceMonitor) UnregisterCampaign(campaignID uuid.UUID)
- func (rm *ResourceMonitor) UpdateCampaignUsage(campaignID uuid.UUID, cpuPercent float64, memoryMB uint64, diskGB uint64)
- type ResourceUsage
- type SystemHealth
- type SystemHealthSummary
- type ThroughputPoint
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultLogAlertHandler ¶
func DefaultLogAlertHandler(alert Alert)
DefaultLogAlertHandler - Default alert handler that logs alerts
func QuickTrackDNSValidation ¶
QuickTrackDNSValidation - Quick DNS validation tracking
func QuickTrackDomainGeneration ¶
QuickTrackDomainGeneration - Quick domain generation tracking
func QuickTrackHTTPValidation ¶
QuickTrackHTTPValidation - Quick HTTP validation tracking
func SetGlobalMonitoringIntegration ¶
func SetGlobalMonitoringIntegration(integration *CampaignMonitoringIntegration)
SetGlobalMonitoringIntegration - Set the global monitoring integration
Types ¶
type ActiveOperation ¶
type ActiveOperation struct {
OperationID string `json:"operationId"`
OperationType string `json:"operationType"`
CampaignID *uuid.UUID `json:"campaignId,omitempty"`
StartTime time.Time `json:"startTime"`
Duration time.Duration `json:"duration"`
}
ActiveOperation - Currently running operation
type Alert ¶
type Alert struct {
Type string `json:"type"` // "resource", "performance", "system"
Severity string `json:"severity"` // "low", "medium", "high", "critical"
Message string `json:"message"`
Timestamp time.Time `json:"timestamp"`
CampaignID *uuid.UUID `json:"campaignId,omitempty"`
Details map[string]interface{} `json:"details"`
}
Alert - Generic alert structure
type AlertThresholds ¶
type AlertThresholds struct {
CPUWarning float64 `json:"cpuWarning"` // 70%
CPUCritical float64 `json:"cpuCritical"` // 90%
MemoryWarning float64 `json:"memoryWarning"` // 80%
MemoryCritical float64 `json:"memoryCritical"` // 95%
DiskWarning float64 `json:"diskWarning"` // 85%
DiskCritical float64 `json:"diskCritical"` // 95%
}
AlertThresholds - When to trigger alerts
type CampaignCleanupInfo ¶
type CampaignCleanupInfo struct {
CampaignID uuid.UUID `json:"campaignId"`
Status string `json:"status"`
StartTime time.Time `json:"startTime"`
EndTime *time.Time `json:"endTime,omitempty"`
TempFiles []string `json:"tempFiles"`
LastUpdated time.Time `json:"lastUpdated"`
}
CampaignCleanupInfo - Campaign cleanup information
type CampaignHealth ¶
type CampaignHealth struct {
CampaignID uuid.UUID `json:"campaignId"`
HealthStatus string `json:"healthStatus"` // "healthy", "warning", "critical"
ResourceUsage *ResourceUsage `json:"resourceUsage,omitempty"`
RecentMetrics []PerformanceMetric `json:"recentMetrics"`
SuccessRate float64 `json:"successRate"`
TotalOperations int `json:"totalOperations"`
FailedOperations int `json:"failedOperations"`
LastUpdated time.Time `json:"lastUpdated"`
}
CampaignHealth - Health status for a specific campaign
type CampaignMonitoringIntegration ¶
type CampaignMonitoringIntegration struct {
// contains filtered or unexported fields
}
CampaignMonitoringIntegration - Helper for integrating monitoring into campaigns
func GetGlobalMonitoringIntegration ¶
func GetGlobalMonitoringIntegration() *CampaignMonitoringIntegration
GetGlobalMonitoringIntegration - Get the global monitoring integration
func NewCampaignMonitoringIntegration ¶
func NewCampaignMonitoringIntegration(monitoringService *MonitoringService) *CampaignMonitoringIntegration
NewCampaignMonitoringIntegration - Create campaign monitoring integration
func (*CampaignMonitoringIntegration) GetCampaignHealth ¶
func (cmi *CampaignMonitoringIntegration) GetCampaignHealth(campaignID uuid.UUID) CampaignHealth
GetCampaignHealth - Get health status for a specific campaign
func (*CampaignMonitoringIntegration) GetSystemHealthSummary ¶
func (cmi *CampaignMonitoringIntegration) GetSystemHealthSummary() SystemHealthSummary
GetSystemHealthSummary - Get overall system health for dashboard
func (*CampaignMonitoringIntegration) SetCampaignResourceLimits ¶
func (cmi *CampaignMonitoringIntegration) SetCampaignResourceLimits(campaignID uuid.UUID, maxCPU float64, maxMemoryMB uint64, maxDiskGB uint64, maxDurationMins int)
SetCampaignResourceLimits - Set resource limits for a campaign
func (*CampaignMonitoringIntegration) TrackBulkOperation ¶
func (cmi *CampaignMonitoringIntegration) TrackBulkOperation(operationType string, campaignID *uuid.UUID, itemCount int) (string, func(bool, string))
TrackBulkOperation - Track general bulk operation
func (*CampaignMonitoringIntegration) TrackContentAnalysis ¶
func (cmi *CampaignMonitoringIntegration) TrackContentAnalysis(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
TrackContentAnalysis - Track content analysis operation
func (*CampaignMonitoringIntegration) TrackDNSValidation ¶
func (cmi *CampaignMonitoringIntegration) TrackDNSValidation(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
TrackDNSValidation - Track DNS validation operation
func (*CampaignMonitoringIntegration) TrackDomainGeneration ¶
func (cmi *CampaignMonitoringIntegration) TrackDomainGeneration(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
TrackDomainGeneration - Track domain generation operation
func (*CampaignMonitoringIntegration) TrackHTTPValidation ¶
func (cmi *CampaignMonitoringIntegration) TrackHTTPValidation(campaignID uuid.UUID, domainCount int) (string, func(bool, string))
TrackHTTPValidation - Track HTTP validation operation
func (*CampaignMonitoringIntegration) UpdateCampaignResourceUsage ¶
func (cmi *CampaignMonitoringIntegration) UpdateCampaignResourceUsage(campaignID uuid.UUID, cpuPercent float64, memoryMB uint64, diskGB uint64)
UpdateCampaignResourceUsage - Update resource usage for a campaign
type CampaignResourceLimits ¶
type CampaignResourceLimits struct {
MaxCPUPercent float64 `json:"maxCpuPercent"` // Kill if CPU > this
MaxMemoryMB uint64 `json:"maxMemoryMB"` // Kill if memory > this
MaxDiskGB uint64 `json:"maxDiskGB"` // Kill if disk > this
MaxDurationMins int `json:"maxDurationMins"` // Kill if running too long
}
CampaignResourceLimits - Limits to prevent runaway campaigns
type CleanupConfig ¶
type CleanupConfig struct {
CleanupInterval time.Duration
CampaignTTL time.Duration
EnableAutoCleanup bool
}
CleanupConfig - Configuration for cleanup service
func DefaultCleanupConfig ¶
func DefaultCleanupConfig() CleanupConfig
DefaultCleanupConfig - Default configuration
type CleanupService ¶
type CleanupService struct {
// contains filtered or unexported fields
}
CleanupService - Manages cleanup of campaign resources
func NewCleanupService ¶
func NewCleanupService(resourceMonitor *ResourceMonitor, monitoringService *MonitoringService, config CleanupConfig) *CleanupService
NewCleanupService - Create cleanup service
func (*CleanupService) AddTempFile ¶
func (cs *CleanupService) AddTempFile(campaignID uuid.UUID, filePath string)
AddTempFile - Add temp file to cleanup tracking
func (*CleanupService) ForceCleanupCampaign ¶
func (cs *CleanupService) ForceCleanupCampaign(campaignID uuid.UUID) error
ForceCleanupCampaign - Force cleanup of campaign
func (*CleanupService) GetCampaignCleanupInfo ¶
func (cs *CleanupService) GetCampaignCleanupInfo(campaignID uuid.UUID) (*CampaignCleanupInfo, bool)
GetCampaignCleanupInfo - Get cleanup info for campaign
func (*CleanupService) GetCleanupStats ¶
func (cs *CleanupService) GetCleanupStats() CleanupStats
GetCleanupStats - Get cleanup statistics
func (*CleanupService) IsRunning ¶
func (cs *CleanupService) IsRunning() bool
IsRunning - Check if service is running
func (*CleanupService) MarkCampaignFinished ¶
func (cs *CleanupService) MarkCampaignFinished(campaignID uuid.UUID, status string)
MarkCampaignFinished - Mark campaign as finished
func (*CleanupService) RegisterCampaign ¶
func (cs *CleanupService) RegisterCampaign(campaignID uuid.UUID)
RegisterCampaign - Register campaign for cleanup
type CleanupStats ¶
type CleanupStats struct {
TotalCampaignsTracked int `json:"totalCampaignsTracked"`
CampaignsAwaitingCleanup int `json:"campaignsAwaitingCleanup"`
LastCleanupRun time.Time `json:"lastCleanupRun"`
CleanupErrors []string `json:"cleanupErrors"`
}
CleanupStats - Cleanup statistics
type MonitoringConfig ¶
type MonitoringConfig struct {
ResourceCheckInterval time.Duration `json:"resourceCheckInterval"`
AlertCooldown time.Duration `json:"alertCooldown"`
EnableResourceMonitoring bool `json:"enableResourceMonitoring"`
EnablePerformanceTracking bool `json:"enablePerformanceTracking"`
}
MonitoringConfig - Configuration for monitoring service
func DefaultMonitoringConfig ¶
func DefaultMonitoringConfig() MonitoringConfig
DefaultMonitoringConfig - Default configuration
type MonitoringIntegration ¶
type MonitoringIntegration struct {
Service *MonitoringService
}
MonitoringIntegration - Integration helpers for orchestrator
func NewMonitoringIntegration ¶
func NewMonitoringIntegration(service *MonitoringService) *MonitoringIntegration
NewMonitoringIntegration - Create monitoring integration
func (*MonitoringIntegration) CheckCampaignHealth ¶
func (mi *MonitoringIntegration) CheckCampaignHealth(campaignID uuid.UUID) (bool, string)
CheckCampaignHealth - Check if campaign is within resource limits
func (*MonitoringIntegration) FinishBulkOperation ¶
func (mi *MonitoringIntegration) FinishBulkOperation(operationID string, itemsProcessed int, success bool, errorMsg string)
FinishBulkOperation - Complete bulk operation tracking
func (*MonitoringIntegration) FinishCampaignExecution ¶
func (mi *MonitoringIntegration) FinishCampaignExecution(operationID string, campaignID uuid.UUID, itemsProcessed int, success bool, errorMsg string)
FinishCampaignExecution - Complete campaign execution tracking
func (*MonitoringIntegration) FinishDNSValidation ¶
func (mi *MonitoringIntegration) FinishDNSValidation(operationID string, domainsValidated int, success bool, errorMsg string)
FinishDNSValidation - Complete DNS validation tracking
func (*MonitoringIntegration) FinishDomainGeneration ¶
func (mi *MonitoringIntegration) FinishDomainGeneration(operationID string, domainsGenerated int, success bool, errorMsg string)
FinishDomainGeneration - Complete domain generation tracking
func (*MonitoringIntegration) GetSystemHealthStatus ¶
func (mi *MonitoringIntegration) GetSystemHealthStatus() string
GetSystemHealthStatus - Get simple health status for dashboard
func (*MonitoringIntegration) InitializeMonitoring ¶
func (mi *MonitoringIntegration) InitializeMonitoring(ctx context.Context) error
InitializeMonitoring - Initialize monitoring service for orchestrator
func (*MonitoringIntegration) LogSystemHealth ¶
func (mi *MonitoringIntegration) LogSystemHealth()
LogSystemHealth - Log current system health (for debugging)
func (*MonitoringIntegration) Shutdown ¶
func (mi *MonitoringIntegration) Shutdown()
Shutdown - Gracefully shutdown monitoring
func (*MonitoringIntegration) TrackBulkOperation ¶
func (mi *MonitoringIntegration) TrackBulkOperation(operationType string, campaignID *uuid.UUID, operationID string)
TrackBulkOperation - Track bulk operation (general purpose)
func (*MonitoringIntegration) TrackCampaignExecution ¶
func (mi *MonitoringIntegration) TrackCampaignExecution(campaignID uuid.UUID, operationID string)
TrackCampaignExecution - Track campaign execution operation
func (*MonitoringIntegration) TrackDNSValidation ¶
func (mi *MonitoringIntegration) TrackDNSValidation(campaignID uuid.UUID, operationID string)
TrackDNSValidation - Track DNS validation operation
func (*MonitoringIntegration) TrackDomainGeneration ¶
func (mi *MonitoringIntegration) TrackDomainGeneration(campaignID uuid.UUID, operationID string)
TrackDomainGeneration - Track domain generation operation
type MonitoringService ¶
type MonitoringService struct {
ResourceMonitor *ResourceMonitor
PerformanceTracker *PerformanceTracker
// contains filtered or unexported fields
}
MonitoringService - Main monitoring service that orchestrates everything
func NewMonitoringService ¶
func NewMonitoringService(config MonitoringConfig) *MonitoringService
NewMonitoringService - Create new monitoring service
func (*MonitoringService) AddAlertHandler ¶
func (ms *MonitoringService) AddAlertHandler(handler AlertHandler)
AddAlertHandler - Add alert handler
func (*MonitoringService) EndOperationTracking ¶
func (ms *MonitoringService) EndOperationTracking(operationID string, itemsProcessed int, success bool, errorMessage string)
EndOperationTracking - Convenience method to end tracking an operation
func (*MonitoringService) GetCampaignResourceUsage ¶
func (ms *MonitoringService) GetCampaignResourceUsage(campaignID uuid.UUID) (*ResourceUsage, bool)
GetCampaignResourceUsage - Get resource usage for a specific campaign
func (*MonitoringService) GetMonitoringStats ¶
func (ms *MonitoringService) GetMonitoringStats() MonitoringStats
GetMonitoringStats - Get comprehensive monitoring statistics
func (*MonitoringService) GetSystemHealth ¶
func (ms *MonitoringService) GetSystemHealth() SystemHealth
GetSystemHealth - Get overall system health status
func (*MonitoringService) IsRunning ¶
func (ms *MonitoringService) IsRunning() bool
IsRunning - Check if monitoring service is running
func (*MonitoringService) SetCampaignResourceLimits ¶
func (ms *MonitoringService) SetCampaignResourceLimits(campaignID uuid.UUID, limits CampaignResourceLimits)
SetCampaignResourceLimits - Set resource limits for a campaign
func (*MonitoringService) Start ¶
func (ms *MonitoringService) Start(ctx context.Context, config MonitoringConfig) error
Start - Start monitoring service
func (*MonitoringService) StartOperationTracking ¶
func (ms *MonitoringService) StartOperationTracking(operationID, operationType string, campaignID *uuid.UUID)
StartOperationTracking - Convenience method to start tracking an operation
type MonitoringStats ¶
type MonitoringStats struct {
SystemHealth SystemHealth `json:"systemHealth"`
CurrentResourceUsage *ResourceUsage `json:"currentResourceUsage"`
ResourceHistory []ResourceUsage `json:"resourceHistory"`
RecentMetrics []PerformanceMetric `json:"recentMetrics"`
PerformanceSummaries map[string]PerformanceSummary `json:"performanceSummaries"`
ActiveOperations []ActiveOperation `json:"activeOperations"`
LastUpdated time.Time `json:"lastUpdated"`
}
MonitoringStats - Comprehensive monitoring statistics
type PerformanceMetric ¶
type PerformanceMetric struct {
OperationType string `json:"operationType"` // "domain_generation", "dns_validation", etc.
CampaignID *uuid.UUID `json:"campaignId,omitempty"`
StartTime time.Time `json:"startTime"`
EndTime time.Time `json:"endTime"`
Duration time.Duration `json:"duration"`
ItemsProcessed int `json:"itemsProcessed"` // domains processed, etc.
Success bool `json:"success"`
ErrorMessage string `json:"errorMessage,omitempty"`
ResponseTimeMs int64 `json:"responseTimeMs"`
ThroughputPerSec float64 `json:"throughputPerSec"`
}
PerformanceMetric - Individual performance measurement
type PerformanceSummary ¶
type PerformanceSummary struct {
OperationType string `json:"operationType"`
TotalOperations int `json:"totalOperations"`
SuccessfulOps int `json:"successfulOps"`
FailedOps int `json:"failedOps"`
SuccessRate float64 `json:"successRate"`
AvgResponseTimeMs int64 `json:"avgResponseTimeMs"`
MinResponseTimeMs int64 `json:"minResponseTimeMs"`
MaxResponseTimeMs int64 `json:"maxResponseTimeMs"`
AvgThroughput float64 `json:"avgThroughput"`
LastUpdated time.Time `json:"lastUpdated"`
}
PerformanceSummary - Aggregated performance data
type PerformanceTracker ¶
type PerformanceTracker struct {
// contains filtered or unexported fields
}
PerformanceTracker - Tracks operation performance
func NewPerformanceTracker ¶
func NewPerformanceTracker() *PerformanceTracker
NewPerformanceTracker - Create performance tracker
func (*PerformanceTracker) EndOperation ¶
func (pt *PerformanceTracker) EndOperation(operationID string, itemsProcessed int, success bool, errorMessage string)
EndOperation - Finish tracking an operation
func (*PerformanceTracker) GetActiveOperations ¶
func (pt *PerformanceTracker) GetActiveOperations() []ActiveOperation
GetActiveOperations - Get currently running operations
func (*PerformanceTracker) GetAllSummaries ¶
func (pt *PerformanceTracker) GetAllSummaries() map[string]PerformanceSummary
GetAllSummaries - Get all performance summaries
func (*PerformanceTracker) GetFailedOperations ¶
func (pt *PerformanceTracker) GetFailedOperations(limit int) []PerformanceMetric
GetFailedOperations - Get recent failed operations
func (*PerformanceTracker) GetMetricsByOperationType ¶
func (pt *PerformanceTracker) GetMetricsByOperationType(operationType string, limit int) []PerformanceMetric
GetMetricsByOperationType - Get metrics for specific operation type
func (*PerformanceTracker) GetRecentMetrics ¶
func (pt *PerformanceTracker) GetRecentMetrics(limit int) []PerformanceMetric
GetRecentMetrics - Get recent performance metrics
func (*PerformanceTracker) GetSlowOperations ¶
func (pt *PerformanceTracker) GetSlowOperations(thresholdMs int64, limit int) []PerformanceMetric
GetSlowOperations - Get operations that took longer than threshold
func (*PerformanceTracker) GetSummary ¶
func (pt *PerformanceTracker) GetSummary(operationType string) (*PerformanceSummary, bool)
GetSummary - Get performance summary for operation type
func (*PerformanceTracker) GetThroughputTrends ¶
func (pt *PerformanceTracker) GetThroughputTrends(operationType string, hours int) []ThroughputPoint
GetThroughputTrends - Get throughput over time (simplified)
func (*PerformanceTracker) Reset ¶
func (pt *PerformanceTracker) Reset()
Reset - Clear all metrics (for testing)
func (*PerformanceTracker) StartOperation ¶
func (pt *PerformanceTracker) StartOperation(operationID, operationType string, campaignID *uuid.UUID)
StartOperation - Begin tracking an operation
type ResourceAlert ¶
type ResourceAlert struct {
Type string `json:"type"` // "cpu", "memory", "disk"
Severity string `json:"severity"` // "warning", "critical"
Value float64 `json:"value"`
Threshold float64 `json:"threshold"`
CampaignID *uuid.UUID `json:"campaignId,omitempty"`
Timestamp time.Time `json:"timestamp"`
Message string `json:"message"`
}
ResourceAlert - Alert when resources get too high
type ResourceMonitor ¶
type ResourceMonitor struct {
// contains filtered or unexported fields
}
ResourceMonitor - Tracks resource usage and enforces limits
func NewResourceMonitor ¶
func NewResourceMonitor() *ResourceMonitor
NewResourceMonitor - Create resource monitor with sensible defaults
func (*ResourceMonitor) CheckCampaignLimits ¶
func (rm *ResourceMonitor) CheckCampaignLimits(campaignID uuid.UUID) (bool, string)
CheckCampaignLimits - Check if campaign exceeds resource limits
func (*ResourceMonitor) GetActiveAlerts ¶
func (rm *ResourceMonitor) GetActiveAlerts(limit int) []ResourceAlert
GetActiveAlerts - Get recent alerts
func (*ResourceMonitor) GetCampaignUsage ¶
func (rm *ResourceMonitor) GetCampaignUsage(campaignID uuid.UUID) (*ResourceUsage, bool)
GetCampaignUsage - Get resource usage for specific campaign
func (*ResourceMonitor) GetResourceHistory ¶
func (rm *ResourceMonitor) GetResourceHistory(hours int) []ResourceUsage
GetResourceHistory - Get resource usage history (simplified)
func (*ResourceMonitor) GetSystemUsage ¶
func (rm *ResourceMonitor) GetSystemUsage() ResourceUsage
GetSystemUsage - Get current system resource usage
func (*ResourceMonitor) RegisterCampaign ¶
func (rm *ResourceMonitor) RegisterCampaign(campaignID uuid.UUID)
RegisterCampaign - Start tracking resources for a campaign
func (*ResourceMonitor) SetCampaignLimits ¶
func (rm *ResourceMonitor) SetCampaignLimits(campaignID uuid.UUID, limits CampaignResourceLimits)
SetCampaignLimits - set per-campaign resource limits overriding defaults
func (*ResourceMonitor) StartMonitoring ¶
func (rm *ResourceMonitor) StartMonitoring(ctx context.Context)
StartMonitoring - Begin monitoring system resources
func (*ResourceMonitor) UnregisterCampaign ¶
func (rm *ResourceMonitor) UnregisterCampaign(campaignID uuid.UUID)
UnregisterCampaign - Stop tracking resources for a campaign
func (*ResourceMonitor) UpdateCampaignUsage ¶
func (rm *ResourceMonitor) UpdateCampaignUsage(campaignID uuid.UUID, cpuPercent float64, memoryMB uint64, diskGB uint64)
UpdateCampaignUsage - Update resource usage for a specific campaign This would be called from campaign execution code
type ResourceUsage ¶
type ResourceUsage struct {
CampaignID *uuid.UUID `json:"campaignId,omitempty"`
CPUPercent float64 `json:"cpuPercent"`
MemoryUsedMB uint64 `json:"memoryUsedMB"`
MemoryPercent float64 `json:"memoryPercent"`
DiskUsedGB uint64 `json:"diskUsedGB"`
DiskPercent float64 `json:"diskPercent"`
Timestamp time.Time `json:"timestamp"`
}
ResourceUsage - Current resource usage for a campaign or system
type SystemHealth ¶
type SystemHealth struct {
OverallStatus string `json:"overallStatus"` // "healthy", "warning", "critical", "error"
ResourceStatus string `json:"resourceStatus"`
PerformanceStatus string `json:"performanceStatus"`
LastUpdated time.Time `json:"lastUpdated"`
ActiveOperations int `json:"activeOperations"`
ResourceUsage *ResourceUsage `json:"resourceUsage,omitempty"`
}
SystemHealth - Overall system health status
type SystemHealthSummary ¶
type SystemHealthSummary struct {
OverallStatus string `json:"overallStatus"`
ActiveOperations int `json:"activeOperations"`
ActiveByType map[string]int `json:"activeByType"`
RecentFailures int `json:"recentFailures"`
SlowOperations int `json:"slowOperations"`
ResourceUsage *ResourceUsage `json:"resourceUsage,omitempty"`
LastUpdated time.Time `json:"lastUpdated"`
}
SystemHealthSummary - System health summary for dashboard