Documentation
¶
Index ¶
- type BudgetConfig
- type ComponentManager
- type CostAnalysis
- type CostManager
- type DefaultManagerFactory
- func (f *DefaultManagerFactory) CreateCostManager() CostManager
- func (f *DefaultManagerFactory) CreateGrafanaManager() GrafanaManager
- func (f *DefaultManagerFactory) CreateLokiManager() LokiManager
- func (f *DefaultManagerFactory) CreatePrometheusManager() PrometheusManager
- func (f *DefaultManagerFactory) CreateTempoManager() TempoManager
- func (f *DefaultManagerFactory) SetMode(mode ManagerMode)
- func (f *DefaultManagerFactory) SetVersionManager(vm *version.Manager)
- type GrafanaManager
- type LokiManager
- type ManagerFactory
- type ManagerFactoryConfig
- type ManagerMode
- type MockGrafanaManager
- func (m *MockGrafanaManager) ConfigureDataSources(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockGrafanaManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockGrafanaManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
- func (m *MockGrafanaManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
- func (m *MockGrafanaManager) ImportDashboards(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockGrafanaManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockGrafanaManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, ...) error
- func (m *MockGrafanaManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
- type MockLokiManager
- func (m *MockLokiManager) ConfigureStorage(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockLokiManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockLokiManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
- func (m *MockLokiManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
- func (m *MockLokiManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockLokiManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, ...) error
- func (m *MockLokiManager) UpdateRetention(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockLokiManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
- type MockPrometheusManager
- func (m *MockPrometheusManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockPrometheusManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
- func (m *MockPrometheusManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
- func (m *MockPrometheusManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockPrometheusManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, ...) error
- func (m *MockPrometheusManager) ScaleReplicas(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, ...) error
- func (m *MockPrometheusManager) UpdateConfiguration(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockPrometheusManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
- type MockTempoManager
- func (m *MockTempoManager) ConfigureReceivers(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockTempoManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockTempoManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
- func (m *MockTempoManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
- func (m *MockTempoManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockTempoManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, ...) error
- func (m *MockTempoManager) UpdateSampling(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
- func (m *MockTempoManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
- type OptimizationOptions
- type OptimizationRecommendations
- type PrometheusManager
- type TempoManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BudgetConfig ¶
type BudgetConfig struct {
MonthlyLimit float64 `json:"monthlyLimit"`
AlertThreshold float64 `json:"alertThreshold"`
AlertRecipients []string `json:"alertRecipients"`
}
BudgetConfig for cost alerts
type ComponentManager ¶
type ComponentManager interface {
// Reconcile reconciles the component for the given platform
Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
// ReconcileWithConfig reconciles the component with provided configuration
ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, config map[string]interface{}) error
// Delete removes the component resources
Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
// GetStatus returns the current status of the component
GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
// Validate validates the component configuration
Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
// GetServiceURL returns the service URL for the component
GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
}
ComponentManager is the base interface for all component managers
type CostAnalysis ¶
type CostAnalysis struct {
Platform string `json:"platform"`
Namespace string `json:"namespace"`
TotalCost float64 `json:"totalCost"`
Currency string `json:"currency"`
}
CostAnalysis represents the cost analysis for a platform
type CostManager ¶
type CostManager interface {
// AnalyzePlatformCosts analyzes costs for all platform components
AnalyzePlatformCosts(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*CostAnalysis, error)
// GetRecommendations generates cost optimization recommendations
GetRecommendations(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*OptimizationRecommendations, error)
// ApplyOptimizations applies cost optimization recommendations
ApplyOptimizations(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, opts *OptimizationOptions) error
// SetBudgetAlert configures budget alerts for a platform
SetBudgetAlert(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, budget *BudgetConfig) error
}
CostManager manages cost optimization for observability platforms
type DefaultManagerFactory ¶
type DefaultManagerFactory struct {
// contains filtered or unexported fields
}
DefaultManagerFactory is the default implementation of ManagerFactory
func (*DefaultManagerFactory) CreateCostManager ¶
func (f *DefaultManagerFactory) CreateCostManager() CostManager
CreateCostManager creates a new Cost manager
func (*DefaultManagerFactory) CreateGrafanaManager ¶
func (f *DefaultManagerFactory) CreateGrafanaManager() GrafanaManager
CreateGrafanaManager creates a new Grafana manager
func (*DefaultManagerFactory) CreateLokiManager ¶
func (f *DefaultManagerFactory) CreateLokiManager() LokiManager
CreateLokiManager creates a new Loki manager
func (*DefaultManagerFactory) CreatePrometheusManager ¶
func (f *DefaultManagerFactory) CreatePrometheusManager() PrometheusManager
CreatePrometheusManager creates a new Prometheus manager
func (*DefaultManagerFactory) CreateTempoManager ¶
func (f *DefaultManagerFactory) CreateTempoManager() TempoManager
CreateTempoManager creates a new Tempo manager
func (*DefaultManagerFactory) SetMode ¶
func (f *DefaultManagerFactory) SetMode(mode ManagerMode)
SetMode sets the manager mode
func (*DefaultManagerFactory) SetVersionManager ¶
func (f *DefaultManagerFactory) SetVersionManager(vm *version.Manager)
SetVersionManager sets the version manager
type GrafanaManager ¶
type GrafanaManager interface {
ComponentManager
// ImportDashboards imports dashboards into Grafana
ImportDashboards(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
// ConfigureDataSources configures data sources in Grafana
ConfigureDataSources(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
}
GrafanaManager manages Grafana deployments
type LokiManager ¶
type LokiManager interface {
ComponentManager
// ConfigureStorage configures storage backend for Loki
ConfigureStorage(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
// UpdateRetention updates log retention policies
UpdateRetention(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
}
LokiManager manages Loki deployments
type ManagerFactory ¶
type ManagerFactory interface {
// CreatePrometheusManager creates a new Prometheus manager
CreatePrometheusManager() PrometheusManager
// CreateGrafanaManager creates a new Grafana manager
CreateGrafanaManager() GrafanaManager
// CreateLokiManager creates a new Loki manager
CreateLokiManager() LokiManager
// CreateTempoManager creates a new Tempo manager
CreateTempoManager() TempoManager
// CreateCostManager creates a new Cost manager
CreateCostManager() CostManager
}
ManagerFactory creates component managers
func NewDefaultManagerFactory ¶
func NewDefaultManagerFactory(client client.Client, scheme *runtime.Scheme) ManagerFactory
NewDefaultManagerFactory creates a new default manager factory
func NewDefaultManagerFactoryWithConfig ¶
func NewDefaultManagerFactoryWithConfig(client client.Client, scheme *runtime.Scheme, restConfig *rest.Config) ManagerFactory
NewDefaultManagerFactoryWithConfig creates a new default manager factory with REST config
func NewManagerFactory ¶
func NewManagerFactory(config ManagerFactoryConfig) ManagerFactory
NewManagerFactory creates a new manager factory with configuration
type ManagerFactoryConfig ¶
type ManagerFactoryConfig struct {
Client client.Client
Scheme *runtime.Scheme
RestConfig *rest.Config
Mode ManagerMode
VersionManager *version.Manager
}
ManagerFactoryConfig provides configuration for the manager factory
type ManagerMode ¶
type ManagerMode string
ManagerMode defines the mode for component managers
const ( // ManagerModeNative uses native Kubernetes resource management ManagerModeNative ManagerMode = "native" // ManagerModeHelm uses Helm for component management ManagerModeHelm ManagerMode = "helm" // Environment variable to control manager mode EnvManagerMode = "GUNJ_MANAGER_MODE" )
type MockGrafanaManager ¶
type MockGrafanaManager struct {
ReconcileFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
DeleteFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
GetStatusFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
ValidateFn func(platform *observabilityv1beta1.ObservabilityPlatform) error
ImportDashboardsFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
ConfigureDataSourcesFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
}
MockGrafanaManager is a mock implementation of GrafanaManager for testing
func (*MockGrafanaManager) ConfigureDataSources ¶
func (m *MockGrafanaManager) ConfigureDataSources(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockGrafanaManager) Delete ¶
func (m *MockGrafanaManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockGrafanaManager) GetServiceURL ¶
func (m *MockGrafanaManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
func (*MockGrafanaManager) GetStatus ¶
func (m *MockGrafanaManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
func (*MockGrafanaManager) ImportDashboards ¶
func (m *MockGrafanaManager) ImportDashboards(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockGrafanaManager) Reconcile ¶
func (m *MockGrafanaManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockGrafanaManager) ReconcileWithConfig ¶
func (m *MockGrafanaManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, config map[string]interface{}) error
func (*MockGrafanaManager) Validate ¶
func (m *MockGrafanaManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
type MockLokiManager ¶
type MockLokiManager struct {
ReconcileFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
DeleteFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
GetStatusFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
ValidateFn func(platform *observabilityv1beta1.ObservabilityPlatform) error
ConfigureStorageFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
UpdateRetentionFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
}
MockLokiManager is a mock implementation of LokiManager for testing
func (*MockLokiManager) ConfigureStorage ¶
func (m *MockLokiManager) ConfigureStorage(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockLokiManager) Delete ¶
func (m *MockLokiManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockLokiManager) GetServiceURL ¶
func (m *MockLokiManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
func (*MockLokiManager) GetStatus ¶
func (m *MockLokiManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
func (*MockLokiManager) Reconcile ¶
func (m *MockLokiManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockLokiManager) ReconcileWithConfig ¶
func (m *MockLokiManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, config map[string]interface{}) error
func (*MockLokiManager) UpdateRetention ¶
func (m *MockLokiManager) UpdateRetention(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockLokiManager) Validate ¶
func (m *MockLokiManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
type MockPrometheusManager ¶
type MockPrometheusManager struct {
ReconcileFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
DeleteFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
GetStatusFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
ValidateFn func(platform *observabilityv1beta1.ObservabilityPlatform) error
UpdateConfigurationFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
ScaleReplicasFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, replicas int32) error
}
MockPrometheusManager is a mock implementation of PrometheusManager for testing
func (*MockPrometheusManager) Delete ¶
func (m *MockPrometheusManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockPrometheusManager) GetServiceURL ¶
func (m *MockPrometheusManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
func (*MockPrometheusManager) GetStatus ¶
func (m *MockPrometheusManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
func (*MockPrometheusManager) Reconcile ¶
func (m *MockPrometheusManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockPrometheusManager) ReconcileWithConfig ¶
func (m *MockPrometheusManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, config map[string]interface{}) error
func (*MockPrometheusManager) ScaleReplicas ¶
func (m *MockPrometheusManager) ScaleReplicas(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, replicas int32) error
func (*MockPrometheusManager) UpdateConfiguration ¶
func (m *MockPrometheusManager) UpdateConfiguration(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockPrometheusManager) Validate ¶
func (m *MockPrometheusManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
type MockTempoManager ¶
type MockTempoManager struct {
ReconcileFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
DeleteFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
GetStatusFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
ValidateFn func(platform *observabilityv1beta1.ObservabilityPlatform) error
ConfigureReceiversFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
UpdateSamplingFn func(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
}
MockTempoManager is a mock implementation of TempoManager for testing
func (*MockTempoManager) ConfigureReceivers ¶
func (m *MockTempoManager) ConfigureReceivers(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockTempoManager) Delete ¶
func (m *MockTempoManager) Delete(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockTempoManager) GetServiceURL ¶
func (m *MockTempoManager) GetServiceURL(platform *observabilityv1beta1.ObservabilityPlatform) string
func (*MockTempoManager) GetStatus ¶
func (m *MockTempoManager) GetStatus(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) (*observabilityv1beta1.ComponentStatus, error)
func (*MockTempoManager) Reconcile ¶
func (m *MockTempoManager) Reconcile(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockTempoManager) ReconcileWithConfig ¶
func (m *MockTempoManager) ReconcileWithConfig(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, config map[string]interface{}) error
func (*MockTempoManager) UpdateSampling ¶
func (m *MockTempoManager) UpdateSampling(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
func (*MockTempoManager) Validate ¶
func (m *MockTempoManager) Validate(platform *observabilityv1beta1.ObservabilityPlatform) error
type OptimizationOptions ¶
type OptimizationOptions struct {
ApplyResourceOptimization bool `json:"applyResourceOptimization"`
EnableSpotInstances bool `json:"enableSpotInstances"`
ApplyScalingPolicies bool `json:"applyScalingPolicies"`
OptimizeStorage bool `json:"optimizeStorage"`
Categories []string `json:"categories"`
DryRun bool `json:"dryRun"`
}
OptimizationOptions for applying optimizations
type OptimizationRecommendations ¶
type OptimizationRecommendations struct {
ResourceRecommendations map[string]interface{} `json:"resourceRecommendations"`
SpotInstanceCandidates map[string]bool `json:"spotInstanceCandidates"`
ScalingPolicies map[string]interface{} `json:"scalingPolicies"`
StorageOptimizations map[string]interface{} `json:"storageOptimizations"`
TotalSavings float64 `json:"totalSavings"`
}
OptimizationRecommendations contains cost optimization suggestions
type PrometheusManager ¶
type PrometheusManager interface {
ComponentManager
// UpdateConfiguration updates Prometheus configuration without restart
UpdateConfiguration(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
// ScaleReplicas scales Prometheus replicas
ScaleReplicas(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform, replicas int32) error
}
PrometheusManager manages Prometheus deployments
type TempoManager ¶
type TempoManager interface {
ComponentManager
// ConfigureReceivers configures trace receivers
ConfigureReceivers(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
// UpdateSampling updates sampling configuration
UpdateSampling(ctx context.Context, platform *observabilityv1beta1.ObservabilityPlatform) error
}
TempoManager manages Tempo deployments