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