1#![allow(clippy::all, dead_code, missing_docs, unused)]
4
5use std::collections::HashMap;
6
7use super::datadog_configuration::*;
8use crate::translate_error::{TranslateError, TranslateErrors};
9
10pub trait DatadogConfigWitness {
16 fn consume_additional_endpoints(&mut self, value: HashMap<String, Vec<String>>);
17 fn consume_agent_ipc_grpc_max_message_size(&mut self, value: i64);
18 fn consume_aggregator_stop_timeout(&mut self, value: i64);
19 fn consume_allow_arbitrary_tags(&mut self, value: bool);
20 fn consume_api_key(&mut self, value: String);
21 fn consume_apm_config_compute_stats_by_span_kind(&mut self, value: bool);
22 fn consume_apm_config_enable_rare_sampler(&mut self, value: bool);
23 fn consume_apm_config_error_tracking_standalone_enabled(&mut self, value: bool);
24 fn consume_apm_config_errors_per_second(&mut self, value: f64);
25 fn consume_apm_config_extra_sample_rate(&mut self, value: f64);
26 fn consume_apm_config_features(&mut self, value: Vec<String>);
27 fn consume_apm_config_max_catalog_entries(&mut self, value: i64);
28 fn consume_apm_config_max_traces_per_second(&mut self, value: f64);
29 fn consume_apm_config_obfuscation_credit_cards_enabled(&mut self, value: bool);
30 fn consume_apm_config_obfuscation_credit_cards_keep_values(&mut self, value: Vec<String>);
31 fn consume_apm_config_obfuscation_credit_cards_luhn(&mut self, value: bool);
32 fn consume_apm_config_obfuscation_elasticsearch_enabled(&mut self, value: bool);
33 fn consume_apm_config_obfuscation_elasticsearch_keep_values(&mut self, value: Vec<String>);
34 fn consume_apm_config_obfuscation_elasticsearch_obfuscate_sql_values(&mut self, value: Vec<String>);
35 fn consume_apm_config_obfuscation_http_remove_paths_with_digits(&mut self, value: bool);
36 fn consume_apm_config_obfuscation_http_remove_query_string(&mut self, value: bool);
37 fn consume_apm_config_obfuscation_memcached_enabled(&mut self, value: bool);
38 fn consume_apm_config_obfuscation_memcached_keep_command(&mut self, value: bool);
39 fn consume_apm_config_obfuscation_mongodb_enabled(&mut self, value: bool);
40 fn consume_apm_config_obfuscation_mongodb_keep_values(&mut self, value: Vec<String>);
41 fn consume_apm_config_obfuscation_mongodb_obfuscate_sql_values(&mut self, value: Vec<String>);
42 fn consume_apm_config_obfuscation_opensearch_enabled(&mut self, value: bool);
43 fn consume_apm_config_obfuscation_opensearch_keep_values(&mut self, value: Vec<String>);
44 fn consume_apm_config_obfuscation_opensearch_obfuscate_sql_values(&mut self, value: Vec<String>);
45 fn consume_apm_config_obfuscation_redis_enabled(&mut self, value: bool);
46 fn consume_apm_config_obfuscation_redis_remove_all_args(&mut self, value: bool);
47 fn consume_apm_config_obfuscation_valkey_enabled(&mut self, value: bool);
48 fn consume_apm_config_obfuscation_valkey_remove_all_args(&mut self, value: bool);
49 fn consume_apm_config_peer_tags(&mut self, value: Vec<String>);
50 fn consume_apm_config_peer_tags_aggregation(&mut self, value: bool);
51 fn consume_apm_config_probabilistic_sampler_enabled(&mut self, value: bool);
52 fn consume_apm_config_probabilistic_sampler_hash_seed(&mut self, value: i64);
53 fn consume_apm_config_probabilistic_sampler_sampling_percentage(&mut self, value: f64);
54 fn consume_apm_config_replace_tags(&mut self, value: Vec<HashMap<String, String>>);
55 fn consume_apm_config_target_traces_per_second(&mut self, value: f64);
56 fn consume_auth_token_file_path(&mut self, value: String);
57 fn consume_autoscaling_failover_enabled(&mut self, value: bool);
58 fn consume_autoscaling_failover_metrics(&mut self, value: Vec<String>);
59 fn consume_basic_telemetry_add_container_tags(&mut self, value: bool);
60 fn consume_bind_host(&mut self, value: String);
61 fn consume_cluster_agent_auth_token(&mut self, value: String);
62 fn consume_cluster_agent_enabled(&mut self, value: bool);
63 fn consume_cluster_agent_kubernetes_service_name(&mut self, value: String);
64 fn consume_cluster_agent_url(&mut self, value: String);
65 fn consume_cluster_name(&mut self, value: String);
66 fn consume_cmd_port(&mut self, value: i64);
67 fn consume_container_cgroup_root(&mut self, value: String);
68 fn consume_container_proc_root(&mut self, value: String);
69 fn consume_cri_connection_timeout(&mut self, value: i64);
70 fn consume_cri_query_timeout(&mut self, value: i64);
71 fn consume_cri_socket_path(&mut self, value: String);
72 fn consume_data_plane_api_listen_address(&mut self, value: String);
73 fn consume_data_plane_dogstatsd_aggregator_tag_filter_cache_capacity(&mut self, value: i64);
74 fn consume_data_plane_dogstatsd_enabled(&mut self, value: bool);
75 fn consume_data_plane_enabled(&mut self, value: bool);
76 fn consume_data_plane_log_file(&mut self, value: String);
77 fn consume_data_plane_otlp_enabled(&mut self, value: bool);
78 fn consume_data_plane_otlp_proxy_enabled(&mut self, value: bool);
79 fn consume_data_plane_otlp_proxy_logs_enabled(&mut self, value: bool);
80 fn consume_data_plane_otlp_proxy_metrics_enabled(&mut self, value: bool);
81 fn consume_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(&mut self, value: String);
82 fn consume_data_plane_otlp_proxy_traces_enabled(&mut self, value: bool);
83 fn consume_data_plane_remote_agent_enabled(&mut self, value: bool);
84 fn consume_data_plane_secure_api_listen_address(&mut self, value: String);
85 fn consume_data_plane_serializer_zstd_compressor_level(&mut self, value: i64);
86 fn consume_data_plane_stop_timeout(&mut self, value: i64);
87 fn consume_data_plane_use_new_config_stream_endpoint(&mut self, value: bool);
88 fn consume_dd_url(&mut self, value: String);
89 fn consume_disable_file_logging(&mut self, value: bool);
90 fn consume_dogstatsd_buffer_size(&mut self, value: i64);
91 fn consume_dogstatsd_capture_depth(&mut self, value: i64);
92 fn consume_dogstatsd_capture_path(&mut self, value: String);
93 fn consume_dogstatsd_context_expiry_seconds(&mut self, value: i64);
94 fn consume_dogstatsd_disable_verbose_logs(&mut self, value: bool);
95 fn consume_dogstatsd_entity_id_precedence(&mut self, value: bool);
96 fn consume_dogstatsd_eol_required(&mut self, value: Vec<String>);
97 fn consume_dogstatsd_expiry_seconds(&mut self, value: i64);
98 fn consume_dogstatsd_flush_incomplete_buckets(&mut self, value: bool);
99 fn consume_dogstatsd_log_file(&mut self, value: String);
100 fn consume_dogstatsd_log_file_max_rolls(&mut self, value: i64);
101 fn consume_dogstatsd_log_file_max_size(&mut self, value: String);
102 fn consume_dogstatsd_logging_enabled(&mut self, value: bool);
103 fn consume_dogstatsd_mapper_cache_size(&mut self, value: i64);
104 fn consume_dogstatsd_mapper_profiles(&mut self, value: Vec<::serde_json::Value>);
105 fn consume_dogstatsd_metrics_stats_enable(&mut self, value: bool);
106 fn consume_dogstatsd_no_aggregation_pipeline(&mut self, value: bool);
107 fn consume_dogstatsd_non_local_traffic(&mut self, value: bool);
108 fn consume_dogstatsd_origin_detection(&mut self, value: bool);
109 fn consume_dogstatsd_origin_detection_client(&mut self, value: bool);
110 fn consume_dogstatsd_origin_optout_enabled(&mut self, value: bool);
111 fn consume_dogstatsd_pipe_name(&mut self, value: String);
112 fn consume_dogstatsd_port(&mut self, value: i64);
113 fn consume_dogstatsd_so_rcvbuf(&mut self, value: i64);
114 fn consume_dogstatsd_socket(&mut self, value: Option<String>);
115 fn consume_dogstatsd_stream_log_too_big(&mut self, value: bool);
116 fn consume_dogstatsd_stream_socket(&mut self, value: String);
117 fn consume_dogstatsd_string_interner_size(&mut self, value: i64);
118 fn consume_dogstatsd_tag_cardinality(&mut self, value: String);
119 fn consume_dogstatsd_tags(&mut self, value: Vec<String>);
120 fn consume_dogstatsd_windows_pipe_security_descriptor(&mut self, value: String);
121 fn consume_dogstatsd_workers_count(&mut self, value: i64);
122 fn consume_eks_fargate(&mut self, value: bool);
123 fn consume_enable_payloads_events(&mut self, value: bool);
124 fn consume_enable_payloads_series(&mut self, value: bool);
125 fn consume_enable_payloads_service_checks(&mut self, value: bool);
126 fn consume_enable_payloads_sketches(&mut self, value: bool);
127 fn consume_env(&mut self, value: String);
128 fn consume_expected_tags_duration(&mut self, value: std::time::Duration);
129 fn consume_extra_tags(&mut self, value: Vec<String>);
130 fn consume_forwarder_apikey_validation_interval(&mut self, value: i64);
131 fn consume_forwarder_backoff_base(&mut self, value: f64);
132 fn consume_forwarder_backoff_factor(&mut self, value: f64);
133 fn consume_forwarder_backoff_max(&mut self, value: f64);
134 fn consume_forwarder_connection_reset_interval(&mut self, value: i64);
135 fn consume_forwarder_flush_to_disk_mem_ratio(&mut self, value: f64);
136 fn consume_forwarder_high_prio_buffer_size(&mut self, value: i64);
137 fn consume_forwarder_http_protocol(&mut self, value: String);
138 fn consume_forwarder_max_concurrent_requests(&mut self, value: i64);
139 fn consume_forwarder_num_workers(&mut self, value: i64);
140 fn consume_forwarder_outdated_file_in_days(&mut self, value: i64);
141 fn consume_forwarder_recovery_interval(&mut self, value: i64);
142 fn consume_forwarder_recovery_reset(&mut self, value: bool);
143 fn consume_forwarder_retry_queue_capacity_time_interval_sec(&mut self, value: i64);
144 fn consume_forwarder_retry_queue_max_size(&mut self, value: i64);
145 fn consume_forwarder_retry_queue_payloads_max_size(&mut self, value: i64);
146 fn consume_forwarder_stop_timeout(&mut self, value: i64);
147 fn consume_forwarder_storage_max_disk_ratio(&mut self, value: f64);
148 fn consume_forwarder_storage_max_size_in_bytes(&mut self, value: i64);
149 fn consume_forwarder_storage_path(&mut self, value: String);
150 fn consume_forwarder_timeout(&mut self, value: i64);
151 fn consume_histogram_aggregates(&mut self, value: Vec<String>);
152 fn consume_histogram_copy_to_distribution(&mut self, value: bool);
153 fn consume_histogram_copy_to_distribution_prefix(&mut self, value: String);
154 fn consume_histogram_percentiles(&mut self, value: Vec<String>);
155 fn consume_hostname(&mut self, value: String);
156 fn consume_ipc_cert_file_path(&mut self, value: String);
157 fn consume_kubernetes_kubelet_nodename(&mut self, value: String);
158 fn consume_log_file_max_rolls(&mut self, value: i64);
159 fn consume_log_file_max_size(&mut self, value: String);
160 fn consume_log_format_json(&mut self, value: bool);
161 fn consume_log_format_rfc3339(&mut self, value: bool);
162 fn consume_log_level(&mut self, value: String);
163 fn consume_log_payloads(&mut self, value: bool);
164 fn consume_log_to_console(&mut self, value: bool);
165 fn consume_log_to_syslog(&mut self, value: bool);
166 fn consume_metric_filterlist(&mut self, value: Vec<String>);
167 fn consume_metric_filterlist_match_prefix(&mut self, value: bool);
168 fn consume_metric_tag_filterlist(&mut self, value: Vec<::serde_json::Value>);
169 fn consume_min_tls_version(&mut self, value: String);
170 fn consume_multi_region_failover_api_key(&mut self, value: String);
171 fn consume_multi_region_failover_dd_url(&mut self, value: String);
172 fn consume_multi_region_failover_enabled(&mut self, value: bool);
173 fn consume_multi_region_failover_failover_metrics(&mut self, value: bool);
174 fn consume_multi_region_failover_metric_allowlist(&mut self, value: Vec<String>);
175 fn consume_multi_region_failover_site(&mut self, value: String);
176 fn consume_no_proxy_nonexact_match(&mut self, value: bool);
177 fn consume_observability_pipelines_worker_metrics_enabled(&mut self, value: bool);
178 fn consume_observability_pipelines_worker_metrics_url(&mut self, value: String);
179 fn consume_observability_pipelines_worker_metrics_use_v3_api_series(&mut self, value: bool);
180 fn consume_origin_detection_unified(&mut self, value: bool);
181 fn consume_otlp_config_logs_enabled(&mut self, value: bool);
182 fn consume_otlp_config_metrics_delta_ttl(&mut self, value: i64);
183 fn consume_otlp_config_metrics_enabled(&mut self, value: bool);
184 fn consume_otlp_config_metrics_histograms_mode(&mut self, value: String);
185 fn consume_otlp_config_metrics_histograms_send_aggregation_metrics(&mut self, value: bool);
186 fn consume_otlp_config_metrics_instrumentation_scope_metadata_as_tags(&mut self, value: bool);
187 fn consume_otlp_config_metrics_resource_attributes_as_tags(&mut self, value: bool);
188 fn consume_otlp_config_metrics_summaries_mode(&mut self, value: String);
189 fn consume_otlp_config_metrics_sums_cumulative_monotonic_mode(&mut self, value: String);
190 fn consume_otlp_config_metrics_sums_initial_cumulative_monotonic_value(&mut self, value: String);
191 fn consume_otlp_config_metrics_tag_cardinality(&mut self, value: String);
192 fn consume_otlp_config_metrics_tags(&mut self, value: String);
193 fn consume_otlp_config_receiver_protocols_grpc_endpoint(&mut self, value: String);
194 fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age(
195 &mut self, value: std::time::Duration,
196 );
197 fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace(
198 &mut self, value: std::time::Duration,
199 );
200 fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time(
201 &mut self, value: std::time::Duration,
202 );
203 fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout(
204 &mut self, value: std::time::Duration,
205 );
206 fn consume_otlp_config_receiver_protocols_grpc_max_concurrent_streams(&mut self, value: i64);
207 fn consume_otlp_config_receiver_protocols_grpc_max_recv_msg_size_mib(&mut self, value: i64);
208 fn consume_otlp_config_receiver_protocols_grpc_tls_ca_file(&mut self, value: Option<String>);
209 fn consume_otlp_config_receiver_protocols_grpc_tls_cert_file(&mut self, value: Option<String>);
210 fn consume_otlp_config_receiver_protocols_grpc_tls_key_file(&mut self, value: Option<String>);
211 fn consume_otlp_config_receiver_protocols_grpc_transport(&mut self, value: String);
212 fn consume_otlp_config_receiver_protocols_http_cors_allowed_headers(&mut self, value: Vec<String>);
213 fn consume_otlp_config_receiver_protocols_http_cors_allowed_origins(&mut self, value: Vec<String>);
214 fn consume_otlp_config_receiver_protocols_http_cors_exposed_headers(&mut self, value: Vec<String>);
215 fn consume_otlp_config_receiver_protocols_http_cors_max_age(&mut self, value: Option<i64>);
216 fn consume_otlp_config_receiver_protocols_http_endpoint(&mut self, value: String);
217 fn consume_otlp_config_receiver_protocols_http_max_request_body_size(&mut self, value: i64);
218 fn consume_otlp_config_receiver_protocols_http_tls_ca_file(&mut self, value: Option<String>);
219 fn consume_otlp_config_receiver_protocols_http_tls_cert_file(&mut self, value: Option<String>);
220 fn consume_otlp_config_receiver_protocols_http_tls_key_file(&mut self, value: Option<String>);
221 fn consume_otlp_config_traces_enabled(&mut self, value: bool);
222 fn consume_otlp_config_traces_internal_port(&mut self, value: i64);
223 fn consume_otlp_config_traces_probabilistic_sampler_sampling_percentage(&mut self, value: f64);
224 fn consume_provider_kind(&mut self, value: String);
225 fn consume_proxy_http(&mut self, value: String);
226 fn consume_proxy_https(&mut self, value: String);
227 fn consume_proxy_no_proxy(&mut self, value: Vec<String>);
228 fn consume_run_path(&mut self, value: String);
229 fn consume_secret_backend_command(&mut self, value: String);
230 fn consume_secret_refresh_on_api_key_failure_interval(&mut self, value: i64);
231 fn consume_serializer_compressor_kind(&mut self, value: String);
232 fn consume_serializer_experimental_use_v3_api_compression_level(&mut self, value: i64);
233 fn consume_serializer_experimental_use_v3_api_sketches_endpoints(&mut self, value: Vec<String>);
234 fn consume_serializer_max_payload_size(&mut self, value: i64);
235 fn consume_serializer_max_series_payload_size(&mut self, value: i64);
236 fn consume_serializer_max_series_points_per_payload(&mut self, value: i64);
237 fn consume_serializer_max_series_uncompressed_payload_size(&mut self, value: i64);
238 fn consume_serializer_max_uncompressed_payload_size(&mut self, value: i64);
239 fn consume_serializer_zstd_compressor_level(&mut self, value: i64);
240 fn consume_site(&mut self, value: String);
241 fn consume_skip_ssl_validation(&mut self, value: bool);
242 fn consume_sslkeylogfile(&mut self, value: String);
243 fn consume_statsd_forward_host(&mut self, value: String);
244 fn consume_statsd_forward_port(&mut self, value: i64);
245 fn consume_statsd_metric_blocklist(&mut self, value: Vec<String>);
246 fn consume_statsd_metric_blocklist_match_prefix(&mut self, value: bool);
247 fn consume_statsd_metric_namespace(&mut self, value: String);
248 fn consume_statsd_metric_namespace_blacklist(&mut self, value: Vec<String>);
249 fn consume_syslog_rfc(&mut self, value: bool);
250 fn consume_syslog_uri(&mut self, value: String);
251 fn consume_tags(&mut self, value: Vec<String>);
252 fn consume_telemetry_dogstatsd_origin(&mut self, value: bool);
253 fn consume_tls_handshake_timeout(&mut self, value: std::time::Duration);
254 fn consume_use_proxy_for_cloud_metadata(&mut self, value: bool);
255 fn consume_use_v2_api_series(&mut self, value: bool);
256 fn consume_use_v3_api_series_enabled(&mut self, value: String);
257 fn consume_use_v3_api_series_endpoints(&mut self, value: HashMap<String, String>);
258 fn consume_vector_metrics_enabled(&mut self, value: bool);
259 fn consume_vector_metrics_url(&mut self, value: String);
260 fn consume_vector_metrics_use_v3_api_series(&mut self, value: bool);
261 fn consume_vsock_addr(&mut self, value: String);
262
263 fn translate_errors(&mut self) -> Vec<TranslateError> {
265 Vec::new()
266 }
267}
268
269pub fn drive(config: &DatadogConfiguration, consumer: &mut impl DatadogConfigWitness) -> Result<(), TranslateErrors> {
276 consumer.consume_additional_endpoints(config.additional_endpoints.clone());
277 consumer.consume_agent_ipc_grpc_max_message_size(config.agent_ipc.grpc_max_message_size.clone());
278 consumer.consume_aggregator_stop_timeout(config.aggregator_stop_timeout.clone());
279 consumer.consume_allow_arbitrary_tags(config.allow_arbitrary_tags.clone());
280 consumer.consume_api_key(config.api_key.clone());
281 consumer.consume_apm_config_compute_stats_by_span_kind(config.apm_config.compute_stats_by_span_kind.clone());
282 consumer.consume_apm_config_enable_rare_sampler(config.apm_config.enable_rare_sampler.clone());
283 consumer.consume_apm_config_error_tracking_standalone_enabled(
284 config.apm_config.error_tracking_standalone.enabled.clone(),
285 );
286 consumer.consume_apm_config_errors_per_second(config.apm_config.errors_per_second.clone());
287 consumer.consume_apm_config_extra_sample_rate(config.apm_config.extra_sample_rate.clone());
288 consumer.consume_apm_config_features(config.apm_config.features.clone());
289 consumer.consume_apm_config_max_catalog_entries(config.apm_config.max_catalog_entries.clone());
290 consumer.consume_apm_config_max_traces_per_second(config.apm_config.max_traces_per_second.clone());
291 consumer.consume_apm_config_obfuscation_credit_cards_enabled(
292 config.apm_config.obfuscation.credit_cards.enabled.clone(),
293 );
294 consumer.consume_apm_config_obfuscation_credit_cards_keep_values(
295 config.apm_config.obfuscation.credit_cards.keep_values.clone(),
296 );
297 consumer.consume_apm_config_obfuscation_credit_cards_luhn(config.apm_config.obfuscation.credit_cards.luhn.clone());
298 consumer.consume_apm_config_obfuscation_elasticsearch_enabled(
299 config.apm_config.obfuscation.elasticsearch.enabled.clone(),
300 );
301 consumer.consume_apm_config_obfuscation_elasticsearch_keep_values(
302 config.apm_config.obfuscation.elasticsearch.keep_values.clone(),
303 );
304 consumer.consume_apm_config_obfuscation_elasticsearch_obfuscate_sql_values(
305 config.apm_config.obfuscation.elasticsearch.obfuscate_sql_values.clone(),
306 );
307 consumer.consume_apm_config_obfuscation_http_remove_paths_with_digits(
308 config.apm_config.obfuscation.http.remove_paths_with_digits.clone(),
309 );
310 consumer.consume_apm_config_obfuscation_http_remove_query_string(
311 config.apm_config.obfuscation.http.remove_query_string.clone(),
312 );
313 consumer.consume_apm_config_obfuscation_memcached_enabled(config.apm_config.obfuscation.memcached.enabled.clone());
314 consumer.consume_apm_config_obfuscation_memcached_keep_command(
315 config.apm_config.obfuscation.memcached.keep_command.clone(),
316 );
317 consumer.consume_apm_config_obfuscation_mongodb_enabled(config.apm_config.obfuscation.mongodb.enabled.clone());
318 consumer
319 .consume_apm_config_obfuscation_mongodb_keep_values(config.apm_config.obfuscation.mongodb.keep_values.clone());
320 consumer.consume_apm_config_obfuscation_mongodb_obfuscate_sql_values(
321 config.apm_config.obfuscation.mongodb.obfuscate_sql_values.clone(),
322 );
323 consumer
324 .consume_apm_config_obfuscation_opensearch_enabled(config.apm_config.obfuscation.opensearch.enabled.clone());
325 consumer.consume_apm_config_obfuscation_opensearch_keep_values(
326 config.apm_config.obfuscation.opensearch.keep_values.clone(),
327 );
328 consumer.consume_apm_config_obfuscation_opensearch_obfuscate_sql_values(
329 config.apm_config.obfuscation.opensearch.obfuscate_sql_values.clone(),
330 );
331 consumer.consume_apm_config_obfuscation_redis_enabled(config.apm_config.obfuscation.redis.enabled.clone());
332 consumer.consume_apm_config_obfuscation_redis_remove_all_args(
333 config.apm_config.obfuscation.redis.remove_all_args.clone(),
334 );
335 consumer.consume_apm_config_obfuscation_valkey_enabled(config.apm_config.obfuscation.valkey.enabled.clone());
336 consumer.consume_apm_config_obfuscation_valkey_remove_all_args(
337 config.apm_config.obfuscation.valkey.remove_all_args.clone(),
338 );
339 consumer.consume_apm_config_peer_tags(config.apm_config.peer_tags.clone());
340 consumer.consume_apm_config_peer_tags_aggregation(config.apm_config.peer_tags_aggregation.clone());
341 consumer.consume_apm_config_probabilistic_sampler_enabled(config.apm_config.probabilistic_sampler.enabled.clone());
342 consumer
343 .consume_apm_config_probabilistic_sampler_hash_seed(config.apm_config.probabilistic_sampler.hash_seed.clone());
344 consumer.consume_apm_config_probabilistic_sampler_sampling_percentage(
345 config.apm_config.probabilistic_sampler.sampling_percentage.clone(),
346 );
347 consumer.consume_apm_config_replace_tags(config.apm_config.replace_tags.clone());
348 consumer.consume_apm_config_target_traces_per_second(config.apm_config.target_traces_per_second.clone());
349 consumer.consume_auth_token_file_path(config.auth_token_file_path.clone());
350 consumer.consume_autoscaling_failover_enabled(config.autoscaling.failover.enabled.clone());
351 consumer.consume_autoscaling_failover_metrics(config.autoscaling.failover.metrics.clone());
352 consumer.consume_basic_telemetry_add_container_tags(config.basic_telemetry_add_container_tags.clone());
353 consumer.consume_bind_host(config.bind_host.clone());
354 consumer.consume_cluster_agent_auth_token(config.cluster_agent.auth_token.clone());
355 consumer.consume_cluster_agent_enabled(config.cluster_agent.enabled.clone());
356 consumer.consume_cluster_agent_kubernetes_service_name(config.cluster_agent.kubernetes_service_name.clone());
357 consumer.consume_cluster_agent_url(config.cluster_agent.url.clone());
358 consumer.consume_cluster_name(config.cluster_name.clone());
359 consumer.consume_cmd_port(config.cmd_port.clone());
360 consumer.consume_container_cgroup_root(config.container_cgroup_root.clone());
361 consumer.consume_container_proc_root(config.container_proc_root.clone());
362 consumer.consume_cri_connection_timeout(config.cri_connection_timeout.clone());
363 consumer.consume_cri_query_timeout(config.cri_query_timeout.clone());
364 consumer.consume_cri_socket_path(config.cri_socket_path.clone());
365 consumer.consume_data_plane_api_listen_address(config.data_plane.api_listen_address.clone());
366 consumer.consume_data_plane_dogstatsd_aggregator_tag_filter_cache_capacity(
367 config.data_plane.dogstatsd.aggregator_tag_filter_cache_capacity.clone(),
368 );
369 consumer.consume_data_plane_dogstatsd_enabled(config.data_plane.dogstatsd.enabled.clone());
370 consumer.consume_data_plane_enabled(config.data_plane.enabled.clone());
371 consumer.consume_data_plane_log_file(config.data_plane.log_file.clone());
372 consumer.consume_data_plane_otlp_enabled(config.data_plane.otlp.enabled.clone());
373 consumer.consume_data_plane_otlp_proxy_enabled(config.data_plane.otlp.proxy.enabled.clone());
374 consumer.consume_data_plane_otlp_proxy_logs_enabled(config.data_plane.otlp.proxy.logs.enabled.clone());
375 consumer.consume_data_plane_otlp_proxy_metrics_enabled(config.data_plane.otlp.proxy.metrics.enabled.clone());
376 consumer.consume_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(
377 config.data_plane.otlp.proxy.receiver.protocols.grpc.endpoint.clone(),
378 );
379 consumer.consume_data_plane_otlp_proxy_traces_enabled(config.data_plane.otlp.proxy.traces.enabled.clone());
380 consumer.consume_data_plane_remote_agent_enabled(config.data_plane.remote_agent_enabled.clone());
381 consumer.consume_data_plane_secure_api_listen_address(config.data_plane.secure_api_listen_address.clone());
382 consumer.consume_data_plane_serializer_zstd_compressor_level(
383 config.data_plane.serializer_zstd_compressor_level.clone(),
384 );
385 consumer.consume_data_plane_stop_timeout(config.data_plane.stop_timeout.clone());
386 consumer
387 .consume_data_plane_use_new_config_stream_endpoint(config.data_plane.use_new_config_stream_endpoint.clone());
388 consumer.consume_dd_url(config.dd_url.clone());
389 consumer.consume_disable_file_logging(config.disable_file_logging.clone());
390 consumer.consume_dogstatsd_buffer_size(config.dogstatsd_buffer_size.clone());
391 consumer.consume_dogstatsd_capture_depth(config.dogstatsd_capture_depth.clone());
392 consumer.consume_dogstatsd_capture_path(config.dogstatsd_capture_path.clone());
393 consumer.consume_dogstatsd_context_expiry_seconds(config.dogstatsd_context_expiry_seconds.clone());
394 consumer.consume_dogstatsd_disable_verbose_logs(config.dogstatsd_disable_verbose_logs.clone());
395 consumer.consume_dogstatsd_entity_id_precedence(config.dogstatsd_entity_id_precedence.clone());
396 consumer.consume_dogstatsd_eol_required(config.dogstatsd_eol_required.clone());
397 consumer.consume_dogstatsd_expiry_seconds(config.dogstatsd_expiry_seconds.clone());
398 consumer.consume_dogstatsd_flush_incomplete_buckets(config.dogstatsd_flush_incomplete_buckets.clone());
399 consumer.consume_dogstatsd_log_file(config.dogstatsd_log_file.clone());
400 consumer.consume_dogstatsd_log_file_max_rolls(config.dogstatsd_log_file_max_rolls.clone());
401 consumer.consume_dogstatsd_log_file_max_size(config.dogstatsd_log_file_max_size.clone());
402 consumer.consume_dogstatsd_logging_enabled(config.dogstatsd_logging_enabled.clone());
403 consumer.consume_dogstatsd_mapper_cache_size(config.dogstatsd_mapper_cache_size.clone());
404 consumer.consume_dogstatsd_mapper_profiles(config.dogstatsd_mapper_profiles.clone());
405 consumer.consume_dogstatsd_metrics_stats_enable(config.dogstatsd_metrics_stats_enable.clone());
406 consumer.consume_dogstatsd_no_aggregation_pipeline(config.dogstatsd_no_aggregation_pipeline.clone());
407 consumer.consume_dogstatsd_non_local_traffic(config.dogstatsd_non_local_traffic.clone());
408 consumer.consume_dogstatsd_origin_detection(config.dogstatsd_origin_detection.clone());
409 consumer.consume_dogstatsd_origin_detection_client(config.dogstatsd_origin_detection_client.clone());
410 consumer.consume_dogstatsd_origin_optout_enabled(config.dogstatsd_origin_optout_enabled.clone());
411 consumer.consume_dogstatsd_pipe_name(config.dogstatsd_pipe_name.clone());
412 consumer.consume_dogstatsd_port(config.dogstatsd_port.clone());
413 consumer.consume_dogstatsd_so_rcvbuf(config.dogstatsd_so_rcvbuf.clone());
414 consumer.consume_dogstatsd_socket(config.dogstatsd_socket.clone());
415 consumer.consume_dogstatsd_stream_log_too_big(config.dogstatsd_stream_log_too_big.clone());
416 consumer.consume_dogstatsd_stream_socket(config.dogstatsd_stream_socket.clone());
417 consumer.consume_dogstatsd_string_interner_size(config.dogstatsd_string_interner_size.clone());
418 consumer.consume_dogstatsd_tag_cardinality(config.dogstatsd_tag_cardinality.clone());
419 consumer.consume_dogstatsd_tags(config.dogstatsd_tags.clone());
420 consumer
421 .consume_dogstatsd_windows_pipe_security_descriptor(config.dogstatsd_windows_pipe_security_descriptor.clone());
422 consumer.consume_dogstatsd_workers_count(config.dogstatsd_workers_count.clone());
423 consumer.consume_eks_fargate(config.eks_fargate.clone());
424 consumer.consume_enable_payloads_events(config.enable_payloads.events.clone());
425 consumer.consume_enable_payloads_series(config.enable_payloads.series.clone());
426 consumer.consume_enable_payloads_service_checks(config.enable_payloads.service_checks.clone());
427 consumer.consume_enable_payloads_sketches(config.enable_payloads.sketches.clone());
428 consumer.consume_env(config.env.clone());
429 consumer.consume_expected_tags_duration(config.expected_tags_duration.clone());
430 consumer.consume_extra_tags(config.extra_tags.clone());
431 consumer.consume_forwarder_apikey_validation_interval(config.forwarder_apikey_validation_interval.clone());
432 consumer.consume_forwarder_backoff_base(config.forwarder_backoff_base.clone());
433 consumer.consume_forwarder_backoff_factor(config.forwarder_backoff_factor.clone());
434 consumer.consume_forwarder_backoff_max(config.forwarder_backoff_max.clone());
435 consumer.consume_forwarder_connection_reset_interval(config.forwarder_connection_reset_interval.clone());
436 consumer.consume_forwarder_flush_to_disk_mem_ratio(config.forwarder_flush_to_disk_mem_ratio.clone());
437 consumer.consume_forwarder_high_prio_buffer_size(config.forwarder_high_prio_buffer_size.clone());
438 consumer.consume_forwarder_http_protocol(config.forwarder_http_protocol.clone());
439 consumer.consume_forwarder_max_concurrent_requests(config.forwarder_max_concurrent_requests.clone());
440 consumer.consume_forwarder_num_workers(config.forwarder_num_workers.clone());
441 consumer.consume_forwarder_outdated_file_in_days(config.forwarder_outdated_file_in_days.clone());
442 consumer.consume_forwarder_recovery_interval(config.forwarder_recovery_interval.clone());
443 consumer.consume_forwarder_recovery_reset(config.forwarder_recovery_reset.clone());
444 consumer.consume_forwarder_retry_queue_capacity_time_interval_sec(
445 config.forwarder_retry_queue_capacity_time_interval_sec.clone(),
446 );
447 consumer.consume_forwarder_retry_queue_max_size(config.forwarder_retry_queue_max_size.clone());
448 consumer.consume_forwarder_retry_queue_payloads_max_size(config.forwarder_retry_queue_payloads_max_size.clone());
449 consumer.consume_forwarder_stop_timeout(config.forwarder_stop_timeout.clone());
450 consumer.consume_forwarder_storage_max_disk_ratio(config.forwarder_storage_max_disk_ratio.clone());
451 consumer.consume_forwarder_storage_max_size_in_bytes(config.forwarder_storage_max_size_in_bytes.clone());
452 consumer.consume_forwarder_storage_path(config.forwarder_storage_path.clone());
453 consumer.consume_forwarder_timeout(config.forwarder_timeout.clone());
454 consumer.consume_histogram_aggregates(config.histogram_aggregates.clone());
455 consumer.consume_histogram_copy_to_distribution(config.histogram_copy_to_distribution.clone());
456 consumer.consume_histogram_copy_to_distribution_prefix(config.histogram_copy_to_distribution_prefix.clone());
457 consumer.consume_histogram_percentiles(config.histogram_percentiles.clone());
458 consumer.consume_hostname(config.hostname.clone());
459 consumer.consume_ipc_cert_file_path(config.ipc_cert_file_path.clone());
460 consumer.consume_kubernetes_kubelet_nodename(config.kubernetes_kubelet_nodename.clone());
461 consumer.consume_log_file_max_rolls(config.log_file_max_rolls.clone());
462 consumer.consume_log_file_max_size(config.log_file_max_size.clone());
463 consumer.consume_log_format_json(config.log_format_json.clone());
464 consumer.consume_log_format_rfc3339(config.log_format_rfc3339.clone());
465 consumer.consume_log_level(config.log_level.clone());
466 consumer.consume_log_payloads(config.log_payloads.clone());
467 consumer.consume_log_to_console(config.log_to_console.clone());
468 consumer.consume_log_to_syslog(config.log_to_syslog.clone());
469 consumer.consume_metric_filterlist(config.metric_filterlist.clone());
470 consumer.consume_metric_filterlist_match_prefix(config.metric_filterlist_match_prefix.clone());
471 consumer.consume_metric_tag_filterlist(config.metric_tag_filterlist.clone());
472 consumer.consume_min_tls_version(config.min_tls_version.clone());
473 consumer.consume_multi_region_failover_api_key(config.multi_region_failover.api_key.clone());
474 consumer.consume_multi_region_failover_dd_url(config.multi_region_failover.dd_url.clone());
475 consumer.consume_multi_region_failover_enabled(config.multi_region_failover.enabled.clone());
476 consumer.consume_multi_region_failover_failover_metrics(config.multi_region_failover.failover_metrics.clone());
477 consumer.consume_multi_region_failover_metric_allowlist(config.multi_region_failover.metric_allowlist.clone());
478 consumer.consume_multi_region_failover_site(config.multi_region_failover.site.clone());
479 consumer.consume_no_proxy_nonexact_match(config.no_proxy_nonexact_match.clone());
480 consumer.consume_observability_pipelines_worker_metrics_enabled(
481 config.observability_pipelines_worker.metrics.enabled.clone(),
482 );
483 consumer
484 .consume_observability_pipelines_worker_metrics_url(config.observability_pipelines_worker.metrics.url.clone());
485 consumer.consume_observability_pipelines_worker_metrics_use_v3_api_series(
486 config.observability_pipelines_worker.metrics.use_v3_api.series.clone(),
487 );
488 consumer.consume_origin_detection_unified(config.origin_detection_unified.clone());
489 consumer.consume_otlp_config_logs_enabled(config.otlp_config.logs.enabled.clone());
490 consumer.consume_otlp_config_metrics_delta_ttl(config.otlp_config.metrics.delta_ttl.clone());
491 consumer.consume_otlp_config_metrics_enabled(config.otlp_config.metrics.enabled.clone());
492 consumer.consume_otlp_config_metrics_histograms_mode(config.otlp_config.metrics.histograms.mode.clone());
493 consumer.consume_otlp_config_metrics_histograms_send_aggregation_metrics(
494 config.otlp_config.metrics.histograms.send_aggregation_metrics.clone(),
495 );
496 consumer.consume_otlp_config_metrics_instrumentation_scope_metadata_as_tags(
497 config
498 .otlp_config
499 .metrics
500 .instrumentation_scope_metadata_as_tags
501 .clone(),
502 );
503 consumer.consume_otlp_config_metrics_resource_attributes_as_tags(
504 config.otlp_config.metrics.resource_attributes_as_tags.clone(),
505 );
506 consumer.consume_otlp_config_metrics_summaries_mode(config.otlp_config.metrics.summaries.mode.clone());
507 consumer.consume_otlp_config_metrics_sums_cumulative_monotonic_mode(
508 config.otlp_config.metrics.sums.cumulative_monotonic_mode.clone(),
509 );
510 consumer.consume_otlp_config_metrics_sums_initial_cumulative_monotonic_value(
511 config
512 .otlp_config
513 .metrics
514 .sums
515 .initial_cumulative_monotonic_value
516 .clone(),
517 );
518 consumer.consume_otlp_config_metrics_tag_cardinality(config.otlp_config.metrics.tag_cardinality.clone());
519 consumer.consume_otlp_config_metrics_tags(config.otlp_config.metrics.tags.clone());
520 consumer.consume_otlp_config_receiver_protocols_grpc_endpoint(
521 config.otlp_config.receiver.protocols.grpc.endpoint.clone(),
522 );
523 consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age(
524 config
525 .otlp_config
526 .receiver
527 .protocols
528 .grpc
529 .keepalive
530 .server_parameters
531 .max_connection_age
532 .clone(),
533 );
534 consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace(
535 config
536 .otlp_config
537 .receiver
538 .protocols
539 .grpc
540 .keepalive
541 .server_parameters
542 .max_connection_age_grace
543 .clone(),
544 );
545 consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time(
546 config
547 .otlp_config
548 .receiver
549 .protocols
550 .grpc
551 .keepalive
552 .server_parameters
553 .time
554 .clone(),
555 );
556 consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout(
557 config
558 .otlp_config
559 .receiver
560 .protocols
561 .grpc
562 .keepalive
563 .server_parameters
564 .timeout
565 .clone(),
566 );
567 consumer.consume_otlp_config_receiver_protocols_grpc_max_concurrent_streams(
568 config
569 .otlp_config
570 .receiver
571 .protocols
572 .grpc
573 .max_concurrent_streams
574 .clone(),
575 );
576 consumer.consume_otlp_config_receiver_protocols_grpc_max_recv_msg_size_mib(
577 config.otlp_config.receiver.protocols.grpc.max_recv_msg_size_mib.clone(),
578 );
579 consumer.consume_otlp_config_receiver_protocols_grpc_tls_ca_file(
580 config.otlp_config.receiver.protocols.grpc.tls.ca_file.clone(),
581 );
582 consumer.consume_otlp_config_receiver_protocols_grpc_tls_cert_file(
583 config.otlp_config.receiver.protocols.grpc.tls.cert_file.clone(),
584 );
585 consumer.consume_otlp_config_receiver_protocols_grpc_tls_key_file(
586 config.otlp_config.receiver.protocols.grpc.tls.key_file.clone(),
587 );
588 consumer.consume_otlp_config_receiver_protocols_grpc_transport(
589 config.otlp_config.receiver.protocols.grpc.transport.clone(),
590 );
591 consumer.consume_otlp_config_receiver_protocols_http_cors_allowed_headers(
592 config.otlp_config.receiver.protocols.http.cors.allowed_headers.clone(),
593 );
594 consumer.consume_otlp_config_receiver_protocols_http_cors_allowed_origins(
595 config.otlp_config.receiver.protocols.http.cors.allowed_origins.clone(),
596 );
597 consumer.consume_otlp_config_receiver_protocols_http_cors_exposed_headers(
598 config.otlp_config.receiver.protocols.http.cors.exposed_headers.clone(),
599 );
600 consumer.consume_otlp_config_receiver_protocols_http_cors_max_age(
601 config.otlp_config.receiver.protocols.http.cors.max_age.clone(),
602 );
603 consumer.consume_otlp_config_receiver_protocols_http_endpoint(
604 config.otlp_config.receiver.protocols.http.endpoint.clone(),
605 );
606 consumer.consume_otlp_config_receiver_protocols_http_max_request_body_size(
607 config.otlp_config.receiver.protocols.http.max_request_body_size.clone(),
608 );
609 consumer.consume_otlp_config_receiver_protocols_http_tls_ca_file(
610 config.otlp_config.receiver.protocols.http.tls.ca_file.clone(),
611 );
612 consumer.consume_otlp_config_receiver_protocols_http_tls_cert_file(
613 config.otlp_config.receiver.protocols.http.tls.cert_file.clone(),
614 );
615 consumer.consume_otlp_config_receiver_protocols_http_tls_key_file(
616 config.otlp_config.receiver.protocols.http.tls.key_file.clone(),
617 );
618 consumer.consume_otlp_config_traces_enabled(config.otlp_config.traces.enabled.clone());
619 consumer.consume_otlp_config_traces_internal_port(config.otlp_config.traces.internal_port.clone());
620 consumer.consume_otlp_config_traces_probabilistic_sampler_sampling_percentage(
621 config
622 .otlp_config
623 .traces
624 .probabilistic_sampler
625 .sampling_percentage
626 .clone(),
627 );
628 consumer.consume_provider_kind(config.provider_kind.clone());
629 consumer.consume_proxy_http(config.proxy.http.clone());
630 consumer.consume_proxy_https(config.proxy.https.clone());
631 consumer.consume_proxy_no_proxy(config.proxy.no_proxy.clone());
632 consumer.consume_run_path(config.run_path.clone());
633 consumer.consume_secret_backend_command(config.secret_backend_command.clone());
634 consumer
635 .consume_secret_refresh_on_api_key_failure_interval(config.secret_refresh_on_api_key_failure_interval.clone());
636 consumer.consume_serializer_compressor_kind(config.serializer_compressor_kind.clone());
637 consumer.consume_serializer_experimental_use_v3_api_compression_level(
638 config.serializer_experimental_use_v3_api.compression_level.clone(),
639 );
640 consumer.consume_serializer_experimental_use_v3_api_sketches_endpoints(
641 config.serializer_experimental_use_v3_api.sketches.endpoints.clone(),
642 );
643 consumer.consume_serializer_max_payload_size(config.serializer_max_payload_size.clone());
644 consumer.consume_serializer_max_series_payload_size(config.serializer_max_series_payload_size.clone());
645 consumer.consume_serializer_max_series_points_per_payload(config.serializer_max_series_points_per_payload.clone());
646 consumer.consume_serializer_max_series_uncompressed_payload_size(
647 config.serializer_max_series_uncompressed_payload_size.clone(),
648 );
649 consumer.consume_serializer_max_uncompressed_payload_size(config.serializer_max_uncompressed_payload_size.clone());
650 consumer.consume_serializer_zstd_compressor_level(config.serializer_zstd_compressor_level.clone());
651 consumer.consume_site(config.site.clone());
652 consumer.consume_skip_ssl_validation(config.skip_ssl_validation.clone());
653 consumer.consume_sslkeylogfile(config.sslkeylogfile.clone());
654 consumer.consume_statsd_forward_host(config.statsd_forward_host.clone());
655 consumer.consume_statsd_forward_port(config.statsd_forward_port.clone());
656 consumer.consume_statsd_metric_blocklist(config.statsd_metric_blocklist.clone());
657 consumer.consume_statsd_metric_blocklist_match_prefix(config.statsd_metric_blocklist_match_prefix.clone());
658 consumer.consume_statsd_metric_namespace(config.statsd_metric_namespace.clone());
659 consumer.consume_statsd_metric_namespace_blacklist(config.statsd_metric_namespace_blacklist.clone());
660 consumer.consume_syslog_rfc(config.syslog_rfc.clone());
661 consumer.consume_syslog_uri(config.syslog_uri.clone());
662 consumer.consume_tags(config.tags.clone());
663 consumer.consume_telemetry_dogstatsd_origin(config.telemetry.dogstatsd_origin.clone());
664 consumer.consume_tls_handshake_timeout(config.tls_handshake_timeout.clone());
665 consumer.consume_use_proxy_for_cloud_metadata(config.use_proxy_for_cloud_metadata.clone());
666 consumer.consume_use_v2_api_series(config.use_v2_api.series.clone());
667 consumer.consume_use_v3_api_series_enabled(config.use_v3_api.series.enabled.clone());
668 consumer.consume_use_v3_api_series_endpoints(config.use_v3_api.series.endpoints.clone());
669 consumer.consume_vector_metrics_enabled(config.vector.metrics.enabled.clone());
670 consumer.consume_vector_metrics_url(config.vector.metrics.url.clone());
671 consumer.consume_vector_metrics_use_v3_api_series(config.vector.metrics.use_v3_api.series.clone());
672 consumer.consume_vsock_addr(config.vsock_addr.clone());
673
674 let errors = consumer.translate_errors();
675 if errors.is_empty() {
676 Ok(())
677 } else {
678 Err(TranslateErrors::new(errors))
679 }
680}