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