vtcode_config/
telemetry.rs1use serde::{Deserialize, Serialize};
2
3#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub struct TelemetryConfig {
6 #[serde(default = "default_true")]
7 pub trajectory_enabled: bool,
8
9 #[serde(default = "default_true")]
11 pub dashboards_enabled: bool,
12
13 #[serde(default = "default_interval")]
15 pub sample_interval_ms: u64,
16
17 #[serde(default = "default_retention_days")]
19 pub retention_days: u32,
20
21 #[serde(default)]
23 pub bottleneck_tracing: bool,
24
25 #[serde(default = "default_true")]
27 pub perf_events: bool,
28}
29
30impl Default for TelemetryConfig {
31 fn default() -> Self {
32 Self {
33 trajectory_enabled: true,
34 dashboards_enabled: true,
35 sample_interval_ms: default_interval(),
36 retention_days: default_retention_days(),
37 bottleneck_tracing: true,
38 perf_events: true,
39 }
40 }
41}
42
43fn default_true() -> bool {
44 true
45}
46
47fn default_interval() -> u64 {
48 1000
49}
50
51fn default_retention_days() -> u32 {
52 14
53}