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

Avoid NumberFormatException when logging 128bit trace ID #6570

Merged
merged 1 commit into from
Jan 26, 2024

Conversation

amarziali
Copy link
Collaborator

What Does This Do

When trace.128.bit.traceid.logging.enabled is true and the aws instrumentation is not using the legacy tracing (by default) a NumberFormatException like this is thrown:

java.lang.NumberFormatException: String value xxxxxxxxx exceeds range of unsigned long.
    at datadog.trace.api.internal.util.LongStringUtils.numberFormatOutOfLongRange(LongStringUtils.java:130)
    at datadog.trace.api.internal.util.LongStringUtils.parseUnsignedLong(LongStringUtils.java:91)
    at datadog.trace.api.DDTraceId.from(DDTraceId.java:38)
    at datadog.trace.agent.core.CoreTracer.blackholeSpan(CoreTracer.java:894)

This PR adds a tests and fix to remediate to it

Motivation

Additional Notes

Jira ticket: [PROJ-IDENT]

@amarziali amarziali requested a review from a team as a code owner January 26, 2024 17:07
@amarziali amarziali added type: bug comp: core Tracer core inst: aws sdk AWS SDK instrumentation labels Jan 26, 2024
@amarziali amarziali enabled auto-merge (squash) January 26, 2024 17:09
@pr-commenter
Copy link

