Skip to content

chore(config): rename saluki-config to saluki-config-tools - #1894

Closed
webern wants to merge 5 commits into
m/config-gen-datadog-deserializerfrom
m/foundation
Closed

chore(config): rename saluki-config to saluki-config-tools#1894
webern wants to merge 5 commits into
m/config-gen-datadog-deserializerfrom
m/foundation

Conversation

@webern

@webern webern commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Summary

saluki-config is a utilities crate for configuration mechanics (providers, loaders,
dynamic watchers). A follow-on PR series introduces typed configuration structs, at which
point the name saluki-config would conflate with those new crates. This rename preempts
that ambiguity.

Change Type

  • Non-functional (chore, refactoring, docs)

How did you test this PR?

This is a mechanical rename with no logic changes. make fmt && make check-all passed.

References

@dd-octo-sts dd-octo-sts Bot added area/config Configuration. area/components Sources, transforms, and destinations. source/dogstatsd DogStatsD source. transform/aggregate Aggregate transform. area/observability Internal observability of ADP and Saluki. transform/dogstatsd-mapper DogStatsD Mapper synchronous transform. otlp/metrics OTLP metrics (OTeL, open-telemetry) 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. encoder/datadog-stats Datadog APM Stats encoder. encoder/datadog-traces Datadog Traces encoder. forwarder/datadog Datadog forwarder. otlp/traces OTLP traces (OTeL, open-telemetry) otlp/logs OTLP logs (OTeL, open-telemetry) source/otlp OTLP source. transform/apm-stats APM Stats transform. transform/trace-obfuscation Trace Obfuscation synchronous transform. transform/trace-sampler Trace Sampler synchronous transform. labels Jun 19, 2026

webern commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

@datadog-prod-us1-4

This comment has been minimized.

@pr-commenter

