saluki_components/config_registry/datadog/
aggregate.rs1use crate::config_registry::{generated::schema, structs, SalukiAnnotation, SchemaEntry, SupportLevel, ValueType};
3
4static AGGREGATE_WINDOW_DURATION_SCHEMA: SchemaEntry = SchemaEntry {
6 yaml_path: "aggregate_window_duration",
7 env_vars: &[],
8 value_type: ValueType::String,
9 default: None,
10};
11
12static AGGREGATE_FLUSH_INTERVAL_SCHEMA: SchemaEntry = SchemaEntry {
13 yaml_path: "aggregate_flush_interval",
14 env_vars: &[],
15 value_type: ValueType::String,
16 default: None,
17};
18
19static AGGREGATE_CONTEXT_LIMIT_SCHEMA: SchemaEntry = SchemaEntry {
20 yaml_path: "aggregate_context_limit",
21 env_vars: &[],
22 value_type: ValueType::Integer,
23 default: None,
24};
25
26static COUNTER_EXPIRY_SECONDS_SCHEMA: SchemaEntry = SchemaEntry {
27 yaml_path: "counter_expiry_seconds",
28 env_vars: &[],
29 value_type: ValueType::Integer,
30 default: None,
31};
32
33static AGGREGATE_PASSTHROUGH_IDLE_FLUSH_TIMEOUT_SCHEMA: SchemaEntry = SchemaEntry {
34 yaml_path: "aggregate_passthrough_idle_flush_timeout",
35 env_vars: &[],
36 value_type: ValueType::String,
37 default: None,
38};
39
40crate::declare_annotations! {
41 AGGREGATE_WINDOW_DURATION = SalukiAnnotation {
44 schema: &AGGREGATE_WINDOW_DURATION_SCHEMA,
45 support_level: SupportLevel::Full,
46 additional_yaml_paths: &[],
47 env_var_override: None,
48 used_by: &[structs::AGGREGATE_CONFIGURATION],
49 value_type_override: None,
50 test_json: Some(r#"{"secs": 42, "nanos": 0}"#),
51 };
52
53 AGGREGATE_FLUSH_INTERVAL = SalukiAnnotation {
55 schema: &AGGREGATE_FLUSH_INTERVAL_SCHEMA,
56 support_level: SupportLevel::Full,
57 additional_yaml_paths: &[],
58 env_var_override: None,
59 used_by: &[structs::AGGREGATE_CONFIGURATION],
60 value_type_override: None,
61 test_json: Some(r#"{"secs": 42, "nanos": 0}"#),
62 };
63
64 AGGREGATE_CONTEXT_LIMIT = SalukiAnnotation {
66 schema: &AGGREGATE_CONTEXT_LIMIT_SCHEMA,
67 support_level: SupportLevel::Full,
68 additional_yaml_paths: &[],
69 env_var_override: None,
70 used_by: &[structs::AGGREGATE_CONFIGURATION],
71 value_type_override: None,
72 test_json: None,
73 };
74
75 AGGREGATE_FLUSH_OPEN_WINDOWS = SalukiAnnotation {
77 schema: &schema::DOGSTATSD_FLUSH_INCOMPLETE_BUCKETS,
78 support_level: SupportLevel::Full,
79 additional_yaml_paths: &["aggregate_flush_open_windows"],
80 env_var_override: None,
81 used_by: &[structs::AGGREGATE_CONFIGURATION],
82 value_type_override: None,
83 test_json: None,
84 };
85
86 COUNTER_EXPIRY_SECONDS = SalukiAnnotation {
88 schema: &COUNTER_EXPIRY_SECONDS_SCHEMA,
89 support_level: SupportLevel::Full,
90 additional_yaml_paths: &["dogstatsd_expiry_seconds"],
91 env_var_override: None,
92 used_by: &[structs::AGGREGATE_CONFIGURATION],
93 value_type_override: None,
94 test_json: None,
95 };
96
97 DOGSTATSD_NO_AGGREGATION_PIPELINE = SalukiAnnotation {
99 schema: &schema::DOGSTATSD_NO_AGGREGATION_PIPELINE,
100 support_level: SupportLevel::Full,
101 additional_yaml_paths: &[],
102 env_var_override: None,
103 used_by: &[structs::AGGREGATE_CONFIGURATION, structs::DOGSTATSD_CONFIGURATION],
104 value_type_override: None,
105 test_json: None,
106 };
107
108 AGGREGATE_PASSTHROUGH_IDLE_FLUSH_TIMEOUT = SalukiAnnotation {
110 schema: &AGGREGATE_PASSTHROUGH_IDLE_FLUSH_TIMEOUT_SCHEMA,
111 support_level: SupportLevel::Full,
112 additional_yaml_paths: &[],
113 env_var_override: None,
114 used_by: &[structs::AGGREGATE_CONFIGURATION],
115 value_type_override: None,
116 test_json: Some(r#"{"secs": 42, "nanos": 0}"#),
117 };
118
119 HISTOGRAM_AGGREGATES = SalukiAnnotation {
121 schema: &schema::HISTOGRAM_AGGREGATES,
122 support_level: SupportLevel::Full,
123 additional_yaml_paths: &[],
124 env_var_override: None,
125 used_by: &[structs::AGGREGATE_CONFIGURATION],
126 value_type_override: None,
127 test_json: Some(r#"["count"]"#),
128 };
129
130 HISTOGRAM_COPY_TO_DISTRIBUTION = SalukiAnnotation {
132 schema: &schema::HISTOGRAM_COPY_TO_DISTRIBUTION,
133 support_level: SupportLevel::Full,
134 additional_yaml_paths: &[],
135 env_var_override: None,
136 used_by: &[structs::AGGREGATE_CONFIGURATION],
137 value_type_override: None,
138 test_json: None,
139 };
140
141 HISTOGRAM_COPY_TO_DISTRIBUTION_PREFIX = SalukiAnnotation {
143 schema: &schema::HISTOGRAM_COPY_TO_DISTRIBUTION_PREFIX,
144 support_level: SupportLevel::Full,
145 additional_yaml_paths: &[],
146 env_var_override: None,
147 used_by: &[structs::AGGREGATE_CONFIGURATION],
148 value_type_override: None,
149 test_json: None,
150 };
151}