1#![allow(clippy::all, dead_code, unused)]
4
5#![allow(missing_docs)]
7
8use std::collections::HashMap;
9
10pub mod error {
12 pub struct ConversionError(::std::borrow::Cow<'static, str>);
13 impl ::std::error::Error for ConversionError {}
14 impl ::std::fmt::Display for ConversionError {
15 fn fmt(
16 &self,
17 f: &mut ::std::fmt::Formatter<'_>,
18 ) -> Result<(), ::std::fmt::Error> {
19 ::std::fmt::Display::fmt(&self.0, f)
20 }
21 }
22 impl ::std::fmt::Debug for ConversionError {
23 fn fmt(
24 &self,
25 f: &mut ::std::fmt::Formatter<'_>,
26 ) -> Result<(), ::std::fmt::Error> {
27 ::std::fmt::Debug::fmt(&self.0, f)
28 }
29 }
30 impl From<&'static str> for ConversionError {
31 fn from(value: &'static str) -> Self {
32 Self(value.into())
33 }
34 }
35 impl From<String> for ConversionError {
36 fn from(value: String) -> Self {
37 Self(value.into())
38 }
39 }
40}
41
42#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
43pub struct DatadogConfiguration {
44 #[serde(default, skip_serializing_if = ":: std :: collections :: HashMap::is_empty")]
45 #[serde(deserialize_with = "crate::list_de::deserialize_string_map_scalar_or_seq")]
46 pub additional_endpoints: HashMap<String, Vec<String>>,
47
48 #[serde(default)]
49 pub agent_ipc: AgentIpc,
50
51 #[serde(default = "defaults::default_u64::<i64, 2>")]
52 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
53 pub aggregator_stop_timeout: i64,
54
55 #[serde(default)]
56 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
57 pub allow_arbitrary_tags: bool,
58
59 #[serde(default)]
60 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
61 pub api_key: String,
62
63 #[serde(default)]
64 pub apm_config: ApmConfig,
65
66 #[serde(default)]
67 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
68 pub auth_token_file_path: String,
69
70 #[serde(default)]
71 pub autoscaling: Autoscaling,
72
73 #[serde(default)]
74 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
75 pub basic_telemetry_add_container_tags: bool,
76
77 #[serde(default)]
78 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
79 pub bind_host: String,
80
81 #[serde(default)]
82 pub cluster_agent: ClusterAgent,
83
84 #[serde(default)]
85 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
86 pub cluster_name: String,
87
88 #[serde(default = "defaults::default_u64::<i64, 5001>")]
89 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
90 pub cmd_port: i64,
91
92 #[serde(default = "defaults::datadog_configuration_container_cgroup_root")]
93 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
94 pub container_cgroup_root: String,
95
96 #[serde(default = "defaults::datadog_configuration_container_proc_root")]
97 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
98 pub container_proc_root: String,
99
100 #[serde(default = "defaults::default_u64::<i64, 1>")]
101 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
102 pub cri_connection_timeout: i64,
103
104 #[serde(default = "defaults::default_u64::<i64, 5>")]
105 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
106 pub cri_query_timeout: i64,
107
108 #[serde(default)]
109 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
110 pub cri_socket_path: String,
111
112 #[serde(default)]
113 pub data_plane: DataPlane,
114
115 #[serde(default = "defaults::datadog_configuration_dd_url")]
116 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
117 pub dd_url: String,
118
119 #[serde(default)]
120 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
121 pub disable_file_logging: bool,
122
123 #[serde(default = "defaults::default_u64::<i64, 8192>")]
124 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
125 pub dogstatsd_buffer_size: i64,
126
127 #[serde(default)]
128 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
129 pub dogstatsd_capture_depth: i64,
130
131 #[serde(default)]
132 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
133 pub dogstatsd_capture_path: String,
134
135 #[serde(default = "defaults::default_u64::<i64, 20>")]
136 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
137 pub dogstatsd_context_expiry_seconds: i64,
138
139 #[serde(default)]
140 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
141 pub dogstatsd_disable_verbose_logs: bool,
142
143 #[serde(default)]
144 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
145 pub dogstatsd_entity_id_precedence: bool,
146
147 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
148 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
149 pub dogstatsd_eol_required: Vec<String>,
150
151 #[serde(default = "defaults::default_u64::<i64, 300>")]
152 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
153 pub dogstatsd_expiry_seconds: i64,
154
155 #[serde(default)]
156 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
157 pub dogstatsd_flush_incomplete_buckets: bool,
158
159 #[serde(default = "defaults::datadog_configuration_dogstatsd_log_file")]
160 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
161 pub dogstatsd_log_file: String,
162
163 #[serde(default = "defaults::default_u64::<i64, 3>")]
164 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
165 pub dogstatsd_log_file_max_rolls: i64,
166
167 #[serde(default = "defaults::datadog_configuration_dogstatsd_log_file_max_size")]
168 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
169 pub dogstatsd_log_file_max_size: String,
170
171 #[serde(default = "defaults::default_bool::<true>")]
172 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
173 pub dogstatsd_logging_enabled: bool,
174
175 #[serde(default = "defaults::default_u64::<i64, 1000>")]
176 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
177 pub dogstatsd_mapper_cache_size: i64,
178
179 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
180 #[serde(deserialize_with = "crate::list_de::deserialize_json_array_or_string")]
181 pub dogstatsd_mapper_profiles: Vec<::serde_json::Value>,
182
183 #[serde(default)]
184 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
185 pub dogstatsd_metrics_stats_enable: bool,
186
187 #[serde(default = "defaults::default_bool::<true>")]
188 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
189 pub dogstatsd_no_aggregation_pipeline: bool,
190
191 #[serde(default)]
192 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
193 pub dogstatsd_non_local_traffic: bool,
194
195 #[serde(default)]
196 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
197 pub dogstatsd_origin_detection: bool,
198
199 #[serde(default)]
200 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
201 pub dogstatsd_origin_detection_client: bool,
202
203 #[serde(default = "defaults::default_bool::<true>")]
204 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
205 pub dogstatsd_origin_optout_enabled: bool,
206
207 #[serde(default)]
208 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
209 pub dogstatsd_pipe_name: String,
210
211 #[serde(default = "defaults::default_u64::<i64, 8125>")]
212 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
213 pub dogstatsd_port: i64,
214
215 #[serde(default)]
216 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
217 pub dogstatsd_so_rcvbuf: i64,
218
219 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
220 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
221 pub dogstatsd_socket: Option<String>,
222
223 #[serde(default)]
224 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
225 pub dogstatsd_stream_log_too_big: bool,
226
227 #[serde(default)]
228 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
229 pub dogstatsd_stream_socket: String,
230
231 #[serde(default = "defaults::default_u64::<i64, 4096>")]
232 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
233 pub dogstatsd_string_interner_size: i64,
234
235 #[serde(default = "defaults::datadog_configuration_dogstatsd_tag_cardinality")]
236 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
237 pub dogstatsd_tag_cardinality: String,
238
239 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
240 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
241 pub dogstatsd_tags: Vec<String>,
242
243 #[serde(
244 default = "defaults::datadog_configuration_dogstatsd_windows_pipe_security_descriptor"
245 )]
246 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
247 pub dogstatsd_windows_pipe_security_descriptor: String,
248
249 #[serde(default)]
250 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
251 pub dogstatsd_workers_count: i64,
252
253 #[serde(default)]
254 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
255 pub eks_fargate: bool,
256
257 #[serde(default)]
258 pub enable_payloads: EnablePayloads,
259
260 #[serde(default)]
261 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
262 pub env: String,
263
264 #[serde(
265 default = "duration_defaults::expected_tags_duration",
266
267 deserialize_with = "crate::duration_de::deserialize_go_duration"
268 )]
269 pub expected_tags_duration: std::time::Duration,
270
271 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
272 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
273 pub extra_tags: Vec<String>,
274
275 #[serde(default = "defaults::default_u64::<i64, 60>")]
276 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
277 pub forwarder_apikey_validation_interval: i64,
278
279 #[serde(default = "defaults::datadog_configuration_forwarder_backoff_base")]
280 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
281 pub forwarder_backoff_base: f64,
282
283 #[serde(default = "defaults::datadog_configuration_forwarder_backoff_factor")]
284 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
285 pub forwarder_backoff_factor: f64,
286
287 #[serde(default = "defaults::datadog_configuration_forwarder_backoff_max")]
288 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
289 pub forwarder_backoff_max: f64,
290
291 #[serde(default)]
292 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
293 pub forwarder_connection_reset_interval: i64,
294
295 #[serde(
296 default = "defaults::datadog_configuration_forwarder_flush_to_disk_mem_ratio"
297 )]
298 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
299 pub forwarder_flush_to_disk_mem_ratio: f64,
300
301 #[serde(default = "defaults::default_u64::<i64, 100>")]
302 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
303 pub forwarder_high_prio_buffer_size: i64,
304
305 #[serde(default = "defaults::datadog_configuration_forwarder_http_protocol")]
306 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
307 pub forwarder_http_protocol: String,
308
309 #[serde(default = "defaults::default_u64::<i64, 10>")]
310 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
311 pub forwarder_max_concurrent_requests: i64,
312
313 #[serde(default = "defaults::default_u64::<i64, 1>")]
314 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
315 pub forwarder_num_workers: i64,
316
317 #[serde(default = "defaults::default_u64::<i64, 10>")]
318 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
319 pub forwarder_outdated_file_in_days: i64,
320
321 #[serde(default = "defaults::default_u64::<i64, 2>")]
322 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
323 pub forwarder_recovery_interval: i64,
324
325 #[serde(default)]
326 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
327 pub forwarder_recovery_reset: bool,
328
329 #[serde(default = "defaults::default_u64::<i64, 900>")]
330 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
331 pub forwarder_retry_queue_capacity_time_interval_sec: i64,
332
333 #[serde(default)]
334 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
335 pub forwarder_retry_queue_max_size: i64,
336
337 #[serde(default = "defaults::default_u64::<i64, 15728640>")]
338 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
339 pub forwarder_retry_queue_payloads_max_size: i64,
340
341 #[serde(default = "defaults::default_u64::<i64, 2>")]
342 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
343 pub forwarder_stop_timeout: i64,
344
345 #[serde(
346 default = "defaults::datadog_configuration_forwarder_storage_max_disk_ratio"
347 )]
348 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
349 pub forwarder_storage_max_disk_ratio: f64,
350
351 #[serde(default)]
352 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
353 pub forwarder_storage_max_size_in_bytes: i64,
354
355 #[serde(default = "defaults::datadog_configuration_forwarder_storage_path")]
356 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
357 pub forwarder_storage_path: String,
358
359 #[serde(default = "defaults::default_u64::<i64, 20>")]
360 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
361 pub forwarder_timeout: i64,
362
363 #[serde(default = "defaults::datadog_configuration_histogram_aggregates")]
364 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
365 pub histogram_aggregates: Vec<String>,
366
367 #[serde(default)]
368 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
369 pub histogram_copy_to_distribution: bool,
370
371 #[serde(default)]
372 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
373 pub histogram_copy_to_distribution_prefix: String,
374
375 #[serde(default = "defaults::datadog_configuration_histogram_percentiles")]
376 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
377 pub histogram_percentiles: Vec<String>,
378
379 #[serde(default)]
380 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
381 pub hostname: String,
382
383 #[serde(default)]
384 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
385 pub ipc_cert_file_path: String,
386
387 #[serde(default)]
388 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
389 pub kubernetes_kubelet_nodename: String,
390
391 #[serde(default = "defaults::default_u64::<i64, 1>")]
392 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
393 pub log_file_max_rolls: i64,
394
395 #[serde(default = "defaults::datadog_configuration_log_file_max_size")]
396 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
397 pub log_file_max_size: String,
398
399 #[serde(default)]
400 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
401 pub log_format_json: bool,
402
403 #[serde(default)]
404 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
405 pub log_format_rfc3339: bool,
406
407 #[serde(default = "defaults::datadog_configuration_log_level")]
408 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
409 pub log_level: String,
410
411 #[serde(default)]
412 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
413 pub log_payloads: bool,
414
415 #[serde(default = "defaults::default_bool::<true>")]
416 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
417 pub log_to_console: bool,
418
419 #[serde(default)]
420 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
421 pub log_to_syslog: bool,
422
423 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
424 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
425 pub metric_filterlist: Vec<String>,
426
427 #[serde(default)]
428 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
429 pub metric_filterlist_match_prefix: bool,
430
431 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
432 #[serde(deserialize_with = "crate::list_de::deserialize_json_array_or_string")]
433 pub metric_tag_filterlist: Vec<::serde_json::Value>,
434
435 #[serde(default = "defaults::datadog_configuration_min_tls_version")]
436 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
437 pub min_tls_version: String,
438
439 #[serde(default)]
440 pub multi_region_failover: MultiRegionFailover,
441
442 #[serde(default)]
443 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
444 pub no_proxy_nonexact_match: bool,
445
446 #[serde(default)]
447 pub observability_pipelines_worker: ObservabilityPipelinesWorker,
448
449 #[serde(default)]
450 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
451 pub origin_detection_unified: bool,
452
453 #[serde(default)]
454 pub otlp_config: OtlpConfig,
455
456 #[serde(default)]
457 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
458 pub provider_kind: String,
459
460 #[serde(default)]
461 pub proxy: Proxy,
462
463 #[serde(default = "defaults::datadog_configuration_run_path")]
464 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
465 pub run_path: String,
466
467 #[serde(default)]
468 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
469 pub secret_backend_command: String,
470
471 #[serde(default)]
472 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
473 pub secret_refresh_on_api_key_failure_interval: i64,
474
475 #[serde(default = "defaults::datadog_configuration_serializer_compressor_kind")]
476 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
477 pub serializer_compressor_kind: String,
478
479 #[serde(default)]
480 pub serializer_experimental_use_v3_api: SerializerExperimentalUseV3Api,
481
482 #[serde(default = "defaults::default_u64::<i64, 2621440>")]
483 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
484 pub serializer_max_payload_size: i64,
485
486 #[serde(default = "defaults::default_u64::<i64, 512000>")]
487 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
488 pub serializer_max_series_payload_size: i64,
489
490 #[serde(default = "defaults::default_u64::<i64, 10000>")]
491 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
492 pub serializer_max_series_points_per_payload: i64,
493
494 #[serde(default = "defaults::default_u64::<i64, 5242880>")]
495 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
496 pub serializer_max_series_uncompressed_payload_size: i64,
497
498 #[serde(default = "defaults::default_u64::<i64, 4194304>")]
499 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
500 pub serializer_max_uncompressed_payload_size: i64,
501
502 #[serde(default = "defaults::default_u64::<i64, 1>")]
503 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
504 pub serializer_zstd_compressor_level: i64,
505
506 #[serde(default = "defaults::datadog_configuration_site")]
507 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
508 pub site: String,
509
510 #[serde(default)]
511 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
512 pub skip_ssl_validation: bool,
513
514 #[serde(default)]
515 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
516 pub sslkeylogfile: String,
517
518 #[serde(default)]
519 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
520 pub statsd_forward_host: String,
521
522 #[serde(default)]
523 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
524 pub statsd_forward_port: i64,
525
526 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
527 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
528 pub statsd_metric_blocklist: Vec<String>,
529
530 #[serde(default)]
531 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
532 pub statsd_metric_blocklist_match_prefix: bool,
533
534 #[serde(default)]
535 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
536 pub statsd_metric_namespace: String,
537
538 #[serde(
539 default = "defaults::datadog_configuration_statsd_metric_namespace_blacklist"
540 )]
541 #[serde(alias = "statsd_metric_namespace_blocklist")]
543 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
544 pub statsd_metric_namespace_blacklist: Vec<String>,
545
546 #[serde(default)]
547 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
548 pub syslog_rfc: bool,
549
550 #[serde(default)]
551 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
552 pub syslog_uri: String,
553
554 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
555 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
556 pub tags: Vec<String>,
557
558 #[serde(default)]
559 pub telemetry: Telemetry,
560
561 #[serde(
562 default = "duration_defaults::tls_handshake_timeout",
563
564 deserialize_with = "crate::duration_de::deserialize_go_duration"
565 )]
566 pub tls_handshake_timeout: std::time::Duration,
567
568 #[serde(default)]
569 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
570 pub use_proxy_for_cloud_metadata: bool,
571
572 #[serde(default)]
573 pub use_v2_api: UseV2Api,
574
575 #[serde(default)]
576 pub use_v3_api: UseV3Api,
577
578 #[serde(default)]
579 pub vector: Vector,
580
581 #[serde(default)]
582 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
583 pub vsock_addr: String,
584}
585
586impl Default for DatadogConfiguration {
587 fn default() -> Self {
588 Self {
589 additional_endpoints: Default::default(),
590 agent_ipc: Default::default(),
591 aggregator_stop_timeout: defaults::default_u64::<i64, 2>(),
592 allow_arbitrary_tags: Default::default(),
593 api_key: Default::default(),
594 apm_config: Default::default(),
595 auth_token_file_path: Default::default(),
596 autoscaling: Default::default(),
597 basic_telemetry_add_container_tags: Default::default(),
598 bind_host: Default::default(),
599 cluster_agent: Default::default(),
600 cluster_name: Default::default(),
601 cmd_port: defaults::default_u64::<i64, 5001>(),
602 container_cgroup_root: defaults::datadog_configuration_container_cgroup_root(),
603 container_proc_root: defaults::datadog_configuration_container_proc_root(),
604 cri_connection_timeout: defaults::default_u64::<i64, 1>(),
605 cri_query_timeout: defaults::default_u64::<i64, 5>(),
606 cri_socket_path: Default::default(),
607 data_plane: Default::default(),
608 dd_url: defaults::datadog_configuration_dd_url(),
609 disable_file_logging: Default::default(),
610 dogstatsd_buffer_size: defaults::default_u64::<i64, 8192>(),
611 dogstatsd_capture_depth: Default::default(),
612 dogstatsd_capture_path: Default::default(),
613 dogstatsd_context_expiry_seconds: defaults::default_u64::<i64, 20>(),
614 dogstatsd_disable_verbose_logs: Default::default(),
615 dogstatsd_entity_id_precedence: Default::default(),
616 dogstatsd_eol_required: Default::default(),
617 dogstatsd_expiry_seconds: defaults::default_u64::<i64, 300>(),
618 dogstatsd_flush_incomplete_buckets: Default::default(),
619 dogstatsd_log_file: defaults::datadog_configuration_dogstatsd_log_file(),
620 dogstatsd_log_file_max_rolls: defaults::default_u64::<i64, 3>(),
621 dogstatsd_log_file_max_size: defaults::datadog_configuration_dogstatsd_log_file_max_size(),
622 dogstatsd_logging_enabled: defaults::default_bool::<true>(),
623 dogstatsd_mapper_cache_size: defaults::default_u64::<i64, 1000>(),
624 dogstatsd_mapper_profiles: Default::default(),
625 dogstatsd_metrics_stats_enable: Default::default(),
626 dogstatsd_no_aggregation_pipeline: defaults::default_bool::<true>(),
627 dogstatsd_non_local_traffic: Default::default(),
628 dogstatsd_origin_detection: Default::default(),
629 dogstatsd_origin_detection_client: Default::default(),
630 dogstatsd_origin_optout_enabled: defaults::default_bool::<true>(),
631 dogstatsd_pipe_name: Default::default(),
632 dogstatsd_port: defaults::default_u64::<i64, 8125>(),
633 dogstatsd_so_rcvbuf: Default::default(),
634 dogstatsd_socket: Default::default(),
635 dogstatsd_stream_log_too_big: Default::default(),
636 dogstatsd_stream_socket: Default::default(),
637 dogstatsd_string_interner_size: defaults::default_u64::<i64, 4096>(),
638 dogstatsd_tag_cardinality: defaults::datadog_configuration_dogstatsd_tag_cardinality(),
639 dogstatsd_tags: Default::default(),
640 dogstatsd_windows_pipe_security_descriptor: defaults::datadog_configuration_dogstatsd_windows_pipe_security_descriptor(),
641 dogstatsd_workers_count: Default::default(),
642 eks_fargate: Default::default(),
643 enable_payloads: Default::default(),
644 env: Default::default(),
645 expected_tags_duration: duration_defaults::expected_tags_duration(),
646 extra_tags: Default::default(),
647 forwarder_apikey_validation_interval: defaults::default_u64::<i64, 60>(),
648 forwarder_backoff_base: defaults::datadog_configuration_forwarder_backoff_base(),
649 forwarder_backoff_factor: defaults::datadog_configuration_forwarder_backoff_factor(),
650 forwarder_backoff_max: defaults::datadog_configuration_forwarder_backoff_max(),
651 forwarder_connection_reset_interval: Default::default(),
652 forwarder_flush_to_disk_mem_ratio: defaults::datadog_configuration_forwarder_flush_to_disk_mem_ratio(),
653 forwarder_high_prio_buffer_size: defaults::default_u64::<i64, 100>(),
654 forwarder_http_protocol: defaults::datadog_configuration_forwarder_http_protocol(),
655 forwarder_max_concurrent_requests: defaults::default_u64::<i64, 10>(),
656 forwarder_num_workers: defaults::default_u64::<i64, 1>(),
657 forwarder_outdated_file_in_days: defaults::default_u64::<i64, 10>(),
658 forwarder_recovery_interval: defaults::default_u64::<i64, 2>(),
659 forwarder_recovery_reset: Default::default(),
660 forwarder_retry_queue_capacity_time_interval_sec: defaults::default_u64::<
661 i64,
662 900,
663 >(),
664 forwarder_retry_queue_max_size: Default::default(),
665 forwarder_retry_queue_payloads_max_size: defaults::default_u64::<
666 i64,
667 15728640,
668 >(),
669 forwarder_stop_timeout: defaults::default_u64::<i64, 2>(),
670 forwarder_storage_max_disk_ratio: defaults::datadog_configuration_forwarder_storage_max_disk_ratio(),
671 forwarder_storage_max_size_in_bytes: Default::default(),
672 forwarder_storage_path: defaults::datadog_configuration_forwarder_storage_path(),
673 forwarder_timeout: defaults::default_u64::<i64, 20>(),
674 histogram_aggregates: defaults::datadog_configuration_histogram_aggregates(),
675 histogram_copy_to_distribution: Default::default(),
676 histogram_copy_to_distribution_prefix: Default::default(),
677 histogram_percentiles: defaults::datadog_configuration_histogram_percentiles(),
678 hostname: Default::default(),
679 ipc_cert_file_path: Default::default(),
680 kubernetes_kubelet_nodename: Default::default(),
681 log_file_max_rolls: defaults::default_u64::<i64, 1>(),
682 log_file_max_size: defaults::datadog_configuration_log_file_max_size(),
683 log_format_json: Default::default(),
684 log_format_rfc3339: Default::default(),
685 log_level: defaults::datadog_configuration_log_level(),
686 log_payloads: Default::default(),
687 log_to_console: defaults::default_bool::<true>(),
688 log_to_syslog: Default::default(),
689 metric_filterlist: Default::default(),
690 metric_filterlist_match_prefix: Default::default(),
691 metric_tag_filterlist: Default::default(),
692 min_tls_version: defaults::datadog_configuration_min_tls_version(),
693 multi_region_failover: Default::default(),
694 no_proxy_nonexact_match: Default::default(),
695 observability_pipelines_worker: Default::default(),
696 origin_detection_unified: Default::default(),
697 otlp_config: Default::default(),
698 provider_kind: Default::default(),
699 proxy: Default::default(),
700 run_path: defaults::datadog_configuration_run_path(),
701 secret_backend_command: Default::default(),
702 secret_refresh_on_api_key_failure_interval: Default::default(),
703 serializer_compressor_kind: defaults::datadog_configuration_serializer_compressor_kind(),
704 serializer_experimental_use_v3_api: Default::default(),
705 serializer_max_payload_size: defaults::default_u64::<i64, 2621440>(),
706 serializer_max_series_payload_size: defaults::default_u64::<i64, 512000>(),
707 serializer_max_series_points_per_payload: defaults::default_u64::<
708 i64,
709 10000,
710 >(),
711 serializer_max_series_uncompressed_payload_size: defaults::default_u64::<
712 i64,
713 5242880,
714 >(),
715 serializer_max_uncompressed_payload_size: defaults::default_u64::<
716 i64,
717 4194304,
718 >(),
719 serializer_zstd_compressor_level: defaults::default_u64::<i64, 1>(),
720 site: defaults::datadog_configuration_site(),
721 skip_ssl_validation: Default::default(),
722 sslkeylogfile: Default::default(),
723 statsd_forward_host: Default::default(),
724 statsd_forward_port: Default::default(),
725 statsd_metric_blocklist: Default::default(),
726 statsd_metric_blocklist_match_prefix: Default::default(),
727 statsd_metric_namespace: Default::default(),
728 statsd_metric_namespace_blacklist: defaults::datadog_configuration_statsd_metric_namespace_blacklist(),
729 syslog_rfc: Default::default(),
730 syslog_uri: Default::default(),
731 tags: Default::default(),
732 telemetry: Default::default(),
733 tls_handshake_timeout: duration_defaults::tls_handshake_timeout(),
734 use_proxy_for_cloud_metadata: Default::default(),
735 use_v2_api: Default::default(),
736 use_v3_api: Default::default(),
737 vector: Default::default(),
738 vsock_addr: Default::default(),
739 }
740 }
741}
742
743#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
744pub struct AgentIpc {
745 #[serde(default = "defaults::default_u64::<i64, 134217728>")]
746 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
747 pub grpc_max_message_size: i64,
748}
749
750impl Default for AgentIpc {
751 fn default() -> Self {
752 Self {
753 grpc_max_message_size: defaults::default_u64::<i64, 134217728>(),
754 }
755 }
756}
757
758#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
759pub struct ApmConfig {
760 #[serde(default = "defaults::default_bool::<true>")]
761 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
762 pub compute_stats_by_span_kind: bool,
763
764 #[serde(default)]
765 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
766 pub enable_rare_sampler: bool,
767
768 #[serde(default)]
769 pub error_tracking_standalone: ApmConfigErrorTrackingStandalone,
770
771 #[serde(default = "defaults::datadog_configuration_apm_config_errors_per_second")]
772 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
773 pub errors_per_second: f64,
774
775 #[serde(default)]
776 pub obfuscation: ApmConfigObfuscation,
777
778 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
779 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
780 pub peer_tags: Vec<String>,
781
782 #[serde(default = "defaults::default_bool::<true>")]
783 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
784 pub peer_tags_aggregation: bool,
785
786 #[serde(default)]
787 pub probabilistic_sampler: ApmConfigProbabilisticSampler,
788
789 #[serde(
790 default = "defaults::datadog_configuration_apm_config_target_traces_per_second"
791 )]
792 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
793 pub target_traces_per_second: f64,
794}
795
796impl Default for ApmConfig {
797 fn default() -> Self {
798 Self {
799 compute_stats_by_span_kind: defaults::default_bool::<true>(),
800 enable_rare_sampler: Default::default(),
801 error_tracking_standalone: Default::default(),
802 errors_per_second: defaults::datadog_configuration_apm_config_errors_per_second(),
803 obfuscation: Default::default(),
804 peer_tags: Default::default(),
805 peer_tags_aggregation: defaults::default_bool::<true>(),
806 probabilistic_sampler: Default::default(),
807 target_traces_per_second: defaults::datadog_configuration_apm_config_target_traces_per_second(),
808 }
809 }
810}
811
812#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
813pub struct ApmConfigErrorTrackingStandalone {
814 #[serde(default)]
815 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
816 pub enabled: bool,
817}
818
819impl Default for ApmConfigErrorTrackingStandalone {
820 fn default() -> Self {
821 Self {
822 enabled: Default::default(),
823 }
824 }
825}
826
827#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
828pub struct ApmConfigObfuscation {
829 #[serde(default)]
830 pub credit_cards: ApmConfigObfuscationCreditCards,
831
832 #[serde(default)]
833 pub elasticsearch: ApmConfigObfuscationElasticsearch,
834
835 #[serde(default)]
836 pub http: ApmConfigObfuscationHttp,
837
838 #[serde(default)]
839 pub memcached: ApmConfigObfuscationMemcached,
840
841 #[serde(default)]
842 pub mongodb: ApmConfigObfuscationMongodb,
843
844 #[serde(default)]
845 pub opensearch: ApmConfigObfuscationOpensearch,
846
847 #[serde(default)]
848 pub redis: ApmConfigObfuscationRedis,
849
850 #[serde(default)]
851 pub valkey: ApmConfigObfuscationValkey,
852}
853
854impl Default for ApmConfigObfuscation {
855 fn default() -> Self {
856 Self {
857 credit_cards: Default::default(),
858 elasticsearch: Default::default(),
859 http: Default::default(),
860 memcached: Default::default(),
861 mongodb: Default::default(),
862 opensearch: Default::default(),
863 redis: Default::default(),
864 valkey: Default::default(),
865 }
866 }
867}
868
869#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
870pub struct ApmConfigObfuscationCreditCards {
871 #[serde(default = "defaults::default_bool::<true>")]
872 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
873 pub enabled: bool,
874
875 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
876 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
877 pub keep_values: Vec<String>,
878
879 #[serde(default)]
880 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
881 pub luhn: bool,
882}
883
884impl Default for ApmConfigObfuscationCreditCards {
885 fn default() -> Self {
886 Self {
887 enabled: defaults::default_bool::<true>(),
888 keep_values: Default::default(),
889 luhn: Default::default(),
890 }
891 }
892}
893
894#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
895pub struct ApmConfigObfuscationElasticsearch {
896 #[serde(default = "defaults::default_bool::<true>")]
897 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
898 pub enabled: bool,
899
900 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
901 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
902 pub keep_values: Vec<String>,
903
904 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
905 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
906 pub obfuscate_sql_values: Vec<String>,
907}
908
909impl Default for ApmConfigObfuscationElasticsearch {
910 fn default() -> Self {
911 Self {
912 enabled: defaults::default_bool::<true>(),
913 keep_values: Default::default(),
914 obfuscate_sql_values: Default::default(),
915 }
916 }
917}
918
919#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
920pub struct ApmConfigObfuscationHttp {
921 #[serde(default)]
922 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
923 pub remove_paths_with_digits: bool,
924
925 #[serde(default)]
926 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
927 pub remove_query_string: bool,
928}
929
930impl Default for ApmConfigObfuscationHttp {
931 fn default() -> Self {
932 Self {
933 remove_paths_with_digits: Default::default(),
934 remove_query_string: Default::default(),
935 }
936 }
937}
938
939#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
940pub struct ApmConfigObfuscationMemcached {
941 #[serde(default = "defaults::default_bool::<true>")]
942 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
943 pub enabled: bool,
944
945 #[serde(default)]
946 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
947 pub keep_command: bool,
948}
949
950impl Default for ApmConfigObfuscationMemcached {
951 fn default() -> Self {
952 Self {
953 enabled: defaults::default_bool::<true>(),
954 keep_command: Default::default(),
955 }
956 }
957}
958
959#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
960pub struct ApmConfigObfuscationMongodb {
961 #[serde(default = "defaults::default_bool::<true>")]
962 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
963 pub enabled: bool,
964
965 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
966 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
967 pub keep_values: Vec<String>,
968
969 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
970 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
971 pub obfuscate_sql_values: Vec<String>,
972}
973
974impl Default for ApmConfigObfuscationMongodb {
975 fn default() -> Self {
976 Self {
977 enabled: defaults::default_bool::<true>(),
978 keep_values: Default::default(),
979 obfuscate_sql_values: Default::default(),
980 }
981 }
982}
983
984#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
985pub struct ApmConfigObfuscationOpensearch {
986 #[serde(default = "defaults::default_bool::<true>")]
987 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
988 pub enabled: bool,
989
990 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
991 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
992 pub keep_values: Vec<String>,
993
994 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
995 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
996 pub obfuscate_sql_values: Vec<String>,
997}
998
999impl Default for ApmConfigObfuscationOpensearch {
1000 fn default() -> Self {
1001 Self {
1002 enabled: defaults::default_bool::<true>(),
1003 keep_values: Default::default(),
1004 obfuscate_sql_values: Default::default(),
1005 }
1006 }
1007}
1008
1009#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1010pub struct ApmConfigObfuscationRedis {
1011 #[serde(default = "defaults::default_bool::<true>")]
1012 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1013 pub enabled: bool,
1014
1015 #[serde(default)]
1016 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1017 pub remove_all_args: bool,
1018}
1019
1020impl Default for ApmConfigObfuscationRedis {
1021 fn default() -> Self {
1022 Self {
1023 enabled: defaults::default_bool::<true>(),
1024 remove_all_args: Default::default(),
1025 }
1026 }
1027}
1028
1029#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1030pub struct ApmConfigObfuscationValkey {
1031 #[serde(default = "defaults::default_bool::<true>")]
1032 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1033 pub enabled: bool,
1034
1035 #[serde(default)]
1036 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1037 pub remove_all_args: bool,
1038}
1039
1040impl Default for ApmConfigObfuscationValkey {
1041 fn default() -> Self {
1042 Self {
1043 enabled: defaults::default_bool::<true>(),
1044 remove_all_args: Default::default(),
1045 }
1046 }
1047}
1048
1049#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1050pub struct ApmConfigProbabilisticSampler {
1051 #[serde(default)]
1052 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1053 pub enabled: bool,
1054
1055 #[serde(
1056 default = "defaults::datadog_configuration_apm_config_probabilistic_sampler_sampling_percentage"
1057 )]
1058 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
1059 pub sampling_percentage: f64,
1060}
1061
1062impl Default for ApmConfigProbabilisticSampler {
1063 fn default() -> Self {
1064 Self {
1065 enabled: Default::default(),
1066 sampling_percentage: defaults::datadog_configuration_apm_config_probabilistic_sampler_sampling_percentage(),
1067 }
1068 }
1069}
1070
1071#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1072pub struct Autoscaling {
1073 #[serde(default)]
1074 pub failover: AutoscalingFailover,
1075}
1076
1077impl Default for Autoscaling {
1078 fn default() -> Self {
1079 Self {
1080 failover: Default::default(),
1081 }
1082 }
1083}
1084
1085#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1086pub struct AutoscalingFailover {
1087 #[serde(default)]
1088 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1089 pub enabled: bool,
1090
1091 #[serde(default = "defaults::datadog_configuration_autoscaling_failover_metrics")]
1092 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1093 pub metrics: Vec<String>,
1094}
1095
1096impl Default for AutoscalingFailover {
1097 fn default() -> Self {
1098 Self {
1099 enabled: Default::default(),
1100 metrics: defaults::datadog_configuration_autoscaling_failover_metrics(),
1101 }
1102 }
1103}
1104
1105#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1106pub struct ClusterAgent {
1107 #[serde(default)]
1108 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1109 pub auth_token: String,
1110
1111 #[serde(default)]
1112 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1113 pub enabled: bool,
1114
1115 #[serde(
1116 default = "defaults::datadog_configuration_cluster_agent_kubernetes_service_name"
1117 )]
1118 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1119 pub kubernetes_service_name: String,
1120
1121 #[serde(default)]
1122 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1123 pub url: String,
1124}
1125
1126impl Default for ClusterAgent {
1127 fn default() -> Self {
1128 Self {
1129 auth_token: Default::default(),
1130 enabled: Default::default(),
1131 kubernetes_service_name: defaults::datadog_configuration_cluster_agent_kubernetes_service_name(),
1132 url: Default::default(),
1133 }
1134 }
1135}
1136
1137#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1138pub struct DataPlane {
1139 #[serde(default = "defaults::datadog_configuration_data_plane_api_listen_address")]
1140 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1141 pub api_listen_address: String,
1142
1143 #[serde(default)]
1144 pub dogstatsd: DataPlaneDogstatsd,
1145
1146 #[serde(default)]
1147 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1148 pub enabled: bool,
1149
1150 #[serde(default = "defaults::datadog_configuration_data_plane_log_file")]
1151 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1152 pub log_file: String,
1153
1154 #[serde(default)]
1155 pub otlp: DataPlaneOtlp,
1156
1157 #[serde(default = "defaults::default_bool::<true>")]
1158 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1159 pub remote_agent_enabled: bool,
1160
1161 #[serde(
1162 default = "defaults::datadog_configuration_data_plane_secure_api_listen_address"
1163 )]
1164 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1165 pub secure_api_listen_address: String,
1166
1167 #[serde(default = "defaults::default_u64::<i64, 3>")]
1168 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1169 pub serializer_zstd_compressor_level: i64,
1170
1171 #[serde(default = "defaults::default_u64::<i64, 4>")]
1172 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1173 pub stop_timeout: i64,
1174
1175 #[serde(default = "defaults::default_bool::<true>")]
1176 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1177 pub use_new_config_stream_endpoint: bool,
1178}
1179
1180impl Default for DataPlane {
1181 fn default() -> Self {
1182 Self {
1183 api_listen_address: defaults::datadog_configuration_data_plane_api_listen_address(),
1184 dogstatsd: Default::default(),
1185 enabled: Default::default(),
1186 log_file: defaults::datadog_configuration_data_plane_log_file(),
1187 otlp: Default::default(),
1188 remote_agent_enabled: defaults::default_bool::<true>(),
1189 secure_api_listen_address: defaults::datadog_configuration_data_plane_secure_api_listen_address(),
1190 serializer_zstd_compressor_level: defaults::default_u64::<i64, 3>(),
1191 stop_timeout: defaults::default_u64::<i64, 4>(),
1192 use_new_config_stream_endpoint: defaults::default_bool::<true>(),
1193 }
1194 }
1195}
1196
1197#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1198pub struct DataPlaneDogstatsd {
1199 #[serde(default = "defaults::default_u64::<i64, 100000>")]
1200 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1201 pub aggregator_tag_filter_cache_capacity: i64,
1202
1203 #[serde(default = "defaults::default_bool::<true>")]
1204 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1205 pub enabled: bool,
1206}
1207
1208impl Default for DataPlaneDogstatsd {
1209 fn default() -> Self {
1210 Self {
1211 aggregator_tag_filter_cache_capacity: defaults::default_u64::<i64, 100000>(),
1212 enabled: defaults::default_bool::<true>(),
1213 }
1214 }
1215}
1216
1217#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1218pub struct DataPlaneOtlp {
1219 #[serde(default)]
1220 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1221 pub enabled: bool,
1222
1223 #[serde(default)]
1224 pub proxy: DataPlaneOtlpProxy,
1225}
1226
1227impl Default for DataPlaneOtlp {
1228 fn default() -> Self {
1229 Self {
1230 enabled: Default::default(),
1231 proxy: Default::default(),
1232 }
1233 }
1234}
1235
1236#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1237pub struct DataPlaneOtlpProxy {
1238 #[serde(default)]
1239 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1240 pub enabled: bool,
1241
1242 #[serde(default)]
1243 pub logs: DataPlaneOtlpProxyLogs,
1244
1245 #[serde(default)]
1246 pub metrics: DataPlaneOtlpProxyMetrics,
1247
1248 #[serde(default)]
1249 pub receiver: DataPlaneOtlpProxyReceiver,
1250
1251 #[serde(default)]
1252 pub traces: DataPlaneOtlpProxyTraces,
1253}
1254
1255impl Default for DataPlaneOtlpProxy {
1256 fn default() -> Self {
1257 Self {
1258 enabled: Default::default(),
1259 logs: Default::default(),
1260 metrics: Default::default(),
1261 receiver: Default::default(),
1262 traces: Default::default(),
1263 }
1264 }
1265}
1266
1267#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1268pub struct DataPlaneOtlpProxyLogs {
1269 #[serde(default = "defaults::default_bool::<true>")]
1270 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1271 pub enabled: bool,
1272}
1273
1274impl Default for DataPlaneOtlpProxyLogs {
1275 fn default() -> Self {
1276 Self {
1277 enabled: defaults::default_bool::<true>(),
1278 }
1279 }
1280}
1281
1282#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1283pub struct DataPlaneOtlpProxyMetrics {
1284 #[serde(default = "defaults::default_bool::<true>")]
1285 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1286 pub enabled: bool,
1287}
1288
1289impl Default for DataPlaneOtlpProxyMetrics {
1290 fn default() -> Self {
1291 Self {
1292 enabled: defaults::default_bool::<true>(),
1293 }
1294 }
1295}
1296
1297#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1298pub struct DataPlaneOtlpProxyReceiver {
1299 #[serde(default)]
1300 pub protocols: DataPlaneOtlpProxyReceiverProtocols,
1301}
1302
1303impl Default for DataPlaneOtlpProxyReceiver {
1304 fn default() -> Self {
1305 Self {
1306 protocols: Default::default(),
1307 }
1308 }
1309}
1310
1311#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1312pub struct DataPlaneOtlpProxyReceiverProtocols {
1313 #[serde(default)]
1314 pub grpc: DataPlaneOtlpProxyReceiverProtocolsGrpc,
1315}
1316
1317impl Default for DataPlaneOtlpProxyReceiverProtocols {
1318 fn default() -> Self {
1319 Self { grpc: Default::default() }
1320 }
1321}
1322
1323#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1324pub struct DataPlaneOtlpProxyReceiverProtocolsGrpc {
1325 #[serde(
1326 default = "defaults::datadog_configuration_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint"
1327 )]
1328 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1329 pub endpoint: String,
1330}
1331
1332impl Default for DataPlaneOtlpProxyReceiverProtocolsGrpc {
1333 fn default() -> Self {
1334 Self {
1335 endpoint: defaults::datadog_configuration_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(),
1336 }
1337 }
1338}
1339
1340#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1341pub struct DataPlaneOtlpProxyTraces {
1342 #[serde(default = "defaults::default_bool::<true>")]
1343 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1344 pub enabled: bool,
1345}
1346
1347impl Default for DataPlaneOtlpProxyTraces {
1348 fn default() -> Self {
1349 Self {
1350 enabled: defaults::default_bool::<true>(),
1351 }
1352 }
1353}
1354
1355#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1356pub struct EnablePayloads {
1357 #[serde(default = "defaults::default_bool::<true>")]
1358 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1359 pub events: bool,
1360
1361 #[serde(default = "defaults::default_bool::<true>")]
1362 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1363 pub series: bool,
1364
1365 #[serde(default = "defaults::default_bool::<true>")]
1366 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1367 pub service_checks: bool,
1368
1369 #[serde(default = "defaults::default_bool::<true>")]
1370 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1371 pub sketches: bool,
1372}
1373
1374impl Default for EnablePayloads {
1375 fn default() -> Self {
1376 Self {
1377 events: defaults::default_bool::<true>(),
1378 series: defaults::default_bool::<true>(),
1379 service_checks: defaults::default_bool::<true>(),
1380 sketches: defaults::default_bool::<true>(),
1381 }
1382 }
1383}
1384
1385#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1386pub struct MultiRegionFailover {
1387 #[serde(default)]
1388 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1389 pub api_key: String,
1390
1391 #[serde(default)]
1392 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1393 pub dd_url: String,
1394
1395 #[serde(default)]
1396 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1397 pub enabled: bool,
1398
1399 #[serde(default)]
1400 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1401 pub failover_metrics: bool,
1402
1403 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1404 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1405 pub metric_allowlist: Vec<String>,
1406
1407 #[serde(default)]
1408 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1409 pub site: String,
1410}
1411
1412impl Default for MultiRegionFailover {
1413 fn default() -> Self {
1414 Self {
1415 api_key: Default::default(),
1416 dd_url: Default::default(),
1417 enabled: Default::default(),
1418 failover_metrics: Default::default(),
1419 metric_allowlist: Default::default(),
1420 site: Default::default(),
1421 }
1422 }
1423}
1424
1425#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1426pub struct ObservabilityPipelinesWorker {
1427 #[serde(default)]
1428 pub metrics: ObservabilityPipelinesWorkerMetrics,
1429}
1430
1431impl Default for ObservabilityPipelinesWorker {
1432 fn default() -> Self {
1433 Self {
1434 metrics: Default::default(),
1435 }
1436 }
1437}
1438
1439#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1440pub struct ObservabilityPipelinesWorkerMetrics {
1441 #[serde(default)]
1442 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1443 pub enabled: bool,
1444
1445 #[serde(default)]
1446 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1447 pub url: String,
1448
1449 #[serde(default)]
1450 pub use_v3_api: ObservabilityPipelinesWorkerMetricsUseV3Api,
1451}
1452
1453impl Default for ObservabilityPipelinesWorkerMetrics {
1454 fn default() -> Self {
1455 Self {
1456 enabled: Default::default(),
1457 url: Default::default(),
1458 use_v3_api: Default::default(),
1459 }
1460 }
1461}
1462
1463#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1464pub struct ObservabilityPipelinesWorkerMetricsUseV3Api {
1465 #[serde(default)]
1466 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1467 pub series: bool,
1468}
1469
1470impl Default for ObservabilityPipelinesWorkerMetricsUseV3Api {
1471 fn default() -> Self {
1472 Self { series: Default::default() }
1473 }
1474}
1475
1476#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1477pub struct OtlpConfig {
1478 #[serde(default)]
1479 pub logs: OtlpConfigLogs,
1480
1481 #[serde(default)]
1482 pub metrics: OtlpConfigMetrics,
1483
1484 #[serde(default)]
1485 pub receiver: OtlpConfigReceiver,
1486
1487 #[serde(default)]
1488 pub traces: OtlpConfigTraces,
1489}
1490
1491impl Default for OtlpConfig {
1492 fn default() -> Self {
1493 Self {
1494 logs: Default::default(),
1495 metrics: Default::default(),
1496 receiver: Default::default(),
1497 traces: Default::default(),
1498 }
1499 }
1500}
1501
1502#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1503pub struct OtlpConfigLogs {
1504 #[serde(default)]
1505 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1506 pub enabled: bool,
1507}
1508
1509impl Default for OtlpConfigLogs {
1510 fn default() -> Self {
1511 Self {
1512 enabled: Default::default(),
1513 }
1514 }
1515}
1516
1517#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1518pub struct OtlpConfigMetrics {
1519 #[serde(default = "defaults::default_u64::<i64, 3600>")]
1520 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1521 pub delta_ttl: i64,
1522
1523 #[serde(default = "defaults::default_bool::<true>")]
1524 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1525 pub enabled: bool,
1526
1527 #[serde(default)]
1528 pub histograms: OtlpConfigMetricsHistograms,
1529
1530 #[serde(default = "defaults::default_bool::<true>")]
1531 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1532 pub instrumentation_scope_metadata_as_tags: bool,
1533
1534 #[serde(default)]
1535 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1536 pub resource_attributes_as_tags: bool,
1537
1538 #[serde(default)]
1539 pub summaries: OtlpConfigMetricsSummaries,
1540
1541 #[serde(default)]
1542 pub sums: OtlpConfigMetricsSums,
1543
1544 #[serde(
1545 default = "defaults::datadog_configuration_otlp_config_metrics_tag_cardinality"
1546 )]
1547 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1548 pub tag_cardinality: String,
1549
1550 #[serde(default)]
1551 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1552 pub tags: String,
1553}
1554
1555impl Default for OtlpConfigMetrics {
1556 fn default() -> Self {
1557 Self {
1558 delta_ttl: defaults::default_u64::<i64, 3600>(),
1559 enabled: defaults::default_bool::<true>(),
1560 histograms: Default::default(),
1561 instrumentation_scope_metadata_as_tags: defaults::default_bool::<true>(),
1562 resource_attributes_as_tags: Default::default(),
1563 summaries: Default::default(),
1564 sums: Default::default(),
1565 tag_cardinality: defaults::datadog_configuration_otlp_config_metrics_tag_cardinality(),
1566 tags: Default::default(),
1567 }
1568 }
1569}
1570
1571#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1572pub struct OtlpConfigMetricsHistograms {
1573 #[serde(
1574 default = "defaults::datadog_configuration_otlp_config_metrics_histograms_mode"
1575 )]
1576 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1577 pub mode: String,
1578
1579 #[serde(default)]
1580 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1581 pub send_aggregation_metrics: bool,
1582}
1583
1584impl Default for OtlpConfigMetricsHistograms {
1585 fn default() -> Self {
1586 Self {
1587 mode: defaults::datadog_configuration_otlp_config_metrics_histograms_mode(),
1588 send_aggregation_metrics: Default::default(),
1589 }
1590 }
1591}
1592
1593#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1594pub struct OtlpConfigMetricsSummaries {
1595 #[serde(
1596 default = "defaults::datadog_configuration_otlp_config_metrics_summaries_mode"
1597 )]
1598 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1599 pub mode: String,
1600}
1601
1602impl Default for OtlpConfigMetricsSummaries {
1603 fn default() -> Self {
1604 Self {
1605 mode: defaults::datadog_configuration_otlp_config_metrics_summaries_mode(),
1606 }
1607 }
1608}
1609
1610#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1611pub struct OtlpConfigMetricsSums {
1612 #[serde(
1613 default = "defaults::datadog_configuration_otlp_config_metrics_sums_cumulative_monotonic_mode"
1614 )]
1615 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1616 pub cumulative_monotonic_mode: String,
1617
1618 #[serde(
1619 default = "defaults::datadog_configuration_otlp_config_metrics_sums_initial_cumulative_monotonic_value"
1620 )]
1621 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1622 pub initial_cumulative_monotonic_value: String,
1623}
1624
1625impl Default for OtlpConfigMetricsSums {
1626 fn default() -> Self {
1627 Self {
1628 cumulative_monotonic_mode: defaults::datadog_configuration_otlp_config_metrics_sums_cumulative_monotonic_mode(),
1629 initial_cumulative_monotonic_value: defaults::datadog_configuration_otlp_config_metrics_sums_initial_cumulative_monotonic_value(),
1630 }
1631 }
1632}
1633
1634#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1635pub struct OtlpConfigReceiver {
1636 #[serde(default)]
1637 pub protocols: OtlpConfigReceiverProtocols,
1638}
1639
1640impl Default for OtlpConfigReceiver {
1641 fn default() -> Self {
1642 Self {
1643 protocols: Default::default(),
1644 }
1645 }
1646}
1647
1648#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1649pub struct OtlpConfigReceiverProtocols {
1650 #[serde(default)]
1651 pub grpc: OtlpConfigReceiverProtocolsGrpc,
1652
1653 #[serde(default)]
1654 pub http: OtlpConfigReceiverProtocolsHttp,
1655}
1656
1657impl Default for OtlpConfigReceiverProtocols {
1658 fn default() -> Self {
1659 Self {
1660 grpc: Default::default(),
1661 http: Default::default(),
1662 }
1663 }
1664}
1665
1666#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1667pub struct OtlpConfigReceiverProtocolsGrpc {
1668 #[serde(
1669 default = "defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_endpoint"
1670 )]
1671 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1672 pub endpoint: String,
1673
1674 #[serde(default)]
1675 pub keepalive: OtlpConfigReceiverProtocolsGrpcKeepalive,
1676
1677 #[serde(default)]
1678 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1679 pub max_concurrent_streams: i64,
1680
1681 #[serde(default)]
1682 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1683 pub max_recv_msg_size_mib: i64,
1684
1685 #[serde(default)]
1686 pub tls: OtlpConfigReceiverProtocolsGrpcTls,
1687
1688 #[serde(
1689 default = "defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_transport"
1690 )]
1691 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1692 pub transport: String,
1693}
1694
1695impl Default for OtlpConfigReceiverProtocolsGrpc {
1696 fn default() -> Self {
1697 Self {
1698 endpoint: defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_endpoint(),
1699 keepalive: Default::default(),
1700 max_concurrent_streams: Default::default(),
1701 max_recv_msg_size_mib: Default::default(),
1702 tls: Default::default(),
1703 transport: defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_transport(),
1704 }
1705 }
1706}
1707
1708#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1709pub struct OtlpConfigReceiverProtocolsGrpcKeepalive {
1710 #[serde(default)]
1711 pub server_parameters: OtlpConfigReceiverProtocolsGrpcKeepaliveServerParameters,
1712}
1713
1714impl Default for OtlpConfigReceiverProtocolsGrpcKeepalive {
1715 fn default() -> Self {
1716 Self {
1717 server_parameters: Default::default(),
1718 }
1719 }
1720}
1721
1722#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1723pub struct OtlpConfigReceiverProtocolsGrpcKeepaliveServerParameters {
1724 #[serde(
1725 default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age",
1726
1727 deserialize_with = "crate::duration_de::deserialize_go_duration"
1728 )]
1729 pub max_connection_age: std::time::Duration,
1730
1731 #[serde(
1732 default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace",
1733
1734 deserialize_with = "crate::duration_de::deserialize_go_duration"
1735 )]
1736 pub max_connection_age_grace: std::time::Duration,
1737
1738 #[serde(
1739 default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time",
1740
1741 deserialize_with = "crate::duration_de::deserialize_go_duration"
1742 )]
1743 pub time: std::time::Duration,
1744
1745 #[serde(
1746 default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout",
1747
1748 deserialize_with = "crate::duration_de::deserialize_go_duration"
1749 )]
1750 pub timeout: std::time::Duration,
1751}
1752
1753impl Default for OtlpConfigReceiverProtocolsGrpcKeepaliveServerParameters {
1754 fn default() -> Self {
1755 Self {
1756 max_connection_age: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age(),
1757 max_connection_age_grace: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace(),
1758 time: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time(),
1759 timeout: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout(),
1760 }
1761 }
1762}
1763
1764#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1765pub struct OtlpConfigReceiverProtocolsGrpcTls {
1766 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1767 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1768 pub ca_file: Option<String>,
1769
1770 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1771 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1772 pub cert_file: Option<String>,
1773
1774 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1775 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1776 pub key_file: Option<String>,
1777}
1778
1779impl Default for OtlpConfigReceiverProtocolsGrpcTls {
1780 fn default() -> Self {
1781 Self {
1782 ca_file: Default::default(),
1783 cert_file: Default::default(),
1784 key_file: Default::default(),
1785 }
1786 }
1787}
1788
1789#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1790pub struct OtlpConfigReceiverProtocolsHttp {
1791 #[serde(default)]
1792 pub cors: OtlpConfigReceiverProtocolsHttpCors,
1793
1794 #[serde(
1795 default = "defaults::datadog_configuration_otlp_config_receiver_protocols_http_endpoint"
1796 )]
1797 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1798 pub endpoint: String,
1799
1800 #[serde(default)]
1801 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1802 pub max_request_body_size: i64,
1803
1804 #[serde(default)]
1805 pub tls: OtlpConfigReceiverProtocolsHttpTls,
1806}
1807
1808impl Default for OtlpConfigReceiverProtocolsHttp {
1809 fn default() -> Self {
1810 Self {
1811 cors: Default::default(),
1812 endpoint: defaults::datadog_configuration_otlp_config_receiver_protocols_http_endpoint(),
1813 max_request_body_size: Default::default(),
1814 tls: Default::default(),
1815 }
1816 }
1817}
1818
1819#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1820pub struct OtlpConfigReceiverProtocolsHttpCors {
1821 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1822 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1823 pub allowed_headers: Vec<String>,
1824
1825 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1826 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1827 pub allowed_origins: Vec<String>,
1828
1829 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1830 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1831 pub exposed_headers: Vec<String>,
1832
1833 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1834 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_i64")]
1835 pub max_age: Option<i64>,
1836}
1837
1838impl Default for OtlpConfigReceiverProtocolsHttpCors {
1839 fn default() -> Self {
1840 Self {
1841 allowed_headers: Default::default(),
1842 allowed_origins: Default::default(),
1843 exposed_headers: Default::default(),
1844 max_age: Default::default(),
1845 }
1846 }
1847}
1848
1849#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1850pub struct OtlpConfigReceiverProtocolsHttpTls {
1851 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1852 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1853 pub ca_file: Option<String>,
1854
1855 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1856 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1857 pub cert_file: Option<String>,
1858
1859 #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1860 #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1861 pub key_file: Option<String>,
1862}
1863
1864impl Default for OtlpConfigReceiverProtocolsHttpTls {
1865 fn default() -> Self {
1866 Self {
1867 ca_file: Default::default(),
1868 cert_file: Default::default(),
1869 key_file: Default::default(),
1870 }
1871 }
1872}
1873
1874#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1875pub struct OtlpConfigTraces {
1876 #[serde(default = "defaults::default_bool::<true>")]
1877 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1878 pub enabled: bool,
1879
1880 #[serde(default = "defaults::default_u64::<i64, 5003>")]
1881 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1882 pub internal_port: i64,
1883
1884 #[serde(default)]
1885 pub probabilistic_sampler: OtlpConfigTracesProbabilisticSampler,
1886}
1887
1888impl Default for OtlpConfigTraces {
1889 fn default() -> Self {
1890 Self {
1891 enabled: defaults::default_bool::<true>(),
1892 internal_port: defaults::default_u64::<i64, 5003>(),
1893 probabilistic_sampler: Default::default(),
1894 }
1895 }
1896}
1897
1898#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1899pub struct OtlpConfigTracesProbabilisticSampler {
1900 #[serde(
1901 default = "defaults::datadog_configuration_otlp_config_traces_probabilistic_sampler_sampling_percentage"
1902 )]
1903 #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
1904 pub sampling_percentage: f64,
1905}
1906
1907impl Default for OtlpConfigTracesProbabilisticSampler {
1908 fn default() -> Self {
1909 Self {
1910 sampling_percentage: defaults::datadog_configuration_otlp_config_traces_probabilistic_sampler_sampling_percentage(),
1911 }
1912 }
1913}
1914
1915#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1916pub struct Proxy {
1917 #[serde(default)]
1918 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1919 pub http: String,
1920
1921 #[serde(default)]
1922 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1923 pub https: String,
1924
1925 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1926 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1927 pub no_proxy: Vec<String>,
1928}
1929
1930impl Default for Proxy {
1931 fn default() -> Self {
1932 Self {
1933 http: Default::default(),
1934 https: Default::default(),
1935 no_proxy: Default::default(),
1936 }
1937 }
1938}
1939
1940#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1941pub struct SerializerExperimentalUseV3Api {
1942 #[serde(default)]
1943 #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1944 pub compression_level: i64,
1945
1946 #[serde(default)]
1947 pub sketches: SerializerExperimentalUseV3ApiSketches,
1948}
1949
1950impl Default for SerializerExperimentalUseV3Api {
1951 fn default() -> Self {
1952 Self {
1953 compression_level: Default::default(),
1954 sketches: Default::default(),
1955 }
1956 }
1957}
1958
1959#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1960pub struct SerializerExperimentalUseV3ApiSketches {
1961 #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1962 #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1963 pub endpoints: Vec<String>,
1964}
1965
1966impl Default for SerializerExperimentalUseV3ApiSketches {
1967 fn default() -> Self {
1968 Self {
1969 endpoints: Default::default(),
1970 }
1971 }
1972}
1973
1974#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1975pub struct Telemetry {
1976 #[serde(default)]
1977 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1978 pub dogstatsd_origin: bool,
1979}
1980
1981impl Default for Telemetry {
1982 fn default() -> Self {
1983 Self {
1984 dogstatsd_origin: Default::default(),
1985 }
1986 }
1987}
1988
1989#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1990pub struct UseV2Api {
1991 #[serde(default = "defaults::default_bool::<true>")]
1992 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1993 pub series: bool,
1994}
1995
1996impl Default for UseV2Api {
1997 fn default() -> Self {
1998 Self {
1999 series: defaults::default_bool::<true>(),
2000 }
2001 }
2002}
2003
2004#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2005pub struct UseV3Api {
2006 #[serde(default)]
2007 pub series: UseV3ApiSeries,
2008}
2009
2010impl Default for UseV3Api {
2011 fn default() -> Self {
2012 Self { series: Default::default() }
2013 }
2014}
2015
2016#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2017pub struct UseV3ApiSeries {
2018 #[serde(default = "defaults::datadog_configuration_use_v3_api_series_enabled")]
2019 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
2020 pub enabled: String,
2021
2022 #[serde(default, skip_serializing_if = ":: std :: collections :: HashMap::is_empty")]
2023 #[serde(deserialize_with = "crate::cast_de::deserialize_string_map")]
2024 pub endpoints: HashMap<String, String>,
2025}
2026
2027impl Default for UseV3ApiSeries {
2028 fn default() -> Self {
2029 Self {
2030 enabled: defaults::datadog_configuration_use_v3_api_series_enabled(),
2031 endpoints: Default::default(),
2032 }
2033 }
2034}
2035
2036#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2037pub struct Vector {
2038 #[serde(default)]
2039 pub metrics: VectorMetrics,
2040}
2041
2042impl Default for Vector {
2043 fn default() -> Self {
2044 Self {
2045 metrics: Default::default(),
2046 }
2047 }
2048}
2049
2050#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2051pub struct VectorMetrics {
2052 #[serde(default)]
2053 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2054 pub enabled: bool,
2055
2056 #[serde(default)]
2057 #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
2058 pub url: String,
2059
2060 #[serde(default)]
2061 pub use_v3_api: VectorMetricsUseV3Api,
2062}
2063
2064impl Default for VectorMetrics {
2065 fn default() -> Self {
2066 Self {
2067 enabled: Default::default(),
2068 url: Default::default(),
2069 use_v3_api: Default::default(),
2070 }
2071 }
2072}
2073
2074#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2075pub struct VectorMetricsUseV3Api {
2076 #[serde(default)]
2077 #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2078 pub series: bool,
2079}
2080
2081impl Default for VectorMetricsUseV3Api {
2082 fn default() -> Self {
2083 Self { series: Default::default() }
2084 }
2085}
2086
2087pub mod defaults {
2089 pub(super) fn default_bool<const V: bool>() -> bool {
2090 V
2091 }
2092 pub(super) fn default_i64<T, const V: i64>() -> T
2093 where
2094 T: TryFrom<i64>,
2095 <T as ::std::convert::TryFrom<i64>>::Error: ::std::fmt::Debug,
2096 {
2097 T::try_from(V).unwrap()
2098 }
2099 pub(super) fn default_u64<T, const V: u64>() -> T
2100 where
2101 T: TryFrom<u64>,
2102 <T as ::std::convert::TryFrom<u64>>::Error: ::std::fmt::Debug,
2103 {
2104 T::try_from(V).unwrap()
2105 }
2106 pub(super) fn datadog_configuration_container_cgroup_root() -> String {
2107 "/host/sys/fs/cgroup/".to_string()
2108 }
2109 pub(super) fn datadog_configuration_container_proc_root() -> String {
2110 "/host/proc".to_string()
2111 }
2112 pub(super) fn datadog_configuration_dd_url() -> String {
2113 "https://app.datadoghq.com".to_string()
2114 }
2115 pub(super) fn datadog_configuration_dogstatsd_log_file() -> String {
2116 "${log_path}/dogstatsd_info/dogstatsd-stats.log".to_string()
2117 }
2118 pub(super) fn datadog_configuration_dogstatsd_log_file_max_size() -> String {
2119 "10Mb".to_string()
2120 }
2121 pub(super) fn datadog_configuration_dogstatsd_tag_cardinality() -> String {
2122 "low".to_string()
2123 }
2124 pub(super) fn datadog_configuration_dogstatsd_windows_pipe_security_descriptor() -> String {
2125 "D:AI(A;;GA;;;WD)".to_string()
2126 }
2127 pub(super) fn datadog_configuration_forwarder_backoff_base() -> f64 {
2128 2_f64
2129 }
2130 pub(super) fn datadog_configuration_forwarder_backoff_factor() -> f64 {
2131 2_f64
2132 }
2133 pub(super) fn datadog_configuration_forwarder_backoff_max() -> f64 {
2134 64_f64
2135 }
2136 pub(super) fn datadog_configuration_forwarder_flush_to_disk_mem_ratio() -> f64 {
2137 0.5_f64
2138 }
2139 pub(super) fn datadog_configuration_forwarder_http_protocol() -> String {
2140 "auto".to_string()
2141 }
2142 pub(super) fn datadog_configuration_forwarder_storage_max_disk_ratio() -> f64 {
2143 0.8_f64
2144 }
2145 pub(super) fn datadog_configuration_forwarder_storage_path() -> String {
2146 "${run_path}/transactions_to_retry".to_string()
2147 }
2148 pub(super) fn datadog_configuration_histogram_aggregates() -> Vec<String> {
2149 vec![
2150 "max".to_string(),
2151 "median".to_string(),
2152 "avg".to_string(),
2153 "count".to_string(),
2154 ]
2155 }
2156 pub(super) fn datadog_configuration_histogram_percentiles() -> Vec<String> {
2157 vec!["0.95".to_string()]
2158 }
2159 pub(super) fn datadog_configuration_log_file_max_size() -> String {
2160 "10Mb".to_string()
2161 }
2162 pub(super) fn datadog_configuration_log_level() -> String {
2163 "info".to_string()
2164 }
2165 pub(super) fn datadog_configuration_min_tls_version() -> String {
2166 "tlsv1.2".to_string()
2167 }
2168 pub(super) fn datadog_configuration_run_path() -> String {
2169 "${run_path}".to_string()
2170 }
2171 pub(super) fn datadog_configuration_serializer_compressor_kind() -> String {
2172 "zstd".to_string()
2173 }
2174 pub(super) fn datadog_configuration_site() -> String {
2175 "datadoghq.com".to_string()
2176 }
2177 pub(super) fn datadog_configuration_statsd_metric_namespace_blacklist() -> Vec<
2178 String,
2179 > {
2180 vec![
2181 "datadog.agent".to_string(),
2182 "datadog.dogstatsd".to_string(),
2183 "datadog.process".to_string(),
2184 "datadog.trace_agent".to_string(),
2185 "datadog.tracer".to_string(),
2186 "activemq".to_string(),
2187 "activemq_58".to_string(),
2188 "airflow".to_string(),
2189 "cassandra".to_string(),
2190 "confluent".to_string(),
2191 "hazelcast".to_string(),
2192 "hive".to_string(),
2193 "ignite".to_string(),
2194 "jboss".to_string(),
2195 "jvm".to_string(),
2196 "kafka".to_string(),
2197 "presto".to_string(),
2198 "sidekiq".to_string(),
2199 "solr".to_string(),
2200 "tomcat".to_string(),
2201 "runtime".to_string(),
2202 ]
2203 }
2204 pub(super) fn datadog_configuration_apm_config_errors_per_second() -> f64 {
2205 10_f64
2206 }
2207 pub(super) fn datadog_configuration_apm_config_target_traces_per_second() -> f64 {
2208 10_f64
2209 }
2210 pub(super) fn datadog_configuration_apm_config_probabilistic_sampler_sampling_percentage() -> f64 {
2211 0_f64
2212 }
2213 pub(super) fn datadog_configuration_autoscaling_failover_metrics() -> Vec<String> {
2214 vec!["container.memory.usage".to_string(), "container.cpu.usage".to_string()]
2215 }
2216 pub(super) fn datadog_configuration_cluster_agent_kubernetes_service_name() -> String {
2217 "datadog-cluster-agent".to_string()
2218 }
2219 pub(super) fn datadog_configuration_data_plane_api_listen_address() -> String {
2220 "tcp://0.0.0.0:5100".to_string()
2221 }
2222 pub(super) fn datadog_configuration_data_plane_log_file() -> String {
2223 "${log_path}/agent-data-plane.log".to_string()
2224 }
2225 pub(super) fn datadog_configuration_data_plane_secure_api_listen_address() -> String {
2226 "tcp://0.0.0.0:5101".to_string()
2227 }
2228 pub(super) fn datadog_configuration_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint() -> String {
2229 "127.0.0.1:4319".to_string()
2230 }
2231 pub(super) fn datadog_configuration_otlp_config_metrics_tag_cardinality() -> String {
2232 "low".to_string()
2233 }
2234 pub(super) fn datadog_configuration_otlp_config_metrics_histograms_mode() -> String {
2235 "distributions".to_string()
2236 }
2237 pub(super) fn datadog_configuration_otlp_config_metrics_summaries_mode() -> String {
2238 "gauges".to_string()
2239 }
2240 pub(super) fn datadog_configuration_otlp_config_metrics_sums_cumulative_monotonic_mode() -> String {
2241 "to_delta".to_string()
2242 }
2243 pub(super) fn datadog_configuration_otlp_config_metrics_sums_initial_cumulative_monotonic_value() -> String {
2244 "auto".to_string()
2245 }
2246 pub(super) fn datadog_configuration_otlp_config_receiver_protocols_grpc_endpoint() -> String {
2247 "localhost:4317".to_string()
2248 }
2249 pub(super) fn datadog_configuration_otlp_config_receiver_protocols_grpc_transport() -> String {
2250 "tcp".to_string()
2251 }
2252 pub(super) fn datadog_configuration_otlp_config_receiver_protocols_http_endpoint() -> String {
2253 "localhost:4318".to_string()
2254 }
2255 pub(super) fn datadog_configuration_otlp_config_traces_probabilistic_sampler_sampling_percentage() -> f64 {
2256 100_f64
2257 }
2258 pub(super) fn datadog_configuration_use_v3_api_series_enabled() -> String {
2259 "datadog_only".to_string()
2260 }
2261}
2262
2263mod duration_defaults {
2264 pub(super) fn expected_tags_duration() -> std::time::Duration {
2265 std::time::Duration::from_nanos(0)
2266 }
2267 pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age() -> std::time::Duration {
2268 std::time::Duration::from_nanos(0)
2269 }
2270 pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace() -> std::time::Duration {
2271 std::time::Duration::from_nanos(0)
2272 }
2273 pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time() -> std::time::Duration {
2274 std::time::Duration::from_nanos(0)
2275 }
2276 pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout() -> std::time::Duration {
2277 std::time::Duration::from_nanos(0)
2278 }
2279 pub(super) fn tls_handshake_timeout() -> std::time::Duration {
2280 std::time::Duration::from_nanos(10000000000)
2281 }
2282}