pr-commenter Bot commented Jun 19, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: da59d73 · Comparison: a8c0369 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 40.55 MiB (baseline) vs 40.53 MiB (comparison)
Size Change: -20.45 KiB (-0.05%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
saluki_config -118.23 KiB 95
core -57.09 KiB 21754
anon.6a8d6ec5b1f4e882d8198b663e868898.13.llvm.14546428259864905478 +48.93 KiB 1
anon.82eed2807a2ccf1066380c6b10547f44.13.llvm.4366587632014520895 -48.93 KiB 1
figment +35.23 KiB 794
saluki_config_tools::GenericConfiguration::try_get_typed +32.82 KiB 19
anon.46cdadc29311fa19dd337038052bddde.1031.llvm.2604772181265915144 +28.07 KiB 1
anon.bf46b5cf91c3a9d33fa58ade8030f63d.1031.llvm.6297278845612599996 -28.07 KiB 1
saluki_config_tools::run_dynamic_config_updater::_{{closure}} +17.23 KiB 17
anon.c631d4f28c2b2db28eff0b5e986a13c9.248.llvm.11665572444932606208 -16.70 KiB 1
anon.6a3b04452bc7502bd42859e63213c315.251.llvm.17018746984451724332 +16.60 KiB 1
alloc +16.49 KiB 5388
anon.6314581ad0c2743ff4e9df3a62377361.16.llvm.18280703519177233809 +15.68 KiB 1
anon.661ef608d0e9e2423c9230617f2bc873.62.llvm.10199967635082326453 -15.25 KiB 1
hyper -15.08 KiB 780
anon.01e88159e61714129e591f0de24e902b.375.llvm.4045305816842324405 +14.33 KiB 1
anon.a9030c24ed0837a8b572f3c7e56188a8.26.llvm.9410433398480454732 -13.82 KiB 1
saluki_components::common::datadog -13.23 KiB 512
saluki_config_tools::GenericConfiguration::as_typed +12.35 KiB 18
anon.d26d3a3338560589a6999640d2c82645.117.llvm.5221518078202624740 +12.09 KiB 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW] +1.77Mi  [NEW] +1.77Mi    _<chrono_tz::prebuilt::timezones::Tz as chrono_tz::timezone_impl::TimeSpans>::timespans::hf1af569602ecff11
  [NEW] +55.3Ki  [NEW] +55.1Ki    saluki_components::common::datadog::io::run_endpoint_io_loop::_{{closure}}::hf9a5bc4cc77a2a29
  [NEW] +48.9Ki  [NEW] +48.8Ki    anon.6a8d6ec5b1f4e882d8198b663e868898.13.llvm.14546428259864905478
  [NEW] +40.0Ki  [NEW] +39.8Ki    _<saluki_components::forwarders::otlp::OtlpForwarder as saluki_core::components::forwarders::Forwarder>::run::_{{closure}}::h3f7d3c909a888da6
  [NEW] +39.9Ki  [NEW] +39.8Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::hbccdfbb96844eace
  [NEW] +33.5Ki  [NEW] +33.3Ki    _<saluki_components::transforms::aggregate::Aggregate as saluki_core::components::transforms::Transform>::run::_{{closure}}::h98bc90ce86c943b5
  [NEW] +29.8Ki  [NEW] +29.7Ki    agent_data_plane::cli::dogstatsd::handle_dogstatsd_command::_{{closure}}::hb46d523d19732438
  [NEW] +28.2Ki  [NEW] +28.1Ki    saluki_components::sources::otlp::metrics::translator::OtlpMetricsTranslator::translate_metrics::h254f8060760fbfa2
  [NEW] +28.1Ki  [NEW] +28.0Ki    anon.46cdadc29311fa19dd337038052bddde.1031.llvm.2604772181265915144
  [NEW] +25.6Ki  [NEW] +25.5Ki    h2::proto::connection::DynConnection<B>::recv_frame::hb39ecb323cf482dc
  [NEW] +25.2Ki  [NEW] +25.0Ki    core::ptr::drop_in_place<agent_data_plane::cli::run::handle_run_command::{{closure}}>::h3cb1cdc14a446624
  [DEL] -28.1Ki  [DEL] -28.0Ki    anon.bf46b5cf91c3a9d33fa58ade8030f63d.1031.llvm.6297278845612599996
  [DEL] -28.3Ki  [DEL] -28.2Ki    saluki_components::sources::otlp::metrics::translator::OtlpMetricsTranslator::translate_metrics::h6032372c5d685c9d
  [DEL] -30.4Ki  [DEL] -30.3Ki    agent_data_plane::cli::dogstatsd::handle_dogstatsd_command::_{{closure}}::hd47e947b534c018e
  [DEL] -33.7Ki  [DEL] -33.5Ki    _<saluki_components::transforms::aggregate::Aggregate as saluki_core::components::transforms::Transform>::run::_{{closure}}::hb4a84cbbc21a072f
  [DEL] -39.8Ki  [DEL] -39.7Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::h772878347210b56d
  [DEL] -40.0Ki  [DEL] -39.8Ki    _<saluki_components::forwarders::otlp::OtlpForwarder as saluki_core::components::forwarders::Forwarder>::run::_{{closure}}::h622a7084ee8b9e54
  [DEL] -48.9Ki  [DEL] -48.8Ki    anon.82eed2807a2ccf1066380c6b10547f44.13.llvm.4366587632014520895
  [DEL] -54.3Ki  [DEL] -54.1Ki    saluki_components::common::datadog::io::run_endpoint_io_loop::_{{closure}}::h2c37bd2f0a7c3fc7
  -0.2% -71.6Ki  -0.4% -86.4Ki    [85349 Others]
  [DEL] -1.77Mi  [DEL] -1.77Mi    _<chrono_tz::prebuilt::timezones::Tz as chrono_tz::timezone_impl::TimeSpans>::timespans::h68dcf722c1a9f6b4
  -0.0% -20.5Ki  -0.1% -35.6Ki    TOTAL

@pr-commenter

pr-commenter Bot commented Jun 19, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: 016dd636-8956-44e1-9b37-dc7a5592038e
Baseline: da59d73b · Comparison: a8c0369f · 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_dsd_ultraheavy memory ⚪ +0.38 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ +0.35 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ +0.26 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ +0.21 metrics profiles logs
quality_gates_rss_idle memory ⚪ -0.01 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 132 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 42.3 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 65.3 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 192 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 28.3 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.

