chore(docs): property capitalize DogStatsD#1285
Conversation
There was a problem hiding this comment.
Pull request overview
Standardizes “DogStatsD” capitalization across documentation and Rust code by renaming several DogStatsD-related types/identifiers.
Changes:
- Update docs/Makefile output strings to use “DogStatsD”.
- Rename DogStatsD codec types in
saluki-io(e.g.,DogstatsdCodec*→DogStatsDCodec*) and update call sites. - Rename DogStatsD transform configuration/types in
saluki-componentsand update re-exports/usages.
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tooling/dogstatsd_client/README.md | Capitalizes “DogStatsD” in docs output examples. |
| lib/saluki-io/src/deser/codec/dogstatsd/mod.rs | Renames codec/config types and updates an error string. |
| lib/saluki-io/src/deser/codec/dogstatsd/event.rs | Updates references to renamed codec configuration type. |
| lib/saluki-io/src/deser/codec/dogstatsd/metric.rs | Updates references to renamed codec configuration type. |
| lib/saluki-io/src/deser/codec/dogstatsd/helpers.rs | Updates helper signatures to use renamed codec configuration type. |
| lib/saluki-io/src/deser/codec/dogstatsd/service_check.rs | Updates service-check parsing to use renamed types (currently inconsistent). |
| lib/saluki-io/fuzz/fuzz_targets/dogstatsd_decode_packet.rs | Updates fuzz target to use renamed codec/config types. |
| lib/saluki-components/src/transforms/mod.rs | Updates re-exports for renamed DogStatsD transform configuration types. |
| lib/saluki-components/src/transforms/dogstatsd_prefix_filter/mod.rs | Renames transform types/comments (currently incomplete/inconsistent). |
| lib/saluki-components/src/transforms/dogstatsd_mapper/mod.rs | Renames mapper configuration/type (currently incomplete/inconsistent). |
| lib/saluki-components/src/sources/dogstatsd/mod.rs | Updates codec field types and some test imports (but leaves old construction names elsewhere). |
| lib/saluki-components/src/destinations/dsd_stats/mod.rs | Capitalizes “DogStatsD” in a doc comment. |
| bin/agent-data-plane/src/cli/run.rs | Updates transform configuration type names used by the CLI. |
| Makefile | Capitalizes “DogStatsD” in the build target description/output. |
Comments suppressed due to low confidence (1)
lib/saluki-components/src/transforms/dogstatsd_prefix_filter/mod.rs:127
- In
MemoryBoundsyou’re still accounting forDogstatsDPrefixFilter, but the transform struct has been renamed toDogStatsDPrefixFilterin this file. Update the generic type inwith_single_valueto the new struct name to avoid a compile error and ensure memory accounting targets the correct type.
impl MemoryBounds for DogStatsDPrefixFilterConfiguration {
fn specify_bounds(&self, builder: &mut MemoryBoundsBuilder) {
// Capture the size of the heap allocation when the component is built.
builder
.minimum()
.with_single_value::<DogstatsDPrefixFilter>("component struct");
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| pub fn parse_dogstatsd_service_check<'a>( | ||
| input: &'a [u8], config: &DogstatsdCodecConfiguration, | ||
| input: &'a [u8], config: &DogStatsDCodec, |
There was a problem hiding this comment.
parse_dogstatsd_service_check now takes &DogStatsDCodec, but this function only needs the codec configuration (and it calls tags(config) which expects &DogStatsDCodecConfiguration). As written, this won’t compile and also mismatches the other DogStatsD parsers. Change the parameter type back to &DogStatsDCodecConfiguration (and/or import the correct type if you truly intend to pass the full codec).
| input: &'a [u8], config: &DogStatsDCodec, | |
| input: &'a [u8], config: &DogStatsDCodecConfiguration, |
| impl DogStatsDPrefixFilterConfiguration { | ||
| /// Creates a new `DogStatsDPrefixFilterConfiguration` from the given configuration. | ||
| pub fn from_configuration(config: &GenericConfiguration) -> Result<Self, GenericError> { | ||
| let mut typed_config: DogstatsDPrefixFilterConfiguration = config.as_typed()?; | ||
| let mut typed_config: DogStatsDPrefixFilterConfiguration = config.as_typed()?; | ||
| typed_config.configuration = Some(config.clone()); | ||
| Ok(typed_config) |
There was a problem hiding this comment.
DogStatsDPrefixFilterConfiguration is referenced in impls, but the configuration struct declared in this module is still DogstatsDPrefixFilterConfiguration (lowercase 's'), so the impl blocks won’t attach to the actual type and the code won’t compile. Rename the struct (and any remaining occurrences) to match the exported DogStatsDPrefixFilterConfiguration name.
| @@ -257,23 +257,23 @@ impl SynchronousTransformBuilder for DogstatsDMapperConfiguration { | |||
| } | |||
There was a problem hiding this comment.
The builder returns DogstatsDMapper here, but the struct is declared as DogStatsDMapper (capital 'S') below. This will fail to compile; update the returned type to DogStatsDMapper (and align any remaining references/docstrings).
|
|
||
| mod dogstatsd_prefix_filter; | ||
| pub use self::dogstatsd_prefix_filter::DogstatsDPrefixFilterConfiguration; | ||
| pub use self::dogstatsd_prefix_filter::DogStatsDPrefixFilterConfiguration; |
There was a problem hiding this comment.
transforms::mod re-exports DogStatsDPrefixFilterConfiguration, but dogstatsd_prefix_filter/mod.rs still declares DogstatsDPrefixFilterConfiguration. This mismatch will break downstream imports; rename the configuration type in the module (or adjust the re-export) so they match.
| pub use self::dogstatsd_prefix_filter::DogStatsDPrefixFilterConfiguration; | |
| pub use self::dogstatsd_prefix_filter::DogstatsDPrefixFilterConfiguration; |
| /// DogStatsD source. | ||
| pub struct DogStatsD { | ||
| listeners: Vec<Listener>, | ||
| io_buffer_pool: FixedSizeObjectPool<BytesBuffer>, | ||
| codec: DogstatsdCodec, | ||
| codec: DogStatsDCodec, | ||
| context_resolvers: ContextResolvers, | ||
| enabled_filter: EnablePayloadsFilter, | ||
| additional_tags: Arc<[String]>, |
There was a problem hiding this comment.
This file switches the codec field types to DogStatsDCodec, but earlier in the same module the codec is still constructed using DogstatsdCodecConfiguration/DogstatsdCodec (old names). With the saluki_io::deser::codec::dogstatsd::* glob import, those old symbols won’t exist after the rename, so the module won’t compile until the construction site is updated to DogStatsDCodecConfiguration/DogStatsDCodec.
| /// DogStatsD codec configuration. | ||
| #[derive(Clone, Debug)] | ||
| pub struct DogstatsdCodecConfiguration { | ||
| pub struct DogStatsDCodecConfiguration { | ||
| permissive: bool, |
There was a problem hiding this comment.
PR title/metadata indicates a docs-only chore, but this change renames public Rust types (DogstatsdCodec* -> DogStatsDCodec*). That’s a breaking API change for any external consumers of saluki-io; either adjust the PR title/description to reflect a code/API change, or provide compatibility (e.g., type aliases / re-exports) if you intend this to be non-breaking.
94642ae to
79e2b98
Compare
62814a7 to
23cdce0
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 14 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| impl DogstatsDMapperConfiguration { | ||
| impl DogStatsDMapperConfiguration { | ||
| /// Creates a new `DogstatsDMapperConfiguration` from the given configuration. |
There was a problem hiding this comment.
The documentation comment references DogstatsDMapperConfiguration, but the struct was renamed to DogStatsDMapperConfiguration. Update the comment to match the new struct name.
| /// Creates a new `DogstatsDMapperConfiguration` from the given configuration. | |
| /// Creates a new `DogStatsDMapperConfiguration` from the given configuration. |
Binary Size Analysis (Agent Data Plane)Target: d890d6b (baseline) vs 2792424 (comparison) diff
|
| Module | File Size | Symbols |
|---|---|---|
saluki_components::sources::dogstatsd |
+0 B | 2 |
saluki_components::transforms::dogstatsd_prefix_filter |
+0 B | 42 |
saluki_components::transforms::dogstatsd_mapper |
+0 B | 8 |
core |
+0 B | 14 |
saluki_core::topology::blueprint |
+0 B | 2 |
Detailed Symbol Changes
FILE SIZE VM SIZE
-------------- --------------
[NEW] +27.2Ki [NEW] +27.1Ki saluki_components::sources::dogstatsd::handle_frame::hd09917e17118d1e0
[NEW] +12.1Ki [NEW] +11.9Ki _<saluki_components::transforms::dogstatsd_prefix_filter::DogStatsDPrefixFilter as saluki_core::components::transforms::Transform>::run::_{{closure}}::h4b9be6d35263b2e8
[NEW] +11.7Ki [NEW] +11.4Ki _<saluki_components::transforms::dogstatsd_mapper::DogStatsDMapper as saluki_core::components::transforms::SynchronousTransform>::transform_buffer::hfd73e9c91ecb3d96
[NEW] +7.92Ki [NEW] +7.66Ki _<saluki_components::transforms::dogstatsd_mapper::DogStatsDMapperConfiguration as saluki_core::components::transforms::builder::SynchronousTransformBuilder>::build::_{{closure}}::h5dc9eb48d8eab5b2
[NEW] +1.47Ki [NEW] +1.31Ki core::ptr::drop_in_place<saluki_components::transforms::dogstatsd_mapper::DogStatsDMapperConfiguration>::h424324b4e3fab998
[NEW] +1.45Ki [NEW] +1.20Ki _<saluki_components::transforms::dogstatsd_prefix_filter::DogStatsDPrefixFilterConfiguration as saluki_core::components::transforms::builder::TransformBuilder>::build::_{{closure}}::h5eeb545ed2b3bf80
[NEW] +1.29Ki [NEW] +1.17Ki saluki_core::topology::blueprint::TopologyBlueprint::add_transform::hc9fe5bbc5fd69030
[NEW] +1.21Ki [NEW] +1.01Ki _<saluki_components::transforms::dogstatsd_mapper::DogStatsDMapperConfiguration as memory_accounting::MemoryBounds>::specify_bounds::ha218618be246b75f
[NEW] +1.07Ki [NEW] +838 core::ptr::drop_in_place<<saluki_components::transforms::dogstatsd_prefix_filter::DogStatsDPrefixFilter as saluki_core::components::transforms::Transform>::run::{{closure}}>::hde4240f050fb20d3
[NEW] +1.01Ki [NEW] +868 core::ptr::drop_in_place<saluki_components::transforms::dogstatsd_prefix_filter::DogStatsDPrefixFilterConfiguration>::hbbe4da14d1f06740
[DEL] -1.01Ki [DEL] -868 core::ptr::drop_in_place<saluki_components::transforms::dogstatsd_prefix_filter::DogstatsDPrefixFilterConfiguration>::hab7c998b0cd74e00
[DEL] -1.07Ki [DEL] -838 core::ptr::drop_in_place<<saluki_components::transforms::dogstatsd_prefix_filter::DogstatsDPrefixFilter as saluki_core::components::transforms::Transform>::run::{{closure}}>::hac899a32646189e7
[DEL] -1.21Ki [DEL] -1.01Ki _<saluki_components::transforms::dogstatsd_mapper::DogstatsDMapperConfiguration as memory_accounting::MemoryBounds>::specify_bounds::hd77bfb7d615f2e10
[DEL] -1.29Ki [DEL] -1.17Ki saluki_core::topology::blueprint::TopologyBlueprint::add_transform::hc291167c356a7131
[DEL] -1.45Ki [DEL] -1.20Ki _<saluki_components::transforms::dogstatsd_prefix_filter::DogstatsDPrefixFilterConfiguration as saluki_core::components::transforms::builder::TransformBuilder>::build::_{{closure}}::hae3eaadbead7c2b2
[DEL] -1.47Ki [DEL] -1.31Ki core::ptr::drop_in_place<saluki_components::transforms::dogstatsd_mapper::DogstatsDMapperConfiguration>::h7aa3e936d472efd8
[DEL] -7.92Ki [DEL] -7.66Ki _<saluki_components::transforms::dogstatsd_mapper::DogstatsDMapperConfiguration as saluki_core::components::transforms::builder::SynchronousTransformBuilder>::build::_{{closure}}::h3e4df43216871a0d
[DEL] -11.7Ki [DEL] -11.4Ki _<saluki_components::transforms::dogstatsd_mapper::DogstatsDMapper as saluki_core::components::transforms::SynchronousTransform>::transform_buffer::hefad114bbd2d3b6c
[DEL] -12.1Ki [DEL] -11.9Ki _<saluki_components::transforms::dogstatsd_prefix_filter::DogstatsDPrefixFilter as saluki_core::components::transforms::Transform>::run::_{{closure}}::hc4b2f14bb3b7324d
[DEL] -27.2Ki [DEL] -27.1Ki saluki_components::sources::dogstatsd::handle_frame::hccb05cbc3099e6f9
[ = ] 0 [ = ] 0 TOTAL
thieman
left a comment
There was a problem hiding this comment.
Caught one otherwise LGTM
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 14 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Travis Thieman <travis.thieman@gmail.com>
92f6ed1 to
2792424
Compare
Regression Detector (Agent Data Plane)Regression Detector ResultsRun ID: e2f3f785-4aa4-45ee-b4b9-dab5c327a90c Baseline: d890d6b Optimization Goals: ✅ No significant changes detected
|
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | otlp_ingest_logs_5mb_cpu | % cpu utilization | +2.77 | [-1.76, +7.31] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_logs_5mb_memory | memory utilization | +0.69 | [+0.29, +1.10] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_logs_5mb_throughput | ingress throughput | +0.03 | [-0.09, +0.15] | 1 | (metrics) (profiles) (logs) |
Fine details of change detection per experiment
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | dsd_uds_10mb_3k_contexts_cpu | % cpu utilization | +4.61 | [-27.57, +36.79] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_metrics_5mb_memory | memory utilization | +3.82 | [+3.55, +4.09] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_100mb_3k_contexts_cpu | % cpu utilization | +3.59 | [-2.68, +9.85] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_5mb_cpu | % cpu utilization | +2.79 | [+0.53, +5.04] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_logs_5mb_cpu | % cpu utilization | +2.77 | [-1.76, +7.31] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_ottl_filtering_5mb_cpu | % cpu utilization | +2.50 | [+0.06, +4.95] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_10mb_3k_contexts_memory | memory utilization | +1.03 | [+0.85, +1.22] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_logs_5mb_memory | memory utilization | +0.69 | [+0.29, +1.10] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_512kb_3k_contexts_memory | memory utilization | +0.46 | [+0.29, +0.63] | 1 | (metrics) (profiles) (logs) |
| ➖ | quality_gates_rss_dsd_low | memory utilization | +0.36 | [+0.17, +0.56] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_100mb_3k_contexts_memory | memory utilization | +0.31 | [+0.13, +0.49] | 1 | (metrics) (profiles) (logs) |
| ➖ | quality_gates_rss_dsd_medium | memory utilization | +0.24 | [+0.05, +0.43] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_ottl_filtering_5mb_memory | memory utilization | +0.20 | [-0.14, +0.54] | 1 | (metrics) (profiles) (logs) |
| ➖ | quality_gates_rss_dsd_heavy | memory utilization | +0.18 | [+0.05, +0.32] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_500mb_3k_contexts_cpu | % cpu utilization | +0.15 | [-1.31, +1.60] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_500mb_3k_contexts_memory | memory utilization | +0.12 | [-0.04, +0.29] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_logs_5mb_throughput | ingress throughput | +0.03 | [-0.09, +0.15] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_ottl_transform_5mb_throughput | ingress throughput | +0.00 | [-0.02, +0.02] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_512kb_3k_contexts_throughput | ingress throughput | +0.00 | [-0.05, +0.05] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_ottl_filtering_5mb_throughput | ingress throughput | -0.00 | [-0.02, +0.02] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_5mb_throughput | ingress throughput | -0.00 | [-0.02, +0.02] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_100mb_3k_contexts_throughput | ingress throughput | -0.00 | [-0.02, +0.02] | 1 | (metrics) (profiles) (logs) |
| ➖ | quality_gates_rss_dsd_ultraheavy | memory utilization | -0.00 | [-0.14, +0.13] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_1mb_3k_contexts_throughput | ingress throughput | -0.00 | [-0.06, +0.05] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_10mb_3k_contexts_throughput | ingress throughput | -0.00 | [-0.13, +0.13] | 1 | (metrics) (profiles) (logs) |
| ➖ | quality_gates_rss_idle | memory utilization | -0.02 | [-0.07, +0.02] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_metrics_5mb_throughput | ingress throughput | -0.03 | [-0.16, +0.10] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_1mb_3k_contexts_memory | memory utilization | -0.27 | [-0.44, -0.09] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_5mb_memory | memory utilization | -0.62 | [-0.87, -0.37] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_512kb_3k_contexts_cpu | % cpu utilization | -0.63 | [-57.36, +56.10] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_ottl_transform_5mb_memory | memory utilization | -0.70 | [-0.94, -0.46] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_500mb_3k_contexts_throughput | ingress throughput | -1.62 | [-1.75, -1.50] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_metrics_5mb_cpu | % cpu utilization | -3.00 | [-10.32, +4.31] | 1 | (metrics) (profiles) (logs) |
| ➖ | otlp_ingest_traces_ottl_transform_5mb_cpu | % cpu utilization | -3.30 | [-5.48, -1.12] | 1 | (metrics) (profiles) (logs) |
| ➖ | dsd_uds_1mb_3k_contexts_cpu | % cpu utilization | -3.48 | [-57.39, +50.42] | 1 | (metrics) (profiles) (logs) |
Bounds Checks: ✅ Passed
| perf | experiment | bounds_check_name | replicates_passed | observed_value | links |
|---|---|---|---|---|---|
| ✅ | quality_gates_rss_dsd_heavy | memory_usage | 10/10 | 113.52MiB ≤ 140MiB | (metrics) (profiles) (logs) |
| ✅ | quality_gates_rss_dsd_low | memory_usage | 10/10 | 34.01MiB ≤ 50MiB | (metrics) (profiles) (logs) |
| ✅ | quality_gates_rss_dsd_medium | memory_usage | 10/10 | 54.09MiB ≤ 75MiB | (metrics) (profiles) (logs) |
| ✅ | quality_gates_rss_dsd_ultraheavy | memory_usage | 10/10 | 169.44MiB ≤ 200MiB | (metrics) (profiles) (logs) |
| ✅ | quality_gates_rss_idle | memory_usage | 10/10 | 21.18MiB ≤ 40MiB | (metrics) (profiles) (logs) |
Explanation
Confidence level: 90.00%
Effect size tolerance: |Δ mean %| ≥ 5.00%
Performance changes are noted in the perf column of each table:
- ✅ = significantly better comparison variant performance
- ❌ = significantly worse comparison variant performance
- ➖ = no significant change in performance
A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".
For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:
-
Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.
-
Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.
-
Its configuration does not mark it "erratic".

Summary
As stated in the PR title.
Words have meaning, and I like our words to mean the right thing. :)
Change Type
How did you test this PR?
References
AGTMETRICS-400