-
Notifications
You must be signed in to change notification settings - Fork 324
Improve crashtracking payload and add build_id and relative address #10469
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
Open
amarziali
wants to merge
4
commits into
master
Choose a base branch
from
andrea.marziali/buildid
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d469239 to
c9edbf0
Compare
c9edbf0 to
8b0ecd6
Compare
jbachorik
reviewed
Jan 29, 2026
...-agent/agent-crashtracking/src/main/java/datadog/crashtracking/buildid/BuildIdCollector.java
Show resolved
Hide resolved
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 62 metrics, 9 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.064 s) : 0, 1063637
Total [baseline] (8.756 s) : 0, 8756334
Agent [candidate] (1.056 s) : 0, 1056213
Total [candidate] (8.675 s) : 0, 8674767
section iast
Agent [baseline] (1.231 s) : 0, 1230579
Total [baseline] (9.355 s) : 0, 9355208
Agent [candidate] (1.227 s) : 0, 1227001
Total [candidate] (9.35 s) : 0, 9349822
gantt
title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.196 ms) : 0, 1196
crashtracking [candidate] (1.177 ms) : 0, 1177
BytebuddyAgent [baseline] (627.68 ms) : 0, 627680
BytebuddyAgent [candidate] (621.752 ms) : 0, 621752
AgentMeter [baseline] (28.827 ms) : 0, 28827
AgentMeter [candidate] (28.508 ms) : 0, 28508
GlobalTracer [baseline] (258.544 ms) : 0, 258544
GlobalTracer [candidate] (256.292 ms) : 0, 256292
AppSec [baseline] (33.064 ms) : 0, 33064
AppSec [candidate] (32.616 ms) : 0, 32616
Debugger [baseline] (60.601 ms) : 0, 60601
Debugger [candidate] (59.769 ms) : 0, 59769
Remote Config [baseline] (613.709 µs) : 0, 614
Remote Config [candidate] (613.986 µs) : 0, 614
Telemetry [baseline] (10.078 ms) : 0, 10078
Telemetry [candidate] (9.947 ms) : 0, 9947
Flare Poller [baseline] (7.587 ms) : 0, 7587
Flare Poller [candidate] (10.07 ms) : 0, 10070
section iast
crashtracking [baseline] (1.203 ms) : 0, 1203
crashtracking [candidate] (1.208 ms) : 0, 1208
BytebuddyAgent [baseline] (795.085 ms) : 0, 795085
BytebuddyAgent [candidate] (791.761 ms) : 0, 791761
AgentMeter [baseline] (11.266 ms) : 0, 11266
AgentMeter [candidate] (11.176 ms) : 0, 11176
GlobalTracer [baseline] (248.72 ms) : 0, 248720
GlobalTracer [candidate] (248.634 ms) : 0, 248634
AppSec [baseline] (33.717 ms) : 0, 33717
AppSec [candidate] (33.023 ms) : 0, 33023
Debugger [baseline] (65.55 ms) : 0, 65550
Debugger [candidate] (66.309 ms) : 0, 66309
Remote Config [baseline] (538.455 µs) : 0, 538
Remote Config [candidate] (547.856 µs) : 0, 548
Telemetry [baseline] (8.491 ms) : 0, 8491
Telemetry [candidate] (8.582 ms) : 0, 8582
Flare Poller [baseline] (3.49 ms) : 0, 3490
Flare Poller [candidate] (3.534 ms) : 0, 3534
IAST [baseline] (27.009 ms) : 0, 27009
IAST [candidate] (26.882 ms) : 0, 26882
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.075 s) : 0, 1074796
Total [baseline] (11.12 s) : 0, 11119540
Agent [candidate] (1.067 s) : 0, 1066999
Total [candidate] (10.962 s) : 0, 10962264
section appsec
Agent [baseline] (1.229 s) : 0, 1228629
Total [baseline] (10.946 s) : 0, 10946392
Agent [candidate] (1.238 s) : 0, 1238406
Total [candidate] (11.038 s) : 0, 11038112
section iast
Agent [baseline] (1.224 s) : 0, 1224021
Total [baseline] (11.099 s) : 0, 11098501
Agent [candidate] (1.228 s) : 0, 1228198
Total [candidate] (11.187 s) : 0, 11186700
section profiling
Agent [baseline] (1.192 s) : 0, 1192099
Total [baseline] (10.916 s) : 0, 10916211
Agent [candidate] (1.186 s) : 0, 1185849
Total [candidate] (10.904 s) : 0, 10904100
gantt
title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.202 ms) : 0, 1202
crashtracking [candidate] (1.184 ms) : 0, 1184
BytebuddyAgent [baseline] (634.517 ms) : 0, 634517
BytebuddyAgent [candidate] (626.988 ms) : 0, 626988
AgentMeter [baseline] (29.248 ms) : 0, 29248
AgentMeter [candidate] (29.122 ms) : 0, 29122
GlobalTracer [baseline] (260.465 ms) : 0, 260465
GlobalTracer [candidate] (259.072 ms) : 0, 259072
AppSec [baseline] (33.504 ms) : 0, 33504
AppSec [candidate] (33.266 ms) : 0, 33266
Debugger [baseline] (61.451 ms) : 0, 61451
Debugger [candidate] (63.505 ms) : 0, 63505
Remote Config [baseline] (632.785 µs) : 0, 633
Remote Config [candidate] (618.934 µs) : 0, 619
Telemetry [baseline] (10.956 ms) : 0, 10956
Telemetry [candidate] (10.073 ms) : 0, 10073
Flare Poller [baseline] (6.913 ms) : 0, 6913
Flare Poller [candidate] (7.673 ms) : 0, 7673
section appsec
crashtracking [baseline] (1.18 ms) : 0, 1180
crashtracking [candidate] (1.189 ms) : 0, 1189
BytebuddyAgent [baseline] (650.35 ms) : 0, 650350
BytebuddyAgent [candidate] (656.33 ms) : 0, 656330
AgentMeter [baseline] (11.778 ms) : 0, 11778
AgentMeter [candidate] (11.845 ms) : 0, 11845
GlobalTracer [baseline] (256.902 ms) : 0, 256902
GlobalTracer [candidate] (258.739 ms) : 0, 258739
AppSec [baseline] (167.317 ms) : 0, 167317
AppSec [candidate] (167.745 ms) : 0, 167745
Debugger [baseline] (67.277 ms) : 0, 67277
Debugger [candidate] (67.966 ms) : 0, 67966
Remote Config [baseline] (668.904 µs) : 0, 669
Remote Config [candidate] (666.216 µs) : 0, 666
Telemetry [baseline] (9.298 ms) : 0, 9298
Telemetry [candidate] (9.416 ms) : 0, 9416
Flare Poller [baseline] (3.588 ms) : 0, 3588
Flare Poller [candidate] (3.659 ms) : 0, 3659
IAST [baseline] (25.106 ms) : 0, 25106
IAST [candidate] (25.536 ms) : 0, 25536
section iast
crashtracking [baseline] (1.171 ms) : 0, 1171
crashtracking [candidate] (1.18 ms) : 0, 1180
BytebuddyAgent [baseline] (789.428 ms) : 0, 789428
BytebuddyAgent [candidate] (791.796 ms) : 0, 791796
AgentMeter [baseline] (11.154 ms) : 0, 11154
AgentMeter [candidate] (11.199 ms) : 0, 11199
GlobalTracer [baseline] (247.36 ms) : 0, 247360
GlobalTracer [candidate] (248.493 ms) : 0, 248493
AppSec [baseline] (34.35 ms) : 0, 34350
AppSec [candidate] (34.484 ms) : 0, 34484
Debugger [baseline] (65.783 ms) : 0, 65783
Debugger [candidate] (66.21 ms) : 0, 66210
Remote Config [baseline] (547.893 µs) : 0, 548
Remote Config [candidate] (534.748 µs) : 0, 535
Telemetry [baseline] (8.518 ms) : 0, 8518
Telemetry [candidate] (8.635 ms) : 0, 8635
Flare Poller [baseline] (3.47 ms) : 0, 3470
Flare Poller [candidate] (3.562 ms) : 0, 3562
IAST [baseline] (26.934 ms) : 0, 26934
IAST [candidate] (26.78 ms) : 0, 26780
section profiling
crashtracking [baseline] (1.217 ms) : 0, 1217
crashtracking [candidate] (1.206 ms) : 0, 1206
BytebuddyAgent [baseline] (681.57 ms) : 0, 681570
BytebuddyAgent [candidate] (677.319 ms) : 0, 677319
AgentMeter [baseline] (8.725 ms) : 0, 8725
AgentMeter [candidate] (8.656 ms) : 0, 8656
GlobalTracer [baseline] (217.75 ms) : 0, 217750
GlobalTracer [candidate] (216.531 ms) : 0, 216531
AppSec [baseline] (32.636 ms) : 0, 32636
AppSec [candidate] (32.223 ms) : 0, 32223
Debugger [baseline] (68.072 ms) : 0, 68072
Debugger [candidate] (67.665 ms) : 0, 67665
Remote Config [baseline] (599.508 µs) : 0, 600
Remote Config [candidate] (584.178 µs) : 0, 584
Telemetry [baseline] (8.782 ms) : 0, 8782
Telemetry [candidate] (8.702 ms) : 0, 8702
Flare Poller [baseline] (3.747 ms) : 0, 3747
Flare Poller [candidate] (3.766 ms) : 0, 3766
ProfilingAgent [baseline] (98.779 ms) : 0, 98779
ProfilingAgent [candidate] (99.151 ms) : 0, 99151
Profiling [baseline] (99.343 ms) : 0, 99343
Profiling [candidate] (99.729 ms) : 0, 99729
LoadParameters
See matching parameters
SummaryFound 4 performance improvements and 1 performance regressions! Performance is the same for 13 metrics, 18 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section baseline
no_agent (1.172 ms) : 1161, 1184
. : milestone, 1172,
iast (3.378 ms) : 3336, 3421
. : milestone, 3378,
iast_FULL (5.83 ms) : 5772, 5889
. : milestone, 5830,
iast_GLOBAL (3.644 ms) : 3590, 3698
. : milestone, 3644,
profiling (2.043 ms) : 2025, 2061
. : milestone, 2043,
tracing (1.783 ms) : 1769, 1798
. : milestone, 1783,
section candidate
no_agent (1.182 ms) : 1171, 1194
. : milestone, 1182,
iast (3.171 ms) : 3126, 3216
. : milestone, 3171,
iast_FULL (5.564 ms) : 5510, 5619
. : milestone, 5564,
iast_GLOBAL (3.352 ms) : 3299, 3405
. : milestone, 3352,
profiling (2.138 ms) : 2120, 2157
. : milestone, 2138,
tracing (1.845 ms) : 1829, 1860
. : milestone, 1845,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section baseline
no_agent (18.754 ms) : 18558, 18949
. : milestone, 18754,
appsec (18.694 ms) : 18505, 18882
. : milestone, 18694,
code_origins (18.009 ms) : 17830, 18187
. : milestone, 18009,
iast (17.913 ms) : 17733, 18093
. : milestone, 17913,
profiling (18.787 ms) : 18600, 18974
. : milestone, 18787,
tracing (17.778 ms) : 17605, 17951
. : milestone, 17778,
section candidate
no_agent (17.34 ms) : 17166, 17514
. : milestone, 17340,
appsec (18.391 ms) : 18205, 18577
. : milestone, 18391,
code_origins (17.793 ms) : 17618, 17969
. : milestone, 17793,
iast (18.312 ms) : 18130, 18495
. : milestone, 18312,
profiling (18.771 ms) : 18586, 18957
. : milestone, 18771,
tracing (18.165 ms) : 17985, 18345
. : milestone, 18165,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1468, 1491
. : milestone, 1479,
appsec (3.752 ms) : 3532, 3973
. : milestone, 3752,
iast (2.244 ms) : 2176, 2313
. : milestone, 2244,
iast_GLOBAL (2.295 ms) : 2226, 2365
. : milestone, 2295,
profiling (2.068 ms) : 2013, 2122
. : milestone, 2068,
tracing (2.054 ms) : 2001, 2108
. : milestone, 2054,
section candidate
no_agent (1.471 ms) : 1459, 1482
. : milestone, 1471,
appsec (3.697 ms) : 3481, 3913
. : milestone, 3697,
iast (2.248 ms) : 2179, 2317
. : milestone, 2248,
iast_GLOBAL (2.299 ms) : 2230, 2369
. : milestone, 2299,
profiling (2.1 ms) : 2043, 2156
. : milestone, 2100,
tracing (2.058 ms) : 2005, 2112
. : milestone, 2058,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~5cff218b59, baseline=1.59.0-SNAPSHOT~1befb3a58d
dateFormat X
axisFormat %s
section baseline
no_agent (14.753 s) : 14753000, 14753000
. : milestone, 14753000,
appsec (15.211 s) : 15211000, 15211000
. : milestone, 15211000,
iast (18.032 s) : 18032000, 18032000
. : milestone, 18032000,
iast_GLOBAL (17.622 s) : 17622000, 17622000
. : milestone, 17622000,
profiling (14.869 s) : 14869000, 14869000
. : milestone, 14869000,
tracing (14.497 s) : 14497000, 14497000
. : milestone, 14497000,
section candidate
no_agent (14.909 s) : 14909000, 14909000
. : milestone, 14909000,
appsec (15.064 s) : 15064000, 15064000
. : milestone, 15064000,
iast (18.488 s) : 18488000, 18488000
. : milestone, 18488000,
iast_GLOBAL (17.59 s) : 17590000, 17590000
. : milestone, 17590000,
profiling (14.794 s) : 14794000, 14794000
. : milestone, 14794000,
tracing (14.709 s) : 14709000, 14709000
. : milestone, 14709000,
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What Does This Do
This PR extends the crash tracking payload to support native symbolization by adding the build_id and the relative address of native libraries.
A new BuildIdCollector asynchronously parses ELF binaries (Linux) and PE binaries (Windows), with a bounded time limit, to extract the GNU build ID or the equivalent identifier on Windows. When available, the extracted build_id is attached to the corresponding StackFrameElement.
More broadly, this PR improves stack frame parsing by refining function name extraction for JIT-compiled frames.
It also includes several minor fixes to ensure compliance with the JSON schema (e.g., correcting field types from string to integer).
Finally, the sig_info section is now populated with the complete signal information extracted from the hs_err file, including the associated sigaction details.
Motivation
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any useful labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]