@webern
webern force-pushed the m/config-gen-datadog-deserializer branch from 5a9e285 to 101a99e Compare June 24, 2026 10:03
@webern
webern marked this pull request as ready for review June 24, 2026 15:33
@webern
webern requested a review from a team as a code owner June 24, 2026 15:33
Copilot AI review requested due to automatic review settings June 24, 2026 15:33

Copilot AI 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.

Pull request overview

This PR renames the workspace configuration utilities crate from saluki-config to saluki-config-tools to avoid future naming collisions as typed configuration crates are introduced.

Changes:

  • Renames the crate and updates workspace membership/dependencies (Cargo.toml files) and Rust import paths across binaries and libraries.
  • Moves/introduces saluki-config-tools crate source files (configuration loader, dynamic config utilities, and Serde helpers) under the new crate name.
  • Updates dependency metadata files (Cargo.lock, LICENSE-3rdparty.csv) to reflect the new resolution/state.

Reviewed changes

Copilot reviewed 83 out of 94 changed files in this pull request and generated no comments.

Show a summary per file
File Description
LICENSE-3rdparty.csv Updates third-party license inventory entries.
Cargo.toml Workspace member/dependency rename to saluki-config-tools.
Cargo.lock Lockfile updated to reflect crate rename and (currently) broader dependency resolution changes.
lib/saluki-config-tools/Cargo.toml Crate renamed to saluki-config-tools.
lib/saluki-config-tools/src/lib.rs ConfigurationLoader / GenericConfiguration implementation under new crate name.
lib/saluki-config-tools/src/provider.rs File provider helpers for YAML/JSON with key-alias support.
lib/saluki-config-tools/src/space_separated.rs Serde helper for space-separated-or-seq string lists.
lib/saluki-config-tools/src/duration_string.rs DurationString and Go-style duration parsing utilities.
lib/saluki-config-tools/src/dynamic/mod.rs Dynamic config module wiring.
lib/saluki-config-tools/src/dynamic/event.rs Dynamic config event/update types.
lib/saluki-config-tools/src/dynamic/diff.rs Dynamic config diffing logic.
lib/saluki-config-tools/src/dynamic/watcher.rs Key-specific dynamic config watcher.
lib/saluki-env/Cargo.toml Dependency rename to saluki-config-tools.
lib/saluki-env/src/workload/on_demand_pid.rs Import path updated to saluki_config_tools.
lib/saluki-env/src/workload/helpers/containerd/mod.rs Import path updated (incl. tests).
lib/saluki-env/src/workload/helpers/cgroups.rs Import path updated.
lib/saluki-env/src/workload/collectors/containerd.rs Import path updated.
lib/saluki-env/src/workload/collectors/cgroups.rs Import path updated.
lib/saluki-env/src/host/providers/fixed.rs Import path updated.
lib/saluki-env/src/features/detector.rs Import path updated.
lib/saluki-env/src/features/containerd.rs Import path updated.
lib/saluki-components/Cargo.toml Dependency rename + feature flag rename for antithesis.
lib/saluki-components/src/transforms/aggregate/mod.rs Import path updated.
lib/saluki-components/src/transforms/apm_stats/mod.rs Import path updated.
lib/saluki-components/src/transforms/autoscaling_failover_gateway/mod.rs Import path updated (tests).
lib/saluki-components/src/transforms/dogstatsd_mapper/mod.rs Import path updated.
lib/saluki-components/src/transforms/mrf_gateway/mod.rs Import path updated (incl. tests).
lib/saluki-components/src/transforms/trace_obfuscation/mod.rs Import path updated.
lib/saluki-components/src/transforms/trace_sampler/mod.rs Import path updated.
lib/saluki-components/src/sources/otlp/mod.rs Import path updated.
lib/saluki-components/src/sources/dogstatsd/mod.rs Import path updated (incl. tests).
lib/saluki-components/src/sources/dogstatsd/replay/capture_api.rs Import path updated for duration parsing helper.
lib/saluki-components/src/sources/checks_ipc/mod.rs Import path updated.
lib/saluki-components/src/relays/otlp/mod.rs Import path updated.
lib/saluki-components/src/forwarders/datadog/mod.rs Import path updated (incl. dynamic tests).
lib/saluki-components/src/forwarders/cluster_agent/mod.rs Import path updated (incl. tests).
lib/saluki-components/src/forwarders/otlp/mod.rs Import path updated.
lib/saluki-components/src/encoders/datadog/events/mod.rs Import path updated.
lib/saluki-components/src/encoders/datadog/logs/mod.rs Import path updated.
lib/saluki-components/src/encoders/datadog/metrics/mod.rs Import path updated (incl. tests).
lib/saluki-components/src/encoders/datadog/service_checks/mod.rs Import path updated.
lib/saluki-components/src/encoders/datadog/stats/mod.rs Import path updated.
lib/saluki-components/src/encoders/datadog/traces/mod.rs Import path updated (incl. tests).
lib/saluki-components/src/decoders/otlp/mod.rs Import path updated.
lib/saluki-components/src/destinations/dsd_debug_log/mod.rs Import path updated (incl. tests).
lib/saluki-components/src/config/mod.rs Rustdoc links updated to new crate path.
lib/saluki-components/src/config/autoscaling_failover.rs Import path updated (incl. tests).
lib/saluki-components/src/config/cluster_agent.rs Import path updated (incl. tests).
lib/saluki-components/src/config/mrf.rs Import path updated (incl. tests).
lib/saluki-components/src/common/otlp/config.rs Import path updated.
lib/saluki-components/src/common/datadog/apm.rs Import path updated (incl. tests).
lib/saluki-components/src/common/datadog/config.rs Import path updated (incl. tests).
lib/saluki-components/src/common/datadog/endpoints.rs Import path updated (incl. tests).
lib/saluki-components/src/common/datadog/io.rs Import path updated (incl. tests).
lib/saluki-components/src/common/datadog/obfuscation.rs Import path updated.
lib/saluki-components/src/common/datadog/proxy.rs Import path updated.
lib/saluki-components/src/common/datadog/retry.rs Import path updated (incl. tests).
lib/saluki-components/src/common/datadog/validation.rs Import path updated (incl. tests + type refs).
lib/saluki-app/Cargo.toml Dependency rename to saluki-config-tools.
lib/saluki-app/src/accounting.rs Import path updated.
lib/saluki-app/src/bootstrap.rs Import path updated.
lib/saluki-app/src/config.rs Import path updated.
lib/datadog-agent/config-testing/Cargo.toml Dependency rename to saluki-config-tools.
lib/datadog-agent/config-testing/src/smoke_test.rs Import path updated + upsert path updated.
lib/datadog-agent/commons/Cargo.toml Dependency rename to saluki-config-tools.
lib/datadog-agent/commons/src/ipc/config.rs Import path updated (incl. tests).
lib/datadog-agent/commons/src/ipc/client/mod.rs Import path updated.
bin/correctness/panoramic/Cargo.toml Dependency rename to saluki-config-tools.
bin/correctness/panoramic/src/config.rs Import path updated.
bin/correctness/panoramic/src/correctness/config.rs Import path updated.
bin/agent-data-plane/Cargo.toml Dependency rename to saluki-config-tools.
bin/agent-data-plane/src/main.rs Import path updated.
bin/agent-data-plane/src/config.rs Import path updated (incl. tests).
bin/agent-data-plane/src/internal/mod.rs Import path updated.
bin/agent-data-plane/src/internal/control_plane.rs Import path updated.
bin/agent-data-plane/src/internal/logging.rs Import path updated + log target string updated (incl. tests).
bin/agent-data-plane/src/internal/remote_agent.rs Import path updated (dynamic + upsert).
bin/agent-data-plane/src/internal/env/mod.rs Import path updated.
bin/agent-data-plane/src/internal/env/autodiscovery.rs Import path updated.
bin/agent-data-plane/src/internal/env/host.rs Import path updated.
bin/agent-data-plane/src/internal/env/workload/mod.rs Import path updated.
bin/agent-data-plane/src/internal/env/workload/collectors/workloadmeta.rs Import path updated.
bin/agent-data-plane/src/internal/env/workload/collectors/tagger.rs Import path updated.
bin/agent-data-plane/src/components/tag_filterlist/mod.rs Import path updated (incl. tests).
bin/agent-data-plane/src/components/ottl_filter_processor/mod.rs Import path updated (incl. tests).
bin/agent-data-plane/src/components/ottl_transform_processor/mod.rs Import path updated (incl. tests).
bin/agent-data-plane/src/components/host_tags/mod.rs Import path updated.
bin/agent-data-plane/src/components/dogstatsd_prefix_filter/mod.rs Import path updated (incl. tests).
bin/agent-data-plane/src/components/dogstatsd_post_aggregate_filter/mod.rs Import path updated (incl. tests).
bin/agent-data-plane/src/cli/config.rs Import path updated.
bin/agent-data-plane/src/cli/debug/mod.rs Import path updated.
bin/agent-data-plane/src/cli/dogstatsd.rs Import path updated (incl. tests).
bin/agent-data-plane/src/cli/run.rs Import path updated.
bin/agent-data-plane/src/cli/utils.rs Import path updated.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tobz tobz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This one I'm a little bit sketchy on.

