quantrs2_device/cloud/orchestration/load_balancing/
canary.rs

1//! Canary deployment configurations
2
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5use std::time::Duration;
6
7/// Canary deployment configuration
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct CanaryConfig {
10    /// Enable canary deployments
11    pub enabled: bool,
12    /// Initial traffic percentage
13    pub initial_percentage: f64,
14    /// Increment percentage
15    pub increment_percentage: f64,
16    /// Promotion criteria
17    pub promotion_criteria: PromotionCriteria,
18}
19
20/// Promotion criteria
21#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct PromotionCriteria {
23    /// Success metrics
24    pub success_metrics: HashMap<String, f64>,
25    /// Failure thresholds
26    pub failure_thresholds: HashMap<String, f64>,
27    /// Observation period
28    pub observation_period: Duration,
29}