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

chore(tracing): make traceback size limit configurable #7558

Merged
merged 10 commits into from
Nov 15, 2023

Conversation

emmettbutler
Copy link
Collaborator

@emmettbutler emmettbutler commented Nov 10, 2023

This pull request fixes #4623 by making the size limit of tracebacks included in span tags configurable. It does not change the default limit.

Checklist

  • Change(s) are motivated and described in the PR description.
  • Testing strategy is described if automated tests are not included in the PR.
  • Risk is outlined (performance impact, potential for breakage, maintainability, etc).
  • Change is maintainable (easy to change, telemetry, documentation).
  • Library release note guidelines are followed. If no release note is required, add label changelog/no-changelog.
  • Documentation is included (in-code, generated user docs, public corp docs).
  • Backport labels are set (if applicable)

Reviewer Checklist

  • Title is accurate.
  • No unnecessary changes are introduced.
  • Description motivates each change.
  • Avoids breaking API changes unless absolutely necessary.
  • Testing strategy adequately addresses listed risk(s).
  • Change is maintainable (easy to change, telemetry, documentation).
  • Release note makes sense to a user of the library.
  • Reviewer has explicitly acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment.
  • Backport labels are set in a manner that is consistent with the release branch maintenance policy
  • If this PR touches code that signs or publishes builds or packages, or handles credentials of any kind, I've requested a review from @DataDog/security-design-and-guidance.
  • This PR doesn't touch any of that.

@emmettbutler emmettbutler requested review from a team as code owners November 10, 2023 19:53
@emmettbutler emmettbutler marked this pull request as draft November 10, 2023 19:53
@pr-commenter
Copy link

pr-commenter bot commented Nov 10, 2023

Benchmarks

Benchmark execution time: 2023-11-13 17:29:04

Comparing candidate commit 76491c0 in PR branch emmett.butler/traceback-config with baseline commit 2348097 in branch 2.x.

Found 1 performance improvements and 5 performance regressions! Performance is the same for 84 metrics, 0 unstable metrics.

scenario:iastpropagation-no-propagation

  • 🟥 max_rss_usage [+0.959MB; +1.070MB] or [+2.864%; +3.195%]

scenario:otelspan-start-finish

  • 🟥 max_rss_usage [+661.606KB; +835.482KB] or [+2.245%; +2.835%]

scenario:sethttpmeta-no-useragentvariant

  • 🟥 max_rss_usage [+576.381KB; +788.406KB] or [+2.006%; +2.744%]

scenario:sethttpmeta-obfuscation-regular-case-explicit-query

  • 🟥 max_rss_usage [+611.880KB; +770.930KB] or [+2.119%; +2.669%]

scenario:sethttpmeta-obfuscation-regular-case-implicit-query

  • 🟩 max_rss_usage [-919.466KB; -734.498KB] or [-3.098%; -2.475%]

scenario:sethttpmeta-useragentvariant_not_exists_2

  • 🟥 max_rss_usage [+646.795KB; +806.466KB] or [+2.254%; +2.811%]

@emmettbutler emmettbutler changed the title Emmett.butler/traceback config chore(tracing): make traceback size limit configurable Nov 13, 2023
@emmettbutler emmettbutler marked this pull request as ready for review November 13, 2023 17:23
@emmettbutler emmettbutler enabled auto-merge (squash) November 15, 2023 14:50
@emmettbutler emmettbutler merged commit b09b21e into 2.x Nov 15, 2023
139 checks passed
@emmettbutler emmettbutler deleted the emmett.butler/traceback-config branch November 15, 2023 16:41
sanchda pushed a commit that referenced this pull request Nov 15, 2023
This pull request fixes
#4623 by making the size
limit of tracebacks included in span tags configurable. It does not
change the default limit.

## Checklist

- [x] Change(s) are motivated and described in the PR description.
- [x] Testing strategy is described if automated tests are not included
in the PR.
- [x] Risk is outlined (performance impact, potential for breakage,
maintainability, etc).
- [x] Change is maintainable (easy to change, telemetry, documentation).
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed. If no release note is required, add label
`changelog/no-changelog`.
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/)).
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist

- [x] Title is accurate.
- [x] No unnecessary changes are introduced.
- [x] Description motivates each change.
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes unless absolutely necessary.
- [x] Testing strategy adequately addresses listed risk(s).
- [x] Change is maintainable (easy to change, telemetry, documentation).
- [x] Release note makes sense to a user of the library.
- [x] Reviewer has explicitly acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment.
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
- [x] If this PR touches code that signs or publishes builds or
packages, or handles credentials of any kind, I've requested a review
from `@DataDog/security-design-and-guidance`.
- [x] This PR doesn't touch any of that.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request Apr 27, 2024
DataDog#7558 made the traceback size configurable, but tracebacks for exceptions were still hardcoded with a limit of 30.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request Apr 27, 2024
DataDog#7558 made the traceback size configurable, but
tracebacks for exceptions were still hardcoded with a limit of 30.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request Apr 27, 2024
DataDog#7558 made the traceback size configurable, but
tracebacks for exceptions were still hardcoded with a limit of 30.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request Apr 27, 2024
DataDog#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and tests
were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request Apr 29, 2024
DataDog#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and tests
were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request May 3, 2024
DataDog#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and tests
were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.
quiqueg added a commit to quiqueg/dd-trace-py that referenced this pull request May 6, 2024
DataDog#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and tests
were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.
erikayasuda added a commit that referenced this pull request May 24, 2024
#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: erikayasuda <153395705+erikayasuda@users.noreply.github.com>
github-actions bot pushed a commit that referenced this pull request May 24, 2024
#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: erikayasuda <153395705+erikayasuda@users.noreply.github.com>
(cherry picked from commit 1b954de)
github-actions bot pushed a commit that referenced this pull request May 24, 2024
#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: erikayasuda <153395705+erikayasuda@users.noreply.github.com>
(cherry picked from commit 1b954de)
github-actions bot pushed a commit that referenced this pull request May 24, 2024
#7558 made the traceback size
configurable via `DD_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: erikayasuda <153395705+erikayasuda@users.noreply.github.com>
(cherry picked from commit 1b954de)
erikayasuda pushed a commit that referenced this pull request May 28, 2024
…9389)

Backport 1b954de from #9112 to 2.7.

#7558 made the traceback size
configurable via `DD_TRACE_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: Matt Alexander <1710128+quiqueg@users.noreply.github.com>
erikayasuda pushed a commit that referenced this pull request May 28, 2024
…9390)

Backport 1b954de from #9112 to 2.8.

#7558 made the traceback size
configurable via `DD_TRACE_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: Matt Alexander <1710128+quiqueg@users.noreply.github.com>
emmettbutler pushed a commit that referenced this pull request May 28, 2024
…9391)

Backport 1b954de from #9112 to 2.9.

#7558 made the traceback size
configurable via `DD_TRACE_SPAN_TRACEBACK_MAX_SIZE`, but tracebacks for
exceptions were still hardcoded with a limit of 30.

The fix is modeled after `Span#set_traceback`'s existing logic, and
tests were modeled after both `test_traceback_with_error` and
`test_custom_traceback_size`. Not much new logic, just an edge case.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: Matt Alexander <1710128+quiqueg@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No ability to override default stack trace frame size
3 participants