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