Skip to content

chore(components): remove usages of facet - #2321

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit into
mainfrom
tobz/remove-facet
Aug 12, 2026
Merged

chore(components): remove usages of facet#2321
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit into
mainfrom
tobz/remove-facet

Conversation

@tobz

@tobz tobz commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

As stated in the PR title.

Our original intent for using facet was to get around the limitations of serde in the context of using it to deal with Agent configuration. Now that we have the full configuration schema for the Agent, however, we can do much more up front at build time, almost entirely obviating the need for a hypothetical and bespoke configuration loading system based on facet.

As such, we're removing the code. :)

Change Type

  • Bug fix
  • New feature
  • Non-functional (chore, refactoring, docs)
  • Performance

How did you test this PR?

Existing tests, lints, etc etc.

References

DADP-2

@tobz tobz added the type/chore Updates to dependencies or general "administrative" tasks necessary to maintain the codebase/repo. label Aug 12, 2026
@tobz
tobz requested a review from a team as a code owner August 12, 2026 18:38
@dd-octo-sts dd-octo-sts Bot added area/components Sources, transforms, and destinations. encoder/datadog-events Datadog events encoder. encoder/datadog-logs Datadog Logs encoder. encoder/datadog-metrics Datadog Metrics encoder. encoder/datadog-service-checks Datadog Service Checks encoder. labels Aug 12, 2026

@datadog-prod-us1-5 datadog-prod-us1-5 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

More details

After removing only the Facet imports, derives, and field attributes, every affected runtime source matches the PR merge base exactly; Serde annotations, defaults, layouts, and runtime methods remain unchanged. The corresponding dependency closure is also fully removed.

Was this helpful? React 👍 or 👎

📊 Validated against 10 scenarios · Open Bits AI session

🤖 Datadog Autotest · Commit 720bf9e · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

@tobz
tobz force-pushed the tobz/remove-facet branch from 720bf9e to b710725 Compare August 12, 2026 18:45

tobz commented Aug 12, 2026

Copy link
Copy Markdown
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@pr-commenter