It's not clear to me why the typed configuration that we'll generate, either for the Agent side or Saluki side, would need to live in saluki-config and thus necessitate this crate renaming... 🤔

@webern
webern force-pushed the m/config-gen-datadog-deserializer branch from 2aa1e33 to 0b4737b Compare June 24, 2026 20:59
@webern

webern commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

This one I'm a little bit sketchy on.

It's not clear to me why the typed configuration that we'll generate, either for the Agent side or Saluki side, would need to live in saluki-config and thus necessitate this crate renaming... 🤔

@tobz the new crate names are saluki-component-config and agent-data-plane-config. This rename is not strictly necessary but it feels like a good disambiguation to me. saluki-config is not where Saluki config lives, if that makes sense, so I thought it would be a good idea to make it more clear.

webern added 5 commits June 26, 2026 11:29
Rename the forwarder DatadogConfiguration to DatadogForwarderConfiguration, then
generate a public nested DatadogConfiguration in datadog-agent-config for the
support: full / support: partial overlay keys. The overlay selects the keys
(schema pruning); typify generates the nested struct tree from the pruned JSON
Schema. Numerics mirror the schema (f64); refinement is deferred to the
translator. Mostly unused until the translator PR.
The name saluki-config conflicts with the typed config structs
used to configure saluki components and ADP. The crate is a
utility crate for config mechanics; -tools disambiguates it from
the config translation system being introduced.
saluki-components referenced the old saluki-config name
in its antithesis feature list.
@webern
webern force-pushed the m/config-gen-datadog-deserializer branch from 0b4737b to c9aa69b Compare June 26, 2026 15:05
@webern

webern commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

Closing. I still want to rename it 😅 , but a design change in the works may make it less defensible.

@webern webern closed this Jun 29, 2026
@webern
webern deleted the m/foundation branch June 29, 2026 15:42
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. area/config Configuration. area/observability Internal observability of ADP and Saluki. 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. encoder/datadog-stats Datadog APM Stats encoder. encoder/datadog-traces Datadog Traces encoder. forwarder/datadog Datadog forwarder. otlp/logs OTLP logs (OTeL, open-telemetry) otlp/metrics OTLP metrics (OTeL, open-telemetry) otlp/traces OTLP traces (OTeL, open-telemetry) source/dogstatsd DogStatsD source. source/otlp OTLP source. transform/aggregate Aggregate transform. transform/apm-stats APM Stats transform. transform/dogstatsd-mapper DogStatsD Mapper synchronous transform. transform/trace-obfuscation Trace Obfuscation synchronous transform. transform/trace-sampler Trace Sampler synchronous transform.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants