1pub mod ab_testing;
7pub mod advanced_analytics;
8pub mod advanced_orchestration;
9pub mod alerts;
10pub mod analytics;
11pub mod api;
12pub mod auto_remediation;
13pub mod chaos_mesh;
14pub mod collaboration;
15pub mod config;
16pub mod dashboard;
17pub mod distributed_coordinator;
18pub mod fault;
19pub mod gitops;
20pub mod integrations;
21pub mod latency;
22pub mod metrics;
23pub mod middleware;
24pub mod ml_anomaly_detector;
25pub mod ml_assertion_generator;
26pub mod ml_parameter_optimizer;
27pub mod multi_armed_bandit;
28pub mod multi_cluster;
29pub mod multi_tenancy;
30pub mod observability_api;
31pub mod plugins;
32pub mod predictive_remediation;
33pub mod protocols;
34pub mod rate_limit;
35pub mod recommendations;
36pub mod reinforcement_learning;
37pub mod resilience;
38pub mod resilience_api;
39pub mod scenario_orchestrator;
40pub mod scenario_recorder;
41pub mod scenario_replay;
42pub mod scenario_scheduler;
43pub mod scenarios;
44pub mod template_marketplace;
45pub mod trace_collector;
46pub mod traffic_shaping;
47pub mod version_control;
48
49pub use ab_testing::{
50 ABTest, ABTestConfig, ABTestStats, ABTestStatus, ABTestingEngine, MetricComparison, MetricType,
51 SingleMetricComparison, SuccessCriteria, TestConclusion, TestVariant, VariantMetrics,
52 VariantResults,
53};
54pub use advanced_analytics::{
55 AdvancedAnalyticsEngine, Anomaly, AnomalyType as AnalyticsAnomalyType, CorrelationAnalysis,
56 DataPoint, HealthFactor, HealthScore, PredictiveInsight, TrendAnalysis, TrendDirection,
57};
58pub use advanced_orchestration::{
59 AdvancedOrchestratedScenario, AdvancedScenarioStep, Assertion, Condition, ConditionalStep,
60 ExecutionContext, ExecutionReport, Hook, HookAction, HookType, OrchestrationLibrary,
61 RetryConfig, StepResult,
62};
63pub use alerts::{
64 Alert, AlertHandler, AlertManager, AlertRule, AlertRuleType, AlertSeverity, AlertType,
65};
66pub use analytics::{ChaosAnalytics, ChaosImpact, MetricsBucket, TimeBucket};
67pub use api::create_chaos_api_router;
68pub use auto_remediation::{
69 ApprovalRequest, EffectivenessMetrics, RemediationAction, RemediationConfig, RemediationEngine,
70 RemediationResult, RemediationStats, RemediationStatus, RiskAssessment as AutoRiskAssessment,
71 RiskLevel, RollbackData, SafetyCheck, SystemMetrics,
72};
73pub use chaos_mesh::{
74 ChaosMeshClient, ChaosMeshExperiment, ExperimentSpec, ExperimentStatus, ExperimentType,
75 NetworkChaosAction, NetworkDelay, NetworkLoss, PodChaosAction, PodSelector, StressConfig,
76};
77pub use collaboration::{
78 ChangeType, CollaborationChange, CollaborationManager, CollaborationMessage,
79 CollaborationSession, CollaborationUser, CursorPosition,
80};
81pub use config::{
82 BulkheadConfig, ChaosConfig, CircuitBreakerConfig, FaultInjectionConfig, LatencyConfig,
83 RateLimitConfig, TrafficShapingConfig,
84};
85pub use dashboard::{DashboardManager, DashboardQuery, DashboardStats, DashboardUpdate};
86pub use distributed_coordinator::{
87 CoordinationMode, DistributedCoordinator, DistributedTask, ExecutionMetrics, LeaderState, Node,
88 NodeExecutionState, NodeStatus, TaskStatus,
89};
90pub use fault::{FaultInjector, FaultType};
91pub use gitops::{GitOpsAuth, GitOpsConfig, GitOpsManager, SyncState, SyncStatus};
92pub use integrations::{
93 GrafanaConfig, GrafanaIntegration, IntegrationConfig, IntegrationManager, JiraConfig,
94 JiraIntegration, Notification, NotificationResults, NotificationSeverity, PagerDutyConfig,
95 PagerDutyIntegration, SlackConfig, SlackNotifier, TeamsConfig, TeamsNotifier,
96};
97pub use latency::LatencyInjector;
98pub use metrics::{registry as metrics_registry, ChaosMetrics, CHAOS_METRICS};
99pub use middleware::{chaos_middleware, ChaosMiddleware};
100pub use ml_anomaly_detector::{
101 Anomaly as MLAnomaly, AnomalyDetector, AnomalyDetectorConfig, AnomalySeverity,
102 AnomalyType as MLAnomalyType, MetricBaseline, TimeSeriesPoint,
103};
104pub use ml_assertion_generator::{
105 AssertionGenerator, AssertionGeneratorConfig, AssertionOperator, AssertionType,
106 ExecutionDataPoint, GeneratedAssertion, MetricStats,
107};
108pub use ml_parameter_optimizer::{
109 ExpectedImpact, OptimizationObjective, OptimizationRecommendation, OptimizerConfig,
110 OrchestrationRun, ParameterBounds, ParameterOptimizer, RunMetrics,
111};
112pub use multi_armed_bandit::{
113 Arm, ArmReport, BanditReport, BanditStrategy, MultiArmedBandit, ThompsonSampling,
114 TrafficAllocator, UCB1,
115};
116pub use multi_cluster::{
117 ClusterTarget, ExecutionStatus, MultiClusterOrchestration, MultiClusterOrchestrator,
118 MultiClusterStatus, SyncMode,
119};
120pub use multi_tenancy::{
121 MultiTenancyError, ResourceQuota, ResourceUsage, Tenant, TenantManager, TenantPermissions,
122 TenantPlan,
123};
124pub use observability_api::{create_observability_router, ObservabilityState};
125pub use plugins::{
126 ChaosPlugin, CustomFaultPlugin, MetricsPlugin, PluginCapability, PluginConfig, PluginContext,
127 PluginError, PluginHook, PluginMetadata, PluginRegistry, PluginResult,
128};
129pub use predictive_remediation::{
130 AnomalyDetector as PredictiveAnomalyDetector, DataPoint as PredictiveDataPoint,
131 FailurePrediction, MetricTrend, MetricType as PredictiveMetricType,
132 PredictiveRemediationEngine, TimeSeries, TrendAnalyzer,
133 TrendDirection as PredictiveTrendDirection, TrendReport,
134};
135pub use protocols::{graphql::GraphQLChaos, grpc::GrpcChaos, websocket::WebSocketChaos};
136pub use rate_limit::RateLimiter;
137pub use recommendations::{
138 Confidence, EngineConfig, Recommendation, RecommendationCategory, RecommendationEngine,
139 RecommendationSeverity,
140};
141pub use reinforcement_learning::{
142 AdaptiveRiskAssessor, QLearningConfig, RLAgent, RemediationAction as RLRemediationAction,
143 RiskAssessment, SystemState,
144};
145pub use resilience::{
146 Bulkhead, BulkheadError, BulkheadGuard, BulkheadManager, BulkheadMetrics, BulkheadStats,
147 CircuitBreaker, CircuitBreakerManager, CircuitBreakerMetrics, CircuitState, CircuitStats,
148 DynamicThresholdAdjuster, FallbackHandler, HealthCheckIntegration, JsonFallbackHandler,
149 RetryConfig as ResilienceRetryConfig, RetryPolicy,
150};
151pub use resilience_api::{
152 create_resilience_router, BulkheadStateResponse, CircuitBreakerStateResponse,
153 ResilienceApiState,
154};
155pub use scenario_orchestrator::{OrchestratedScenario, ScenarioOrchestrator, ScenarioStep};
156pub use scenario_recorder::{ChaosEvent, ChaosEventType, RecordedScenario, ScenarioRecorder};
157pub use scenario_replay::{ReplayOptions, ReplaySpeed, ScenarioReplayEngine};
158pub use scenario_scheduler::{ScenarioScheduler, ScheduleType, ScheduledScenario};
159pub use scenarios::{ChaosScenario, PredefinedScenarios, ScenarioEngine};
160pub use template_marketplace::{
161 CompatibilityInfo, OrchestrationTemplate, TemplateCategory, TemplateMarketplace,
162 TemplateReview, TemplateSearchFilters, TemplateSortBy, TemplateStats,
163};
164pub use traffic_shaping::TrafficShaper;
165pub use version_control::{
166 Branch, Commit, Diff, DiffChange, DiffChangeType, DiffStats, VersionControlRepository,
167};
168
169use thiserror::Error;
170
171#[derive(Error, Debug)]
173pub enum ChaosError {
174 #[error("Rate limit exceeded")]
175 RateLimitExceeded,
176
177 #[error("Connection throttled")]
178 ConnectionThrottled,
179
180 #[error("Injected fault: {0}")]
181 InjectedFault(String),
182
183 #[error("Timeout after {0}ms")]
184 Timeout(u64),
185
186 #[error("Configuration error: {0}")]
187 Config(String),
188
189 #[error("Scenario error: {0}")]
190 Scenario(String),
191
192 #[error("Circuit breaker open")]
193 CircuitBreakerOpen,
194
195 #[error("Bulkhead rejected: {0}")]
196 BulkheadRejected(String),
197}
198
199pub type Result<T> = std::result::Result<T, ChaosError>;