pr-commenter Bot commented Aug 12, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: 0dee0a9 · Comparison: b710725 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.45 MiB (baseline) vs 41.48 MiB (comparison)
Size Change: +24.23 KiB (+0.06%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.669f3aac70ab18aac424c8e884be9a37.15.llvm.11594395322186070468 +48.93 KiB 1
anon.0380dfbb7f781e033df0e84fe5c7b856.15.llvm.9470373918651461578 -48.93 KiB 1
serde_core +32.12 KiB 1397
core -30.88 KiB 20387
saluki_components::common::datadog -26.76 KiB 552
anon.cfcc75eeb09e0333ef669625b9268551.896.llvm.14243500802281310181 -17.71 KiB 1
anon.b55517ae7242af04bd1e7e3ada3e3db4.896.llvm.2388164327066883074 +17.71 KiB 1
anon.669db5c1bb3b5a032dbd5d7aedb6923a.512.llvm.17303103986817759886 +17.35 KiB 1
anon.2431a94f837cf89f407a05bcc54b0655.512.llvm.8498007593213477132 -17.35 KiB 1
piecemeal -14.61 KiB 51
anyhow +14.13 KiB 1924
prost +14.12 KiB 594
alloc +13.47 KiB 4635
std -13.30 KiB 961
serde +13.00 KiB 80
anon.669db5c1bb3b5a032dbd5d7aedb6923a.595.llvm.17303103986817759886 +12.29 KiB 1
anon.2431a94f837cf89f407a05bcc54b0655.595.llvm.8498007593213477132 -12.29 KiB 1
anon.bd739ca2e66de0b51cc97e7d250cde03.15.llvm.9880326372277023116 +12.09 KiB 1
anon.82ddb7a893255bea977b696a83b8adc5.15.llvm.1467896819926494763 -12.09 KiB 1
datadog_protos::trace_piecemeal_include::datadog +11.02 KiB 23
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +99.9Ki  +0.5%  +115Ki    [78390 Others]
  [NEW] +59.6Ki  [NEW] +59.5Ki    saluki_components::common::datadog::io::run_endpoint_io_loop::_{{closure}}::h82b2f842b2ac2ffe
  [NEW] +54.7Ki  [NEW] +54.4Ki    _<datadog_agent_config::generated::datadog_configuration::_::<impl serde_core::de::Deserialize for datadog_agent_config::generated::datadog_configuration::DatadogConfiguration>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::h7fe123438a19c2ad
  [NEW] +48.9Ki  [NEW] +48.8Ki    anon.669f3aac70ab18aac424c8e884be9a37.15.llvm.11594395322186070468
  [NEW] +39.5Ki  [NEW] +39.4Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::h72f9d469aa668fad
  [NEW] +38.1Ki  [NEW] +37.9Ki    _<saluki_components::transforms::aggregate::Aggregate as saluki_core::components::transforms::Transform>::run::_{{closure}}::h395c4fdfe3803e59
  [NEW] +37.7Ki  [NEW] +37.6Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::hee6570b7fb750786
  [NEW] +35.2Ki  [NEW] +35.0Ki    _<saluki_components::forwarders::otlp::OtlpForwarder as saluki_core::components::forwarders::Forwarder>::run::_{{closure}}::h64957ea07ca9c215
  [NEW] +34.8Ki  [NEW] +34.6Ki    _<agent_data_plane_config_system::saluki_only::_::<impl serde_core::de::Deserialize for agent_data_plane_config_system::saluki_only::SalukiOnly>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::h792c51a7e4c37d3d
  [NEW] +31.6Ki  [NEW] +31.5Ki    agent_data_plane::cli::dogstatsd::run_dogstatsd_command::_{{closure}}::h543de54ec8ad9c57
  [DEL] -31.6Ki  [DEL] -31.5Ki    agent_data_plane::cli::dogstatsd::run_dogstatsd_command::_{{closure}}::h4ffdcc7f8fe7225c
  [DEL] -34.8Ki  [DEL] -34.6Ki    _<agent_data_plane_config_system::saluki_only::_::<impl serde_core::de::Deserialize for agent_data_plane_config_system::saluki_only::SalukiOnly>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::h2437ba1373d82ac4
  [DEL] -36.3Ki  [DEL] -36.2Ki    saluki_components::sources::otlp::metrics::translator::OtlpMetricsTranslator::translate_metrics::h0356f8cbb6e0153d
  [DEL] -36.9Ki  [DEL] -36.7Ki    _<saluki_components::transforms::aggregate::Aggregate as saluki_core::components::transforms::Transform>::run::_{{closure}}::h188466136301edcb
  [DEL] -37.2Ki  [DEL] -36.9Ki    _<saluki_components::common::datadog::config::_::<impl serde_core::de::Deserialize for saluki_components::common::datadog::config::ForwarderConfiguration>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::h550091c9354a1a2b
  [DEL] -37.7Ki  [DEL] -37.6Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::hfc9042dc5d50b63e
  [DEL] -38.1Ki  [DEL] -37.9Ki    _<saluki_components::forwarders::otlp::OtlpForwarder as saluki_core::components::forwarders::Forwarder>::run::_{{closure}}::h256fe1c552d15d03
  [DEL] -39.5Ki  [DEL] -39.4Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::he0c34f1d64f1cb15
  [DEL] -48.9Ki  [DEL] -48.8Ki    anon.0380dfbb7f781e033df0e84fe5c7b856.15.llvm.9470373918651461578
  [DEL] -54.7Ki  [DEL] -54.4Ki    _<datadog_agent_config::generated::datadog_configuration::_::<impl serde_core::de::Deserialize for datadog_agent_config::generated::datadog_configuration::DatadogConfiguration>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::hf7d7b927e74de0d1
  [DEL] -60.1Ki  [DEL] -59.9Ki    saluki_components::common::datadog::io::run_endpoint_io_loop::_{{closure}}::h96edd6670bc21503
  +0.1% +24.2Ki  +0.1% +40.1Ki    TOTAL

@pr-commenter

pr-commenter Bot commented Aug 12, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: 4c8fe708-bd4b-4bd4-9f09-e75000125955
Baseline: 0dee0a96 · Comparison: b710725b · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (5)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
quality_gates_rss_idle memory ⚪ +0.48 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ +0.03 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.11 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.48 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.85 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 229 MiB ≤ 250 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 51.1 MiB ≤ 60 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 94.8 MiB ≤ 100 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 392 MiB ≤ 420 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 31.6 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot merged commit ca31d5f into main Aug 12, 2026
94 checks passed
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the tobz/remove-facet branch August 12, 2026 19:40
dd-octo-sts Bot pushed a commit that referenced this pull request Aug 12, 2026
## Summary

As stated in the PR title.

Our original intent for using `facet` was to get around the limitations of `serde` in the context of using it to deal with Agent configuration. Now that we have the full configuration schema for the Agent, however, we can do much more up front at build time, almost entirely obviating the need for a hypothetical and bespoke configuration loading system based on `facet`.

As such, we're removing the code. :)

## Change Type
- [ ] Bug fix
- [ ] New feature
- [x] Non-functional (chore, refactoring, docs)
- [ ] Performance

## How did you test this PR?

Existing tests, lints, etc etc.

## References

DADP-2

Co-authored-by: toby.lawrence <toby.lawrence@datadoghq.com> ca31d5f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/components Sources, transforms, and destinations. encoder/datadog-events Datadog events encoder. encoder/datadog-logs Datadog Logs encoder. encoder/datadog-metrics Datadog Metrics encoder. encoder/datadog-service-checks Datadog Service Checks encoder. mergequeue-status: done type/chore Updates to dependencies or general "administrative" tasks necessary to maintain the codebase/repo.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants