Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

APM: do not replace tags on special dd tags #25508

Merged
merged 4 commits into from May 13, 2024

Conversation

ajgajg1134
Copy link
Contributor

@ajgajg1134 ajgajg1134 commented May 10, 2024

What does this PR do?

Alters the behavior of "match all" rules for replace_tags config such that they no longer affect internal datadog tags. (ie. those that start with "_."). Note that it is still possible to use replace tags on specific hidden tags if that's required (this should not ever be required, but is left as an option "just in case"), just target the specific tag directly with a replace tags rule.

Motivation

We rely on hidden tags for various product features within APM, some customers with very strict replace tags rules experienced broken APM features when these rules unexpectedly replaced important datadog tags.

Additional Notes

Possible Drawbacks / Trade-offs

It's possible someone is relying on the ability to redact data even within internal datadog tags, but this really should NOT be the case, and if they absolutely must do so then they are able to redact specific tags explicitly still. (But if you're reading this because you want to replace all _dd. tags please let us know via support so we can help support your exact use case!)

Describe how to test/QA your changes

New unit tests change covers this change well!

@ajgajg1134 ajgajg1134 added team/agent-apm trace-agent qa/done Skip QA week as QA was done before merge and regressions are covered by tests labels May 10, 2024
@ajgajg1134 ajgajg1134 added this to the 7.55.0 milestone May 10, 2024
@ajgajg1134 ajgajg1134 requested review from a team as code owners May 10, 2024 14:16
@pr-commenter
Copy link

pr-commenter bot commented May 10, 2024

Test changes on VM

Use this command from test-infra-definitions to manually test this PR changes on a VM:

inv create-vm --pipeline-id=34167294 --os-family=ubuntu

@pr-commenter
Copy link

pr-commenter bot commented May 10, 2024

Regression Detector

Regression Detector Results

Run ID: cd630e84-2bb3-4547-89a5-ff9d1bd17a6e
Baseline: 854f002
Comparison: 7c7d2ff

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

No significant changes in experiment optimization goals

Confidence level: 90.00%
Effect size tolerance: |Δ mean %| ≥ 5.00%

There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.

Experiments ignored for regressions

Regressions in experiments with settings containing erratic: true are ignored.

perf experiment goal Δ mean % Δ mean % CI
file_to_blackhole % cpu utilization -0.62 [-1.76, +0.52]

Fine details of change detection per experiment

perf experiment goal Δ mean % Δ mean % CI
tcp_syslog_to_blackhole ingress throughput +15.94 [-6.98, +38.86]
pycheck_1000_100byte_tags % cpu utilization +2.94 [-1.83, +7.71]
basic_py_check % cpu utilization +0.11 [-2.28, +2.49]
uds_dogstatsd_to_api ingress throughput +0.02 [-0.19, +0.22]
trace_agent_json ingress throughput +0.00 [-0.01, +0.01]
trace_agent_msgpack ingress throughput -0.00 [-0.00, +0.00]
tcp_dd_logs_filter_exclude ingress throughput -0.03 [-0.07, +0.01]
otel_to_otel_logs ingress throughput -0.03 [-0.40, +0.34]
uds_dogstatsd_to_api_cpu % cpu utilization -0.23 [-3.03, +2.57]
file_tree memory utilization -0.35 [-0.44, -0.26]
idle memory utilization -0.60 [-0.64, -0.57]
file_to_blackhole % cpu utilization -0.62 [-1.76, +0.52]

Explanation

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:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. 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.

  3. Its configuration does not mark it "erratic".

Copy link
Contributor

@aliciascott aliciascott left a comment

Choose a reason for hiding this comment

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

@ajgajg1134 Just a quick suggestion for spelling, please request re-review when updated, thanks!

releasenotes/notes/noReplaceDD-5ea756d06f438f23.yaml Outdated Show resolved Hide resolved
Co-authored-by: Alicia Scott <aliciascott@users.noreply.github.com>
Copy link
Contributor

@aliciascott aliciascott left a comment

Choose a reason for hiding this comment

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

looks good

Copy link
Contributor

@knusbaum knusbaum left a comment

Choose a reason for hiding this comment

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

LGTM

@ajgajg1134
Copy link
Contributor Author

/merge

@dd-devflow
Copy link

dd-devflow bot commented May 13, 2024

🚂 MergeQueue

Pull request added to the queue.

There are 2 builds ahead! (estimated merge in less than 1h)

Use /merge -c to cancel this operation!

@dd-mergequeue dd-mergequeue bot merged commit e8db66f into main May 13, 2024
208 checks passed
@dd-mergequeue dd-mergequeue bot deleted the andrew.glaude/skipDDTags branch May 13, 2024 21:20
agent-platform-auto-pr bot pushed a commit that referenced this pull request May 13, 2024
* APM: do not replace tags on special dd tags

* Add release note

* Update releasenotes/notes/noReplaceDD-5ea756d06f438f23.yaml

Co-authored-by: Alicia Scott <aliciascott@users.noreply.github.com>

* APM: replace_tags ignore all hidden tags not just _dd

---------

Co-authored-by: Alicia Scott <aliciascott@users.noreply.github.com>
(cherry picked from commit e8db66f)
ajgajg1134 added a commit that referenced this pull request May 15, 2024
* APM: do not replace tags on special dd tags

* Add release note

* Update releasenotes/notes/noReplaceDD-5ea756d06f438f23.yaml

Co-authored-by: Alicia Scott <aliciascott@users.noreply.github.com>

* APM: replace_tags ignore all hidden tags not just _dd

---------

Co-authored-by: Alicia Scott <aliciascott@users.noreply.github.com>
(cherry picked from commit e8db66f)

Co-authored-by: Andrew Glaude <andrew.glaude@datadoghq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/7.54.x qa/done Skip QA week as QA was done before merge and regressions are covered by tests team/agent-apm trace-agent
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants