datadog_agent_config_overlay_model/
saluki_keys.rs

1//! ADP-only configuration keys that are not in the Datadog Agent schema.
2//! Shared between registry_gen.rs (for config registry annotations) and doc_gen.rs (for the
3//! ADP-Only documentation section).
4
5pub struct SalukiKey {
6    pub yaml_path: &'static str,
7    pub description: &'static str,
8    pub default: &'static str,
9    /// Multi-line documentation rendered as a prose section below the ADP-Only table.
10    /// If the text starts with `#`, the heading is taken from the text itself.
11    pub documentation: Option<&'static str>,
12    // Fields used only by registry_gen:
13    pub value_type: &'static str,
14    pub schema_default: Option<&'static str>,
15    pub env_vars: &'static [&'static str],
16    pub env_var_override: Option<&'static [&'static str]>,
17    pub additional_yaml_paths: &'static [&'static str],
18    pub used_by: &'static [&'static str],
19    pub test_json: Option<&'static str>,
20    pub pipeline_affinity: &'static str,
21    pub filename: &'static str,
22}
23
24pub static SALUKI_KEYS: &[SalukiKey] = &[
25    // ── data_plane.rs ────────────────────────────────────────────────────────
26    SalukiKey {
27        yaml_path: "data_plane.otlp.receiver_grpc_endpoint_temporary",
28        description: "ADP OTLP gRPC listen endpoint",
29        default: "localhost:6317",
30        documentation: Some(
31            "Temporary development key for setting ADP's OTLP listen endpoints independently from the Agent's.",
32        ),
33        value_type: "ValueType::String",
34        schema_default: Some("localhost:6317"),
35        env_vars: &[],
36        env_var_override: None,
37        additional_yaml_paths: &[],
38        used_by: &["TYPED_CONFIG_SYSTEM"],
39        test_json: None,
40        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
41        filename: "data_plane.rs",
42    },
43    SalukiKey {
44        yaml_path: "data_plane.otlp.receiver_http_endpoint_temporary",
45        description: "ADP OTLP HTTP listen endpoint",
46        default: "localhost:6318",
47        documentation: Some(
48            "Temporary development key for setting ADP's OTLP listen endpoints independently from the Agent's.",
49        ),
50        value_type: "ValueType::String",
51        schema_default: Some("localhost:6318"),
52        env_vars: &[],
53        env_var_override: None,
54        additional_yaml_paths: &[],
55        used_by: &["TYPED_CONFIG_SYSTEM"],
56        test_json: None,
57        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
58        filename: "data_plane.rs",
59    },
60    SalukiKey {
61        yaml_path: "data_plane.serializer_zstd_compressor_level",
62        description: "ADP zstd compression level",
63        default: "3",
64        documentation: Some(
65            "ADP-specific zstd compression level, taking precedence over the Core Agent's \
66             `serializer_zstd_compressor_level`. When this key is unset, ADP falls back to \
67             `serializer_zstd_compressor_level` if it has been changed from the Agent default of 1, and \
68             otherwise uses its own default of 3. Level 3 achieves ~6% smaller payloads (65.3 MB vs \
69             69.3 MB) without a net CPU increase, since ADP is more efficient than the Agent and can \
70             afford higher compression. Configure via `DD_DATA_PLANE_SERIALIZER_ZSTD_COMPRESSOR_LEVEL` \
71             or in ADP-specific configuration.",
72        ),
73        value_type: "ValueType::Integer",
74        schema_default: Some("3"),
75        env_vars: &[],
76        env_var_override: None,
77        additional_yaml_paths: &[],
78        used_by: &[
79            "DATADOG_METRICS_CONFIGURATION",
80            "DATADOG_EVENTS_CONFIGURATION",
81            "DATADOG_LOGS_CONFIGURATION",
82            "DATADOG_SERVICE_CHECKS_CONFIGURATION",
83            "DATADOG_TRACE_CONFIGURATION",
84        ],
85        test_json: None,
86        pipeline_affinity: "PipelineAffinity::CrossCutting",
87        filename: "data_plane.rs",
88    },
89    SalukiKey {
90        yaml_path: "data_plane.stop_timeout",
91        description: "ADP graceful shutdown timeout (s)",
92        default: "derived",
93        documentation: Some(
94            "### `data_plane.stop_timeout`
95
96\
97             ADP uses `data_plane.stop_timeout` as the topology-wide graceful shutdown timeout. \
98             If this key is unset, ADP defaults to `aggregator_stop_timeout + forwarder_stop_timeout`.",
99        ),
100        value_type: "ValueType::Integer",
101        schema_default: None,
102        env_vars: &[],
103        env_var_override: None,
104        additional_yaml_paths: &[],
105        used_by: &["GET_TYPED"],
106        test_json: None,
107        pipeline_affinity: "PipelineAffinity::CrossCutting",
108        filename: "data_plane.rs",
109    },
110    // ── dogstatsd.rs ─────────────────────────────────────────────────────────
111    SalukiKey {
112        yaml_path: "dogstatsd_allow_context_heap_allocs",
113        description: "Allow heap allocations for contexts",
114        default: "",
115        documentation: None,
116        value_type: "ValueType::Bool",
117        schema_default: Some("true"),
118        env_vars: &[],
119        env_var_override: None,
120        additional_yaml_paths: &[],
121        used_by: &["DOGSTATSD_CONFIGURATION"],
122        test_json: None,
123        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
124        filename: "dogstatsd.rs",
125    },
126    SalukiKey {
127        yaml_path: "dogstatsd_autoscale_udp_listeners",
128        description: "Bind multiple UDP sockets via SO_REUSEPORT",
129        default: "",
130        documentation: None,
131        value_type: "ValueType::Bool",
132        schema_default: Some("false"),
133        env_vars: &[],
134        env_var_override: None,
135        additional_yaml_paths: &[],
136        used_by: &["DOGSTATSD_CONFIGURATION"],
137        test_json: None,
138        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
139        filename: "dogstatsd.rs",
140    },
141    SalukiKey {
142        yaml_path: "dogstatsd_buffer_count",
143        description: "Baseline receive buffers",
144        default: "128",
145        documentation: None,
146        value_type: "ValueType::Integer",
147        schema_default: Some("128"),
148        env_vars: &[],
149        env_var_override: None,
150        additional_yaml_paths: &[],
151        used_by: &["DOGSTATSD_CONFIGURATION"],
152        test_json: None,
153        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
154        filename: "dogstatsd.rs",
155    },
156    SalukiKey {
157        yaml_path: "dogstatsd_buffer_count_max",
158        description: "Max receive buffers",
159        default: "256",
160        documentation: None,
161        value_type: "ValueType::Integer",
162        schema_default: Some("256"),
163        env_vars: &[],
164        env_var_override: None,
165        additional_yaml_paths: &[],
166        used_by: &["DOGSTATSD_CONFIGURATION"],
167        test_json: None,
168        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
169        filename: "dogstatsd.rs",
170    },
171    SalukiKey {
172        yaml_path: "dogstatsd_cached_contexts_limit",
173        description: "Max cached metric contexts",
174        default: "",
175        documentation: None,
176        value_type: "ValueType::Integer",
177        schema_default: None,
178        env_vars: &[],
179        env_var_override: None,
180        additional_yaml_paths: &[],
181        used_by: &["DOGSTATSD_CONFIGURATION"],
182        test_json: None,
183        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
184        filename: "dogstatsd.rs",
185    },
186    SalukiKey {
187        yaml_path: "dogstatsd_cached_tagsets_limit",
188        description: "Max cached tagsets",
189        default: "",
190        documentation: None,
191        value_type: "ValueType::Integer",
192        schema_default: None,
193        env_vars: &[],
194        env_var_override: None,
195        additional_yaml_paths: &[],
196        used_by: &["DOGSTATSD_CONFIGURATION"],
197        test_json: None,
198        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
199        filename: "dogstatsd.rs",
200    },
201    SalukiKey {
202        yaml_path: "dogstatsd_minimum_sample_rate",
203        description: "Floor for metric sample rates",
204        default: "",
205        documentation: Some(
206            "ADP enforces a minimum sample rate on incoming metrics to prevent memory exhaustion \
207             from extremely low sample rates on histograms and sketches. Sending metrics with a \
208             very high inverse sample rate (for example `@0.0000001`) can cause unbounded memory \
209             growth in a sketch; this setting prevents that. The default is conservative enough \
210             that normal clients are unaffected.",
211        ),
212        value_type: "ValueType::Float",
213        schema_default: None,
214        env_vars: &[],
215        env_var_override: None,
216        additional_yaml_paths: &[],
217        used_by: &["DOGSTATSD_CONFIGURATION"],
218        test_json: None,
219        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
220        filename: "dogstatsd.rs",
221    },
222    SalukiKey {
223        yaml_path: "dogstatsd_permissive_decoding",
224        description: "Relaxes decoder strictness",
225        default: "true",
226        documentation: Some(
227            "By default, ADP parses DogStatsD packets with the same leniency as the core agent, \
228             accepting packets that technically violate the spec. Setting this to `false` enables \
229             strict mode, which rejects non-conformant packets. Strict mode is not available in \
230             the core agent.",
231        ),
232        value_type: "ValueType::Bool",
233        schema_default: Some("true"),
234        env_vars: &[],
235        env_var_override: None,
236        additional_yaml_paths: &[],
237        used_by: &["DOGSTATSD_CONFIGURATION"],
238        test_json: None,
239        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
240        filename: "dogstatsd.rs",
241    },
242    SalukiKey {
243        yaml_path: "dogstatsd_string_interner_size_bytes",
244        description: "Explicit byte budget for context interner",
245        default: "",
246        documentation: Some(
247            "Accepts a bare integer number of bytes or a human-readable byte-size string such as `12MiB`. \
248             When unset, ADP derives the byte budget from `dogstatsd_string_interner_size`.",
249        ),
250        value_type: "ValueType::String",
251        schema_default: None,
252        env_vars: &[],
253        env_var_override: None,
254        additional_yaml_paths: &[],
255        used_by: &["DOGSTATSD_CONFIGURATION"],
256        test_json: Some(r#""12MiB""#),
257        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
258        filename: "dogstatsd.rs",
259    },
260    SalukiKey {
261        yaml_path: "dogstatsd_tcp_port",
262        description: "TCP listen port for DSD",
263        default: "",
264        documentation: None,
265        value_type: "ValueType::Integer",
266        schema_default: None,
267        env_vars: &[],
268        env_var_override: None,
269        additional_yaml_paths: &[],
270        used_by: &["DOGSTATSD_CONFIGURATION"],
271        test_json: None,
272        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
273        filename: "dogstatsd.rs",
274    },
275    // ── otlp.rs ──────────────────────────────────────────────────────────────
276    SalukiKey {
277        yaml_path: "otlp_config.traces.enable_otlp_compute_top_level_by_span_kind",
278        description: "Enable OTLP top-level-by-span-kind",
279        default: "",
280        documentation: None,
281        value_type: "ValueType::Bool",
282        schema_default: Some("true"),
283        env_vars: &[],
284        env_var_override: None,
285        additional_yaml_paths: &[],
286        used_by: &["TYPED_CONFIG_SYSTEM"],
287        test_json: None,
288        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
289        filename: "otlp.rs",
290    },
291    SalukiKey {
292        yaml_path: "otlp_config.traces.ignore_missing_datadog_fields",
293        description: "Ignore missing Datadog fields in OTLP",
294        default: "",
295        documentation: None,
296        value_type: "ValueType::Bool",
297        schema_default: None,
298        env_vars: &[],
299        env_var_override: None,
300        additional_yaml_paths: &[],
301        used_by: &["TYPED_CONFIG_SYSTEM"],
302        test_json: None,
303        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
304        filename: "otlp.rs",
305    },
306    SalukiKey {
307        yaml_path: "otlp_config.traces.string_interner_size",
308        description: "OTLP trace string interner capacity",
309        default: "",
310        documentation: None,
311        value_type: "ValueType::Integer",
312        schema_default: None,
313        env_vars: &[],
314        env_var_override: None,
315        additional_yaml_paths: &[],
316        used_by: &["TYPED_CONFIG_SYSTEM"],
317        test_json: None,
318        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
319        filename: "otlp.rs",
320    },
321    SalukiKey {
322        yaml_path: "otlp_config.receiver.protocols.http.transport",
323        description: "OTLP HTTP receiver transport",
324        default: "",
325        documentation: None,
326        value_type: "ValueType::String",
327        schema_default: None,
328        env_vars: &[],
329        env_var_override: None,
330        additional_yaml_paths: &[],
331        used_by: &["TYPED_CONFIG_SYSTEM"],
332        test_json: None,
333        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
334        filename: "otlp.rs",
335    },
336    SalukiKey {
337        yaml_path: "otlp_allow_context_heap_allocs",
338        description: "Allow heap allocations for OTLP contexts",
339        default: "",
340        documentation: None,
341        value_type: "ValueType::Bool",
342        schema_default: Some("true"),
343        env_vars: &[],
344        env_var_override: None,
345        additional_yaml_paths: &[],
346        used_by: &["TYPED_CONFIG_SYSTEM"],
347        test_json: None,
348        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
349        filename: "otlp.rs",
350    },
351    SalukiKey {
352        yaml_path: "otlp_cached_contexts_limit",
353        description: "Max cached OTLP metric contexts",
354        default: "",
355        documentation: None,
356        value_type: "ValueType::Integer",
357        schema_default: None,
358        env_vars: &[],
359        env_var_override: None,
360        additional_yaml_paths: &[],
361        used_by: &["TYPED_CONFIG_SYSTEM"],
362        test_json: None,
363        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
364        filename: "otlp.rs",
365    },
366    SalukiKey {
367        yaml_path: "otlp_cached_tagsets_limit",
368        description: "Max cached OTLP tagsets",
369        default: "",
370        documentation: None,
371        value_type: "ValueType::Integer",
372        schema_default: None,
373        env_vars: &[],
374        env_var_override: None,
375        additional_yaml_paths: &[],
376        used_by: &["TYPED_CONFIG_SYSTEM"],
377        test_json: None,
378        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
379        filename: "otlp.rs",
380    },
381    SalukiKey {
382        yaml_path: "otlp_string_interner_size",
383        description: "OTLP context interner capacity",
384        default: "",
385        documentation: None,
386        value_type: "ValueType::Integer",
387        schema_default: None,
388        env_vars: &[],
389        env_var_override: None,
390        additional_yaml_paths: &[],
391        used_by: &["TYPED_CONFIG_SYSTEM"],
392        test_json: None,
393        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Otlp])",
394        filename: "otlp.rs",
395    },
396    // ── aggregate.rs ─────────────────────────────────────────────────────────
397    SalukiKey {
398        yaml_path: "aggregate_window_duration_seconds",
399        description: "Aggregation window size",
400        default: "",
401        documentation: None,
402        value_type: "ValueType::Integer",
403        schema_default: None,
404        env_vars: &[],
405        env_var_override: None,
406        additional_yaml_paths: &[],
407        used_by: &["AGGREGATE_CONFIGURATION"],
408        test_json: None,
409        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD, Pipeline::Checks])",
410        filename: "aggregate.rs",
411    },
412    SalukiKey {
413        yaml_path: "aggregate_flush_interval",
414        description: "Aggregator flush period",
415        default: "",
416        documentation: None,
417        value_type: "ValueType::String",
418        schema_default: None,
419        env_vars: &[],
420        env_var_override: None,
421        additional_yaml_paths: &[],
422        used_by: &["AGGREGATE_CONFIGURATION"],
423        test_json: Some(r#"{"secs": 42, "nanos": 0}"#),
424        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD, Pipeline::Checks])",
425        filename: "aggregate.rs",
426    },
427    SalukiKey {
428        yaml_path: "aggregate_context_limit",
429        description: "Max contexts per aggregation window",
430        default: "",
431        documentation: None,
432        value_type: "ValueType::Integer",
433        schema_default: None,
434        env_vars: &[],
435        env_var_override: None,
436        additional_yaml_paths: &[],
437        used_by: &["AGGREGATE_CONFIGURATION"],
438        test_json: None,
439        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD, Pipeline::Checks])",
440        filename: "aggregate.rs",
441    },
442    SalukiKey {
443        yaml_path: "counter_expiry_seconds",
444        description: "Idle counter keep-alive duration",
445        default: "300",
446        documentation: None,
447        value_type: "ValueType::Integer",
448        schema_default: None,
449        env_vars: &[],
450        env_var_override: None,
451        additional_yaml_paths: &["dogstatsd_expiry_seconds"],
452        used_by: &["AGGREGATE_CONFIGURATION"],
453        test_json: None,
454        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD, Pipeline::Checks])",
455        filename: "aggregate.rs",
456    },
457    SalukiKey {
458        yaml_path: "aggregate_passthrough_idle_flush_timeout",
459        description: "Passthrough buffer flush delay",
460        default: "",
461        documentation: None,
462        value_type: "ValueType::String",
463        schema_default: None,
464        env_vars: &[],
465        env_var_override: None,
466        additional_yaml_paths: &[],
467        used_by: &["AGGREGATE_CONFIGURATION"],
468        test_json: Some(r#"{"secs": 42, "nanos": 0}"#),
469        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD, Pipeline::Checks])",
470        filename: "aggregate.rs",
471    },
472    // ── trace_obfuscation.rs ─────────────────────────────────────────────────
473    SalukiKey {
474        yaml_path: "apm_config.obfuscation.sql.dbms",
475        description: "SQL obfuscation DBMS dialect",
476        default: "",
477        documentation: None,
478        value_type: "ValueType::String",
479        schema_default: None,
480        env_vars: &[],
481        env_var_override: None,
482        additional_yaml_paths: &[],
483        used_by: &["TRACE_OBFUSCATION_CONFIGURATION"],
484        test_json: None,
485        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
486        filename: "trace_obfuscation.rs",
487    },
488    SalukiKey {
489        yaml_path: "apm_config.obfuscation.sql.dollar_quoted_func",
490        description: "Preserve dollar-quoted SQL functions",
491        default: "",
492        documentation: None,
493        value_type: "ValueType::Bool",
494        schema_default: None,
495        env_vars: &[],
496        env_var_override: None,
497        additional_yaml_paths: &[],
498        used_by: &["TRACE_OBFUSCATION_CONFIGURATION"],
499        test_json: None,
500        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
501        filename: "trace_obfuscation.rs",
502    },
503    SalukiKey {
504        yaml_path: "apm_config.obfuscation.sql.keep_sql_alias",
505        description: "Preserve SQL aliases in obfuscation",
506        default: "",
507        documentation: None,
508        value_type: "ValueType::Bool",
509        schema_default: None,
510        env_vars: &[],
511        env_var_override: None,
512        additional_yaml_paths: &[],
513        used_by: &["TRACE_OBFUSCATION_CONFIGURATION"],
514        test_json: None,
515        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
516        filename: "trace_obfuscation.rs",
517    },
518    SalukiKey {
519        yaml_path: "apm_config.obfuscation.sql.replace_digits",
520        description: "Replace digits in SQL obfuscation",
521        default: "",
522        documentation: None,
523        value_type: "ValueType::Bool",
524        schema_default: None,
525        env_vars: &[],
526        env_var_override: None,
527        additional_yaml_paths: &[],
528        used_by: &["TRACE_OBFUSCATION_CONFIGURATION"],
529        test_json: None,
530        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
531        filename: "trace_obfuscation.rs",
532    },
533    SalukiKey {
534        yaml_path: "apm_config.obfuscation.sql.table_names",
535        description: "Collect table names during obfuscation",
536        default: "",
537        documentation: None,
538        value_type: "ValueType::Bool",
539        schema_default: None,
540        env_vars: &[],
541        env_var_override: None,
542        additional_yaml_paths: &[],
543        used_by: &["TRACE_OBFUSCATION_CONFIGURATION"],
544        test_json: None,
545        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Traces])",
546        filename: "trace_obfuscation.rs",
547    },
548    // ── encoders.rs ──────────────────────────────────────────────────────────
549    SalukiKey {
550        yaml_path: "flush_timeout_secs",
551        description: "Encoder flush timeout (secs)",
552        default: "",
553        documentation: None,
554        value_type: "ValueType::Integer",
555        schema_default: None,
556        env_vars: &[],
557        env_var_override: None,
558        additional_yaml_paths: &[],
559        used_by: &[
560            "DATADOG_APM_STATS_ENCODER_CONFIGURATION",
561            "DATADOG_METRICS_CONFIGURATION",
562            "DATADOG_TRACE_CONFIGURATION",
563        ],
564        test_json: None,
565        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Checks, Pipeline::Traces, Pipeline::DogStatsD])",
566        filename: "encoders.rs",
567    },
568    SalukiKey {
569        yaml_path: "serializer_max_metrics_per_payload",
570        description: "Max metrics per payload",
571        default: "",
572        documentation: None,
573        value_type: "ValueType::Integer",
574        schema_default: None,
575        env_vars: &[],
576        env_var_override: None,
577        additional_yaml_paths: &[],
578        used_by: &["DATADOG_METRICS_CONFIGURATION"],
579        test_json: None,
580        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::Checks, Pipeline::DogStatsD])",
581        filename: "encoders.rs",
582    },
583    // ── dogstatsd_mapper.rs ──────────────────────────────────────────────────
584    SalukiKey {
585        yaml_path: "dogstatsd_mapper_string_interner_size",
586        description: "Mapper string interner capacity",
587        default: "",
588        documentation: None,
589        value_type: "ValueType::Integer",
590        schema_default: None,
591        env_vars: &[],
592        env_var_override: None,
593        additional_yaml_paths: &[],
594        used_by: &["DOGSTATSD_MAPPER_CONFIGURATION"],
595        test_json: None,
596        pipeline_affinity: "PipelineAffinity::Pipelines(&[Pipeline::DogStatsD])",
597        filename: "dogstatsd_mapper.rs",
598    },
599    // ── accounting.rs ────────────────────────────────────────────────────────
600    SalukiKey {
601        yaml_path: "memory_limit",
602        description: "Process memory limit",
603        default: "",
604        documentation: Some(
605            "### `memory_limit` / `memory_slop_factor`
606
607\
608             ADP uses an explicit process memory limit (`memory_limit`) rather than relying on \
609             Go's garbage collector. The `memory_slop_factor` reserves a fraction of the limit \
610             to account for allocations not tracked by ADP's internal accounting. When memory \
611             usage approaches `memory_limit`, ADP's global limiter begins exerting backpressure \
612             (see `enable_global_limiter`).",
613        ),
614        value_type: "ValueType::String",
615        schema_default: None,
616        env_vars: &[],
617        env_var_override: None,
618        additional_yaml_paths: &[],
619        used_by: &[],
620        test_json: None,
621        pipeline_affinity: "PipelineAffinity::CrossCutting",
622        filename: "accounting.rs",
623    },
624    SalukiKey {
625        yaml_path: "memory_slop_factor",
626        description: "Memory accounting slop fraction",
627        default: "0.25",
628        documentation: Some("See `memory_limit` above."),
629        value_type: "ValueType::Float",
630        schema_default: Some("0.25"),
631        env_vars: &[],
632        env_var_override: None,
633        additional_yaml_paths: &[],
634        used_by: &[],
635        test_json: None,
636        pipeline_affinity: "PipelineAffinity::CrossCutting",
637        filename: "accounting.rs",
638    },
639];