scouter_server/sql/
schema.rs1use chrono::NaiveDateTime;
2use serde::{Deserialize, Serialize};
3use std::collections::BTreeMap;
4use std::collections::HashMap;
5
6#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct DriftRecord {
8 pub created_at: NaiveDateTime,
9 pub name: String,
10 pub repository: String,
11 pub version: String,
12 pub feature: String,
13 pub value: f64,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct FeatureResult {
18 pub created_at: Vec<chrono::NaiveDateTime>,
19 pub values: Vec<f64>,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct QueryResult {
24 pub features: BTreeMap<String, FeatureResult>,
25}
26
27#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
28pub struct ProcessAlertRule {
29 pub rule: String,
30}
31
32#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
33pub struct PercentageAlertRule {
34 pub rule: f64,
35}
36
37#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
38pub struct AlertRule {
39 pub control: Option<ProcessAlertRule>,
40
41 pub percentage: Option<PercentageAlertRule>,
42}
43
44#[derive(Debug, Serialize, Deserialize, Clone)]
45pub struct MonitorConfig {
46 pub sample_size: usize,
47
48 pub sample: bool,
49
50 pub name: String,
51
52 pub repository: String,
53
54 pub version: String,
55
56 pub alert_rule: AlertRule,
57
58 pub cron: String,
59}
60
61#[derive(Debug, Serialize, Deserialize, Clone)]
62pub struct FeatureMonitorProfile {
63 pub id: String,
64
65 pub center: f64,
66
67 pub one_ucl: f64,
68
69 pub one_lcl: f64,
70
71 pub two_ucl: f64,
72
73 pub two_lcl: f64,
74
75 pub three_ucl: f64,
76
77 pub three_lcl: f64,
78
79 pub timestamp: String,
80}
81
82#[derive(Debug, Serialize, Deserialize, Clone)]
83pub struct MonitorProfile {
84 pub features: HashMap<String, FeatureMonitorProfile>,
85
86 pub config: MonitorConfig,
87}