scouter_settings/
polling.rs1use chrono::Duration;
2use serde::Deserialize;
3use serde::Serialize;
4
5#[derive(Debug, Clone, Serialize)]
6pub struct PollingSettings {
7 pub num_workers: usize,
8 pub max_retries: usize,
9}
10
11impl Default for PollingSettings {
12 fn default() -> Self {
13 let num_workers = std::env::var("POLLING_WORKER_COUNT")
14 .unwrap_or_else(|_| "4".to_string())
15 .parse::<usize>()
16 .unwrap();
17
18 let max_retries = std::env::var("MAX_RETRIES")
19 .unwrap_or_else(|_| "3".to_string())
20 .parse::<usize>()
21 .unwrap();
22
23 Self {
24 num_workers,
25 max_retries,
26 }
27 }
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct GenAIPollerSettings {
32 pub max_retries: i32,
33 pub genai_workers: usize,
34 pub trace_wait_timeout: Duration,
35 pub trace_backoff: Duration,
36 pub trace_reschedule_delay: Duration,
37}
38
39impl Default for GenAIPollerSettings {
40 fn default() -> Self {
41 let genai_workers = std::env::var("GENAI_WORKER_COUNT")
42 .unwrap_or_else(|_| "2".to_string())
43 .parse::<usize>()
44 .unwrap();
45
46 let max_retries = std::env::var("GENAI_MAX_RETRIES")
47 .unwrap_or_else(|_| "3".to_string())
48 .parse::<i32>()
49 .unwrap();
50
51 let trace_wait_timeout = Duration::seconds(
52 std::env::var("GENAI_TRACE_WAIT_TIMEOUT_SECS")
53 .unwrap_or_else(|_| "10".to_string())
54 .parse::<i64>()
55 .unwrap(),
56 );
57
58 let trace_backoff = Duration::milliseconds(
59 std::env::var("GENAI_TRACE_BACKOFF_MILLIS")
60 .unwrap_or_else(|_| "100".to_string())
61 .parse::<i64>()
62 .unwrap(),
63 );
64
65 let trace_reschedule_delay = Duration::seconds(
66 std::env::var("GENAI_TRACE_RESCHEDULE_DELAY_SECS")
67 .unwrap_or_else(|_| "30".to_string())
68 .parse::<i64>()
69 .unwrap(),
70 );
71
72 Self {
73 max_retries,
74 trace_wait_timeout,
75 trace_backoff,
76 trace_reschedule_delay,
77 genai_workers,
78 }
79 }
80}