Skip to content

Commit 45626b1

Browse files
fix(config): permissively coerce scalar config leaves (#2325)
## Human Summary In #2317 @aqian01 detected a flaw in the typed config deserialization mechanism. The ported, permissive, Viper type coercions that the Agent uses were only being applied to environment variables. This means that when we parsed a config file ourselves, we would not have applied those permissive coercions. This is now fixed so that we more completely mirror Agent config parsing behavior when migrating to typed config. ## AI Summary The Datadog Agent accepts configuration values through `cast`, so a leaf's declared type determines which alternate spellings it accepts. `dogstatsd_port: "8125"` and a schema-`string` leaf written as a YAML boolean (`use_v3_api.series.enabled: true`, read with `GetString`) are both valid Agent configuration. ADP's generated model instead deserialized each leaf strictly according to its schema type, causing startup translation to fail or rejecting the entire runtime configuration snapshot. This change: - Adds serde deserializers for boolean, integer, float, and string schema scalar types. - Adds a build-time `permissivize` pass that applies the appropriate deserializer to every generated scalar leaf based on its generated Rust type. - Makes `env_decode` use the same parsers, aligning file, environment, and configuration-stream inputs. - Fails code generation for unrecognized leaf types, so new schema types require an explicit coercion decision. - Retains hard errors for values that cannot be converted, rather than accepting `cast`'s zero values. - Removes the now-unnecessary `input_shape: string_or_integer` metadata and related types. Field types remain unchanged; only deserialization behavior is permissive. Numeric strings are accepted in decimal form only. The generated model diff adds deserializer attributes, and the change covers the full generated scalar model rather than individual keys. ## Change Type - [x] Bug fix ## How did you test this PR? - Unit tests cover accepted and rejected spellings for each scalar type. - A schema-driven test exercises every scalar leaf with a castable value and verifies the coerced value through a serialization round-trip. - Translation-gate tests cover a boolean on the V3 series mode string leaf and a quoted `dogstatsd_port`. - `make build-schema-overlay`, `cargo check --workspace --tests`, and `cargo clippy --workspace --tests` pass; config crate tests pass. ## References - Related: #2317 --- ## Note: #2317 merged into the wrong base I merged #2317 into `m/confra-cast` (this PR) instead of `main`. This PR now carries both changes. The #2317 description follows verbatim. --- # Merged from #2317: fix(config): migrate endpoints to typed config for provenance awareness ## Human Summary This migrates all components affected by #1965 (we were unable to detect explicitly set to default vs default config values) to typed config to pick up the fix provided in #2279. After implementation I ran a clean-room Opus audit with this prompt: > please do a clean-room audit of this commit `f4ae503e807b398ca55ee3f6275f554889cff645` > > Our goal is to correct a previous incorrect behavior in which we were not sensitive to whether a configuration value was set by the Agent as a default or whether the customer explicitly set the value (and happened to set it to the default value). > > Other than that specific intentional bug fix, no other behavioral changes are intended. > > Validate that only the desired behavioral change has occurred and that configuration defaults are in-tact. > > Read AGENTS.md and /config-system It only found two actionable items, which I fixed. One was that we were previously rejecting empty API keys, so I retained that behavior. The other was that an MRF endpoint consisting only of whitespace could be treated as a valid setting. Also fixed. All defaults stood up to scrutiny. Edit: @aqian01 found a flaw that went undetected which became #2325. ### Review Guide I tried breaking this up, which is why there are a bunch of subissues being closed all at once, but it did not divide very well. As such, the diff a bit large: Focus on these files: - `lib/saluki-components/*` - `bin/agent-data-plane/src/cli/run.rs` - `lib/agent-data-plane-config*` Deprioritize generated code and inventory churn in: - `lib/datadog-agent/*` ## AI Summary Migrate Datadog endpoint, retry, proxy, forwarder, metrics encoder, MRF, and Cluster Agent configuration consumers from raw `GenericConfiguration` deserialization to resolved typed configuration. Primary endpoint resolution now happens once in the typed configuration layer: - A default-sourced `dd_url` no longer shadows `site`. - An explicitly configured `dd_url`, including the schema-default URL, remains an override. - MRF and Cluster Agent destination overrides cannot be overwritten by global endpoint settings. - Retry queue size precedence uses configuration provenance, so explicit zero values are preserved. - Raw configuration access remains only for live API-key refresh, secrets retry behavior, and the `run_path` compatibility fallback whose schema default is still an unresolved placeholder. The schema inventories, generated registries, smoke-test metadata, and component tests are updated for the typed consumers. ## Change Type - [x] Non-functional (chore, refactoring, docs) ## How did you test this PR? - unit tests updated and created throughout - integration test modified to test this behavior. this was proven to have caught the original bug (`red -> green`) ## References - Closes: #1965 - Closes: #2310 - Closes: #2312 - Closes: #2313 - Closes: #2314 - Closes: #2315 - Closes: #2316 - Related to: #2279 Co-authored-by: matt.briggs <matt.briggs@datadoghq.com> 79f5b0c
1 parent b9138cc commit 45626b1

1,774 files changed

Lines changed: 20645 additions & 20486 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

404.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
<link rel="preload stylesheet" href="/saluki/assets/style.BktGeqBU.css" as="style">
1010
<link rel="preload stylesheet" href="/saluki/vp-icons.css" as="style">
1111

12-
<script type="module" src="/saluki/assets/app.C7bKCAmV.js"></script>
12+
<script type="module" src="/saluki/assets/app.9C218olM.js"></script>
1313
<link rel="preload" href="/saluki/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
1414
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
1515
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
1616
</head>
1717
<body>
1818
<div id="app"></div>
19-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"agent-data-plane_configuration_configuration.md\":\"UM-nFEw6\",\"agent-data-plane_dogstatsd-top.md\":\"0ydgL1Y-\",\"agent-data-plane_index.md\":\"CFiZMJRg\",\"agent-data-plane_memory.md\":\"CKu_2Hnx\",\"agent-data-plane_releasing.md\":\"B5-AVt8u\",\"agent-data-plane_telemetry.md\":\"Dsxs377H\",\"api-docs_index.md\":\"BUSie34f\",\"development_common-language.md\":\"CG9nyYCP\",\"development_contributing.md\":\"CAFWVofq\",\"development_index.md\":\"0YybHCAM\",\"development_style-guide.md\":\"DdKws-UV\",\"development_testing-patterns.md\":\"DdjLSbBT\",\"development_testing.md\":\"BmjJgSNK\",\"index.md\":\"DI0EHsRv\",\"reference_adrs__template.md\":\"BLhqjoG4\",\"reference_adrs_index.md\":\"Bf2QvePY\",\"reference_adrs_records_001-open-design-docs.md\":\"DMMCYGX5\",\"reference_architecture_index.md\":\"D1VAdQSW\",\"reference_proposals_index.md\":\"BiPr1B66\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Saluki\",\"description\":\"A toolkit for building telemetry data planes in Rust.\",\"base\":\"/saluki/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"search\":{\"provider\":\"local\"},\"footer\":{\"copyright\":\"Copyright © 2024-Present Datadog, Inc.\"},\"editLink\":{\"pattern\":\"https://github.com/DataDog/saluki/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Updated at\",\"formatOptions\":{\"dateStyle\":\"full\",\"timeStyle\":\"medium\"}},\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Developer Guide\",\"link\":\"/development\"}],\"sidebar\":[{\"text\":\"Developer Guide\",\"items\":[{\"text\":\"Common Language\",\"link\":\"/development/common-language\"},{\"text\":\"Contributing\",\"link\":\"/development/contributing\"},{\"text\":\"Style Guide\",\"link\":\"/development/style-guide\"},{\"text\":\"Testing\",\"link\":\"/development/testing\"},{\"text\":\"Testing Patterns\",\"link\":\"/development/testing-patterns\"}]},{\"text\":\"Reference Docs\",\"items\":[{\"text\":\"Architecture\",\"link\":\"/reference/architecture\"},{\"text\":\"ADRs\",\"link\":\"/reference/adrs\"},{\"text\":\"Proposals\",\"link\":\"/reference/proposals\"}]},{\"text\":\"Agent Data Plane\",\"items\":[{\"text\":\"Overview\",\"link\":\"/agent-data-plane\"},{\"text\":\"Internal Telemetry\",\"link\":\"/agent-data-plane/telemetry\"},{\"text\":\"Memory Management\",\"link\":\"/agent-data-plane/memory\"},{\"text\":\"Releasing\",\"link\":\"/agent-data-plane/releasing\"},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Configuration\",\"link\":\"/agent-data-plane/configuration/configuration\"}]}]}],\"outline\":{\"level\":[2,3]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/DataDog/saluki\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
19+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"agent-data-plane_configuration_configuration.md\":\"e4_l-sfv\",\"agent-data-plane_dogstatsd-top.md\":\"BrgJSpSP\",\"agent-data-plane_index.md\":\"BgdDm_8k\",\"agent-data-plane_memory.md\":\"DyB0WQd3\",\"agent-data-plane_releasing.md\":\"DrKe2PfH\",\"agent-data-plane_telemetry.md\":\"Bx_bySuz\",\"api-docs_index.md\":\"BBCycOJo\",\"development_common-language.md\":\"XuUfuHSd\",\"development_contributing.md\":\"C9_AfQi8\",\"development_index.md\":\"Bp0-JWL4\",\"development_style-guide.md\":\"DSZPntHi\",\"development_testing-patterns.md\":\"bmCEGkoC\",\"development_testing.md\":\"KIqEl5Dl\",\"index.md\":\"0cE6jOCs\",\"reference_adrs__template.md\":\"CnZpV7fd\",\"reference_adrs_index.md\":\"DC7KJHIn\",\"reference_adrs_records_001-open-design-docs.md\":\"Dwaj2Y5z\",\"reference_architecture_index.md\":\"Bin_Gw4I\",\"reference_proposals_index.md\":\"CdE61LI9\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Saluki\",\"description\":\"A toolkit for building telemetry data planes in Rust.\",\"base\":\"/saluki/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"search\":{\"provider\":\"local\"},\"footer\":{\"copyright\":\"Copyright © 2024-Present Datadog, Inc.\"},\"editLink\":{\"pattern\":\"https://github.com/DataDog/saluki/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Updated at\",\"formatOptions\":{\"dateStyle\":\"full\",\"timeStyle\":\"medium\"}},\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Developer Guide\",\"link\":\"/development\"}],\"sidebar\":[{\"text\":\"Developer Guide\",\"items\":[{\"text\":\"Common Language\",\"link\":\"/development/common-language\"},{\"text\":\"Contributing\",\"link\":\"/development/contributing\"},{\"text\":\"Style Guide\",\"link\":\"/development/style-guide\"},{\"text\":\"Testing\",\"link\":\"/development/testing\"},{\"text\":\"Testing Patterns\",\"link\":\"/development/testing-patterns\"}]},{\"text\":\"Reference Docs\",\"items\":[{\"text\":\"Architecture\",\"link\":\"/reference/architecture\"},{\"text\":\"ADRs\",\"link\":\"/reference/adrs\"},{\"text\":\"Proposals\",\"link\":\"/reference/proposals\"}]},{\"text\":\"Agent Data Plane\",\"items\":[{\"text\":\"Overview\",\"link\":\"/agent-data-plane\"},{\"text\":\"Internal Telemetry\",\"link\":\"/agent-data-plane/telemetry\"},{\"text\":\"Memory Management\",\"link\":\"/agent-data-plane/memory\"},{\"text\":\"Releasing\",\"link\":\"/agent-data-plane/releasing\"},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Configuration\",\"link\":\"/agent-data-plane/configuration/configuration\"}]}]}],\"outline\":{\"level\":[2,3]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/DataDog/saluki\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
2020

2121
</body>
2222
</html>

agent-data-plane/configuration/configuration.html

Lines changed: 5 additions & 5 deletions
Large diffs are not rendered by default.

agent-data-plane/dogstatsd-top.html

Lines changed: 5 additions & 5 deletions
Large diffs are not rendered by default.

agent-data-plane/index.html

Lines changed: 5 additions & 5 deletions
Large diffs are not rendered by default.

agent-data-plane/memory.html

Lines changed: 5 additions & 5 deletions
Large diffs are not rendered by default.

agent-data-plane/releasing.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
<link rel="preload stylesheet" href="/saluki/assets/style.BktGeqBU.css" as="style">
1010
<link rel="preload stylesheet" href="/saluki/vp-icons.css" as="style">
1111

12-
<script type="module" src="/saluki/assets/app.C7bKCAmV.js"></script>
12+
<script type="module" src="/saluki/assets/app.9C218olM.js"></script>
1313
<link rel="preload" href="/saluki/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14-
<link rel="modulepreload" href="/saluki/assets/chunks/theme.CX6NVbWf.js">
14+
<link rel="modulepreload" href="/saluki/assets/chunks/theme.FTwm-Bmg.js">
1515
<link rel="modulepreload" href="/saluki/assets/chunks/framework.Chlm-uVU.js">
16-
<link rel="modulepreload" href="/saluki/assets/agent-data-plane_releasing.md.B5-AVt8u.lean.js">
16+
<link rel="modulepreload" href="/saluki/assets/agent-data-plane_releasing.md.DrKe2PfH.lean.js">
1717
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
1818
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
1919
</head>
@@ -23,8 +23,8 @@
2323
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">rust-audit-info</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/agent-data-plane</span></span>
2424
<span class="line"></span>
2525
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Or scan it directly against the RustSec advisory database.</span></span>
26-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cargo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> audit</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> bin</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/agent-data-plane</span></span></code></pre></div><p>The <code>cargo-auditable</code> version is pinned in the <code>Makefile</code> (the <code>CARGO_TOOL_VERSION_cargo-auditable</code> variable), which the host and Linux Docker builds share. The Windows build pins the same version and its archive checksum separately in <code>ci/tooling/windows-build-adp.ps1</code>; bump both together.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><div class="edit-link" data-v-e257564d><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/DataDog/saluki/edit/main/docs/agent-data-plane/releasing.md" target="_blank" rel="noreferrer" data-v-e257564d><!--[--><span class="vpi-square-pen edit-link-icon" data-v-e257564d></span> Edit this page on GitHub<!--]--></a></div><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>Updated at: <time datetime="2026-08-13T18:52:00.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/saluki/agent-data-plane/memory" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>Memory Management</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/saluki/agent-data-plane/configuration/configuration" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>Configuration</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><!----><p class="copyright" data-v-e315a0ad>Copyright © 2024-Present Datadog, Inc.</p></div></footer><!--[--><!--]--></div></div>
27-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"agent-data-plane_configuration_configuration.md\":\"UM-nFEw6\",\"agent-data-plane_dogstatsd-top.md\":\"0ydgL1Y-\",\"agent-data-plane_index.md\":\"CFiZMJRg\",\"agent-data-plane_memory.md\":\"CKu_2Hnx\",\"agent-data-plane_releasing.md\":\"B5-AVt8u\",\"agent-data-plane_telemetry.md\":\"Dsxs377H\",\"api-docs_index.md\":\"BUSie34f\",\"development_common-language.md\":\"CG9nyYCP\",\"development_contributing.md\":\"CAFWVofq\",\"development_index.md\":\"0YybHCAM\",\"development_style-guide.md\":\"DdKws-UV\",\"development_testing-patterns.md\":\"DdjLSbBT\",\"development_testing.md\":\"BmjJgSNK\",\"index.md\":\"DI0EHsRv\",\"reference_adrs__template.md\":\"BLhqjoG4\",\"reference_adrs_index.md\":\"Bf2QvePY\",\"reference_adrs_records_001-open-design-docs.md\":\"DMMCYGX5\",\"reference_architecture_index.md\":\"D1VAdQSW\",\"reference_proposals_index.md\":\"BiPr1B66\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Saluki\",\"description\":\"A toolkit for building telemetry data planes in Rust.\",\"base\":\"/saluki/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"search\":{\"provider\":\"local\"},\"footer\":{\"copyright\":\"Copyright © 2024-Present Datadog, Inc.\"},\"editLink\":{\"pattern\":\"https://github.com/DataDog/saluki/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Updated at\",\"formatOptions\":{\"dateStyle\":\"full\",\"timeStyle\":\"medium\"}},\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Developer Guide\",\"link\":\"/development\"}],\"sidebar\":[{\"text\":\"Developer Guide\",\"items\":[{\"text\":\"Common Language\",\"link\":\"/development/common-language\"},{\"text\":\"Contributing\",\"link\":\"/development/contributing\"},{\"text\":\"Style Guide\",\"link\":\"/development/style-guide\"},{\"text\":\"Testing\",\"link\":\"/development/testing\"},{\"text\":\"Testing Patterns\",\"link\":\"/development/testing-patterns\"}]},{\"text\":\"Reference Docs\",\"items\":[{\"text\":\"Architecture\",\"link\":\"/reference/architecture\"},{\"text\":\"ADRs\",\"link\":\"/reference/adrs\"},{\"text\":\"Proposals\",\"link\":\"/reference/proposals\"}]},{\"text\":\"Agent Data Plane\",\"items\":[{\"text\":\"Overview\",\"link\":\"/agent-data-plane\"},{\"text\":\"Internal Telemetry\",\"link\":\"/agent-data-plane/telemetry\"},{\"text\":\"Memory Management\",\"link\":\"/agent-data-plane/memory\"},{\"text\":\"Releasing\",\"link\":\"/agent-data-plane/releasing\"},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Configuration\",\"link\":\"/agent-data-plane/configuration/configuration\"}]}]}],\"outline\":{\"level\":[2,3]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/DataDog/saluki\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
26+
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cargo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> audit</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> bin</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/agent-data-plane</span></span></code></pre></div><p>The <code>cargo-auditable</code> version is pinned in the <code>Makefile</code> (the <code>CARGO_TOOL_VERSION_cargo-auditable</code> variable), which the host and Linux Docker builds share. The Windows build pins the same version and its archive checksum separately in <code>ci/tooling/windows-build-adp.ps1</code>; bump both together.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><div class="edit-link" data-v-e257564d><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/DataDog/saluki/edit/main/docs/agent-data-plane/releasing.md" target="_blank" rel="noreferrer" data-v-e257564d><!--[--><span class="vpi-square-pen edit-link-icon" data-v-e257564d></span> Edit this page on GitHub<!--]--></a></div><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>Updated at: <time datetime="2026-08-13T19:24:10.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/saluki/agent-data-plane/memory" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>Memory Management</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/saluki/agent-data-plane/configuration/configuration" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>Configuration</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><!----><p class="copyright" data-v-e315a0ad>Copyright © 2024-Present Datadog, Inc.</p></div></footer><!--[--><!--]--></div></div>
27+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"agent-data-plane_configuration_configuration.md\":\"e4_l-sfv\",\"agent-data-plane_dogstatsd-top.md\":\"BrgJSpSP\",\"agent-data-plane_index.md\":\"BgdDm_8k\",\"agent-data-plane_memory.md\":\"DyB0WQd3\",\"agent-data-plane_releasing.md\":\"DrKe2PfH\",\"agent-data-plane_telemetry.md\":\"Bx_bySuz\",\"api-docs_index.md\":\"BBCycOJo\",\"development_common-language.md\":\"XuUfuHSd\",\"development_contributing.md\":\"C9_AfQi8\",\"development_index.md\":\"Bp0-JWL4\",\"development_style-guide.md\":\"DSZPntHi\",\"development_testing-patterns.md\":\"bmCEGkoC\",\"development_testing.md\":\"KIqEl5Dl\",\"index.md\":\"0cE6jOCs\",\"reference_adrs__template.md\":\"CnZpV7fd\",\"reference_adrs_index.md\":\"DC7KJHIn\",\"reference_adrs_records_001-open-design-docs.md\":\"Dwaj2Y5z\",\"reference_architecture_index.md\":\"Bin_Gw4I\",\"reference_proposals_index.md\":\"CdE61LI9\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Saluki\",\"description\":\"A toolkit for building telemetry data planes in Rust.\",\"base\":\"/saluki/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"search\":{\"provider\":\"local\"},\"footer\":{\"copyright\":\"Copyright © 2024-Present Datadog, Inc.\"},\"editLink\":{\"pattern\":\"https://github.com/DataDog/saluki/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Updated at\",\"formatOptions\":{\"dateStyle\":\"full\",\"timeStyle\":\"medium\"}},\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Developer Guide\",\"link\":\"/development\"}],\"sidebar\":[{\"text\":\"Developer Guide\",\"items\":[{\"text\":\"Common Language\",\"link\":\"/development/common-language\"},{\"text\":\"Contributing\",\"link\":\"/development/contributing\"},{\"text\":\"Style Guide\",\"link\":\"/development/style-guide\"},{\"text\":\"Testing\",\"link\":\"/development/testing\"},{\"text\":\"Testing Patterns\",\"link\":\"/development/testing-patterns\"}]},{\"text\":\"Reference Docs\",\"items\":[{\"text\":\"Architecture\",\"link\":\"/reference/architecture\"},{\"text\":\"ADRs\",\"link\":\"/reference/adrs\"},{\"text\":\"Proposals\",\"link\":\"/reference/proposals\"}]},{\"text\":\"Agent Data Plane\",\"items\":[{\"text\":\"Overview\",\"link\":\"/agent-data-plane\"},{\"text\":\"Internal Telemetry\",\"link\":\"/agent-data-plane/telemetry\"},{\"text\":\"Memory Management\",\"link\":\"/agent-data-plane/memory\"},{\"text\":\"Releasing\",\"link\":\"/agent-data-plane/releasing\"},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Configuration\",\"link\":\"/agent-data-plane/configuration/configuration\"}]}]}],\"outline\":{\"level\":[2,3]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/DataDog/saluki\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
2828

2929
</body>
3030
</html>

0 commit comments

Comments
 (0)