quantrs2_device/performance_dashboard/
data_collection.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct DataCollectionConfig {
8 pub collection_interval: u64,
10 pub buffer_size: usize,
12 pub retention_days: u32,
14 pub metrics_config: MetricsConfig,
16 pub aggregation_config: AggregationConfig,
18 pub sampling_config: SamplingConfig,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct MetricsConfig {
24 pub performance_metrics: Vec<PerformanceMetric>,
25 pub resource_metrics: Vec<ResourceMetric>,
26 pub quality_metrics: Vec<QualityMetric>,
27 pub custom_metrics: Vec<CustomMetric>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct AggregationConfig {
32 pub aggregation_functions: Vec<AggregationFunction>,
33 pub time_windows: Vec<TimeWindow>,
34 pub grouping_dimensions: Vec<String>,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct SamplingConfig {
39 pub sampling_strategy: SamplingStrategy,
40 pub sample_rate: f64,
41 pub adaptive_sampling: bool,
42 pub quality_based_sampling: bool,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
46pub enum PerformanceMetric {
47 Fidelity,
48 Throughput,
49 Latency,
50 ErrorRate,
51 SuccessRate,
52 CircuitDepth,
53 GateCount,
54 SwapCount,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
58pub enum ResourceMetric {
59 CpuUtilization,
60 MemoryUtilization,
61 NetworkUtilization,
62 StorageUtilization,
63 QuantumUtilization,
64 QueueLength,
65 ActiveConnections,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
69pub enum QualityMetric {
70 ProcessFidelity,
71 MeasurementFidelity,
72 GateFidelity,
73 StatePreparationFidelity,
74 ReadoutFidelity,
75 CoherenceTime,
76 CalibrationDrift,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
80pub enum CustomMetric {
81 UserDefined(String),
82 ApplicationSpecific(String),
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
86pub enum AggregationFunction {
87 Mean,
88 Median,
89 Min,
90 Max,
91 Sum,
92 Count,
93 Percentile(f64),
94 StandardDeviation,
95 Variance,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
99pub enum TimeWindow {
100 Seconds(u64),
101 Minutes(u64),
102 Hours(u64),
103 Days(u64),
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
107pub enum SamplingStrategy {
108 Fixed,
109 Adaptive,
110 QualityBased,
111 EventDriven,
112 Hybrid,
113}