pr-commenter bot commented Jan 26, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/fix-traceid-blackhole
git_commit_date 1706287891 1706288619
git_commit_sha 7f977d8 084288f
release_version 1.29.0-SNAPSHOT~7f977d8e06 1.29.0-SNAPSHOT~084288f31a
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1706291545 1706291545
ci_job_id 419755720 419755720
ci_pipeline_id 27263337 27263337
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 43 metrics, 11 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.29.0-SNAPSHOT~084288f31a, baseline=1.29.0-SNAPSHOT~7f977d8e06

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.054 s) : 0, 1054338
Total [baseline] (9.331 s) : 0, 9330545
Agent [candidate] (1.066 s) : 0, 1066156
Total [candidate] (9.422 s) : 0, 9422392
section appsec
Agent [baseline] (1.153 s) : 0, 1153031
Total [baseline] (9.445 s) : 0, 9445171
Agent [candidate] (1.162 s) : 0, 1161939
Total [candidate] (9.464 s) : 0, 9464288
section iast
Agent [baseline] (1.18 s) : 0, 1180099
Total [baseline] (9.625 s) : 0, 9624858
Agent [candidate] (1.181 s) : 0, 1180649
Total [candidate] (9.652 s) : 0, 9652424
section profiling
Agent [baseline] (1.292 s) : 0, 1292048
Total [baseline] (9.677 s) : 0, 9676686
Agent [candidate] (1.281 s) : 0, 1280835
Total [candidate] (9.587 s) : 0, 9586886
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent appsec 1.153 s 98.693 ms (9.4%)
Agent iast 1.18 s 125.761 ms (11.9%)
Agent profiling 1.292 s 237.71 ms (22.5%)
Total tracing 9.331 s -
Total appsec 9.445 s 114.626 ms (1.2%)
Total iast 9.625 s 294.313 ms (3.2%)
Total profiling 9.677 s 346.141 ms (3.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.066 s -
Agent appsec 1.162 s 95.783 ms (9.0%)
Agent iast 1.181 s 114.493 ms (10.7%)
Agent profiling 1.281 s 214.679 ms (20.1%)
Total tracing 9.422 s -
Total appsec 9.464 s 41.896 ms (0.4%)
Total iast 9.652 s 230.032 ms (2.4%)
Total profiling 9.587 s 164.494 ms (1.7%)
gantt
    title petclinic - break down per module: candidate=1.29.0-SNAPSHOT~084288f31a, baseline=1.29.0-SNAPSHOT~7f977d8e06

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (665.249 ms) : 0, 665249
BytebuddyAgent [candidate] (672.546 ms) : 0, 672546
GlobalTracer [baseline] (295.112 ms) : 0, 295112
GlobalTracer [candidate] (298.484 ms) : 0, 298484
AppSec [baseline] (51.551 ms) : 0, 51551
AppSec [candidate] (52.277 ms) : 0, 52277
Remote Config [baseline] (691.519 µs) : 0, 692
Remote Config [candidate] (715.142 µs) : 0, 715
Telemetry [baseline] (7.544 ms) : 0, 7544
Telemetry [candidate] (7.603 ms) : 0, 7603
section appsec
BytebuddyAgent [baseline] (666.135 ms) : 0, 666135
BytebuddyAgent [candidate] (671.073 ms) : 0, 671073
GlobalTracer [baseline] (295.509 ms) : 0, 295509
GlobalTracer [candidate] (298.102 ms) : 0, 298102
AppSec [baseline] (149.823 ms) : 0, 149823
AppSec [candidate] (150.837 ms) : 0, 150837
Remote Config [baseline] (648.291 µs) : 0, 648
Remote Config [candidate] (653.889 µs) : 0, 654
Telemetry [baseline] (6.708 ms) : 0, 6708
Telemetry [candidate] (6.793 ms) : 0, 6793
section iast
BytebuddyAgent [baseline] (776.709 ms) : 0, 776709
BytebuddyAgent [candidate] (776.483 ms) : 0, 776483
GlobalTracer [baseline] (286.48 ms) : 0, 286480
GlobalTracer [candidate] (287.609 ms) : 0, 287609
AppSec [baseline] (53.886 ms) : 0, 53886
AppSec [candidate] (53.402 ms) : 0, 53402
Remote Config [baseline] (607.989 µs) : 0, 608
Remote Config [candidate] (624.885 µs) : 0, 625
Telemetry [baseline] (6.545 ms) : 0, 6545
Telemetry [candidate] (7.364 ms) : 0, 7364
IAST [baseline] (21.679 ms) : 0, 21679
IAST [candidate] (20.909 ms) : 0, 20909
section profiling
BytebuddyAgent [baseline] (668.783 ms) : 0, 668783
BytebuddyAgent [candidate] (663.831 ms) : 0, 663831
GlobalTracer [baseline] (381.472 ms) : 0, 381472
GlobalTracer [candidate] (379.655 ms) : 0, 379655
AppSec [baseline] (52.433 ms) : 0, 52433
AppSec [candidate] (52.286 ms) : 0, 52286
Remote Config [baseline] (667.269 µs) : 0, 667
Remote Config [candidate] (673.582 µs) : 0, 674
Telemetry [baseline] (7.501 ms) : 0, 7501
Telemetry [candidate] (7.47 ms) : 0, 7470
ProfilingAgent [baseline] (126.371 ms) : 0, 126371
ProfilingAgent [candidate] (122.571 ms) : 0, 122571
Profiling [baseline] (126.395 ms) : 0, 126395
Profiling [candidate] (122.596 ms) : 0, 122596
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-01-26T17:28:27 2024-01-26T17:47:24
git_branch master andrea.marziali/fix-traceid-blackhole
git_commit_date 1706287891 1706288619
git_commit_sha 7f977d8 084288f
release_version 1.29.0-SNAPSHOT~7f977d8e06 1.29.0-SNAPSHOT~084288f31a
start_time 2024-01-26T17:28:14 2024-01-26T17:47:11
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1706291545 1706291545
ci_job_id 419755720 419755720
ci_pipeline_id 27263337 27263337
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 16 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.29.0-SNAPSHOT~084288f31a, baseline=1.29.0-SNAPSHOT~7f977d8e06
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.346 ms) : 1328, 1365
.   : milestone, 1346,
appsec (1.74 ms) : 1715, 1765
.   : milestone, 1740,
iast (1.514 ms) : 1490, 1538
.   : milestone, 1514,
profiling (1.528 ms) : 1501, 1555
.   : milestone, 1528,
tracing (1.489 ms) : 1465, 1514
.   : milestone, 1489,
section candidate
no_agent (1.347 ms) : 1328, 1366
.   : milestone, 1347,
appsec (1.769 ms) : 1744, 1795
.   : milestone, 1769,
iast (1.501 ms) : 1476, 1526
.   : milestone, 1501,
profiling (1.494 ms) : 1469, 1519
.   : milestone, 1494,
tracing (1.492 ms) : 1466, 1517
.   : milestone, 1492,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.346 ms [1.328 ms, 1.365 ms] -
appsec 1.74 ms [1.715 ms, 1.765 ms] 393.547 µs (29.2%)
iast 1.514 ms [1.49 ms, 1.538 ms] 167.192 µs (12.4%)
profiling 1.528 ms [1.501 ms, 1.555 ms] 181.289 µs (13.5%)
tracing 1.489 ms [1.465 ms, 1.514 ms] 142.805 µs (10.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.347 ms [1.328 ms, 1.366 ms] -
appsec 1.769 ms [1.744 ms, 1.795 ms] 422.146 µs (31.3%)
iast 1.501 ms [1.476 ms, 1.526 ms] 153.373 µs (11.4%)
profiling 1.494 ms [1.469 ms, 1.519 ms] 146.782 µs (10.9%)
tracing 1.492 ms [1.466 ms, 1.517 ms] 144.434 µs (10.7%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.29.0-SNAPSHOT~084288f31a, baseline=1.29.0-SNAPSHOT~7f977d8e06
    dateFormat X
    axisFormat %s
section baseline
no_agent (365.605 µs) : 345, 387
.   : milestone, 366,
iast (474.129 µs) : 454, 495
.   : milestone, 474,
iast_FULL (532.915 µs) : 512, 554
.   : milestone, 533,
iast_GLOBAL (510.725 µs) : 489, 533
.   : milestone, 511,
iast_HARDCODED_SECRET_DISABLED (473.619 µs) : 453, 494
.   : milestone, 474,
iast_INACTIVE (444.911 µs) : 424, 466
.   : milestone, 445,
iast_TELEMETRY_OFF (466.242 µs) : 445, 488
.   : milestone, 466,
tracing (444.348 µs) : 423, 466
.   : milestone, 444,
section candidate
no_agent (359.997 µs) : 340, 380
.   : milestone, 360,
iast (471.288 µs) : 450, 492
.   : milestone, 471,
iast_FULL (533.784 µs) : 513, 554
.   : milestone, 534,
iast_GLOBAL (493.248 µs) : 473, 514
.   : milestone, 493,
iast_HARDCODED_SECRET_DISABLED (467.859 µs) : 447, 488
.   : milestone, 468,
iast_INACTIVE (441.807 µs) : 421, 462
.   : milestone, 442,
iast_TELEMETRY_OFF (464.076 µs) : 444, 484
.   : milestone, 464,
tracing (439.869 µs) : 419, 461
.   : milestone, 440,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 365.605 µs [344.598 µs, 386.612 µs] -
iast 474.129 µs [453.626 µs, 494.633 µs] 108.524 µs (29.7%)
iast_FULL 532.915 µs [512.309 µs, 553.521 µs] 167.309 µs (45.8%)
iast_GLOBAL 510.725 µs [488.659 µs, 532.792 µs] 145.12 µs (39.7%)
iast_HARDCODED_SECRET_DISABLED 473.619 µs [452.791 µs, 494.447 µs] 108.014 µs (29.5%)
iast_INACTIVE 444.911 µs [423.75 µs, 466.071 µs] 79.305 µs (21.7%)
iast_TELEMETRY_OFF 466.242 µs [444.919 µs, 487.565 µs] 100.637 µs (27.5%)
tracing 444.348 µs [423.172 µs, 465.524 µs] 78.742 µs (21.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 359.997 µs [340.159 µs, 379.836 µs] -
iast 471.288 µs [450.396 µs, 492.18 µs] 111.29 µs (30.9%)
iast_FULL 533.784 µs [513.213 µs, 554.354 µs] 173.786 µs (48.3%)
iast_GLOBAL 493.248 µs [472.82 µs, 513.677 µs] 133.251 µs (37.0%)
iast_HARDCODED_SECRET_DISABLED 467.859 µs [447.496 µs, 488.221 µs] 107.861 µs (30.0%)
iast_INACTIVE 441.807 µs [421.383 µs, 462.231 µs] 81.809 µs (22.7%)
iast_TELEMETRY_OFF 464.076 µs [443.655 µs, 484.497 µs] 104.079 µs (28.9%)
tracing 439.869 µs [418.55 µs, 461.189 µs] 79.872 µs (22.2%)

@am312 am312 self-requested a review January 26, 2024 19:06
@amarziali amarziali merged commit e546801 into master Jan 26, 2024
82 checks passed
@amarziali amarziali deleted the andrea.marziali/fix-traceid-blackhole branch January 26, 2024 21:00
@github-actions github-actions bot added this to the 1.29.0 milestone Jan 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: core Tracer core inst: aws sdk AWS SDK instrumentation type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants