-
Notifications
You must be signed in to change notification settings - Fork 312
add support for org level APM_TRACING configs #9360
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
add support for org level APM_TRACING configs #9360
Conversation
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
🎯 Code Coverage 🔗 Commit SHA: a93db23 | Docs | Was this helpful? Give us feedback! |
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 49 metrics, 10 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.051 s) : 0, 1051335
Total [baseline] (10.716 s) : 0, 10715783
Agent [candidate] (1.056 s) : 0, 1055912
Total [candidate] (10.916 s) : 0, 10915927
section appsec
Agent [baseline] (1.225 s) : 0, 1225497
Total [baseline] (10.829 s) : 0, 10829431
Agent [candidate] (1.227 s) : 0, 1226764
Total [candidate] (10.834 s) : 0, 10834328
section iast
Agent [baseline] (1.182 s) : 0, 1182123
Total [baseline] (11.014 s) : 0, 11014006
Agent [candidate] (1.183 s) : 0, 1183026
Total [candidate] (10.993 s) : 0, 10993273
section profiling
Agent [baseline] (1.208 s) : 0, 1208348
Total [baseline] (10.99 s) : 0, 10990469
Agent [candidate] (1.2 s) : 0, 1199986
Total [candidate] (10.916 s) : 0, 10915503
gantt
title petclinic - break down per module: candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.473 ms) : 0, 1473
crashtracking [candidate] (1.471 ms) : 0, 1471
BytebuddyAgent [baseline] (734.316 ms) : 0, 734316
BytebuddyAgent [candidate] (737.784 ms) : 0, 737784
GlobalTracer [baseline] (243.048 ms) : 0, 243048
GlobalTracer [candidate] (245.968 ms) : 0, 245968
AppSec [baseline] (30.103 ms) : 0, 30103
AppSec [candidate] (30.446 ms) : 0, 30446
Debugger [baseline] (6.119 ms) : 0, 6119
Debugger [candidate] (6.117 ms) : 0, 6117
Remote Config [baseline] (671.881 µs) : 0, 672
Remote Config [candidate] (685.343 µs) : 0, 685
Telemetry [baseline] (14.451 ms) : 0, 14451
Telemetry [candidate] (12.33 ms) : 0, 12330
section appsec
crashtracking [baseline] (1.454 ms) : 0, 1454
crashtracking [candidate] (1.456 ms) : 0, 1456
BytebuddyAgent [baseline] (756.783 ms) : 0, 756783
BytebuddyAgent [candidate] (757.206 ms) : 0, 757206
GlobalTracer [baseline] (235.913 ms) : 0, 235913
GlobalTracer [candidate] (237.073 ms) : 0, 237073
IAST [baseline] (23.511 ms) : 0, 23511
IAST [candidate] (23.524 ms) : 0, 23524
AppSec [baseline] (170.236 ms) : 0, 170236
AppSec [candidate] (170.662 ms) : 0, 170662
Debugger [baseline] (5.787 ms) : 0, 5787
Debugger [candidate] (5.835 ms) : 0, 5835
Remote Config [baseline] (637.02 µs) : 0, 637
Remote Config [candidate] (637.535 µs) : 0, 638
Telemetry [baseline] (10.03 ms) : 0, 10030
Telemetry [candidate] (9.24 ms) : 0, 9240
section iast
crashtracking [baseline] (1.45 ms) : 0, 1450
crashtracking [candidate] (1.446 ms) : 0, 1446
BytebuddyAgent [baseline] (852.846 ms) : 0, 852846
BytebuddyAgent [candidate] (852.596 ms) : 0, 852596
GlobalTracer [baseline] (233.402 ms) : 0, 233402
GlobalTracer [candidate] (235.209 ms) : 0, 235209
IAST [baseline] (29.025 ms) : 0, 29025
IAST [candidate] (31.291 ms) : 0, 31291
AppSec [baseline] (27.686 ms) : 0, 27686
AppSec [candidate] (26.766 ms) : 0, 26766
Debugger [baseline] (7.617 ms) : 0, 7617
Debugger [candidate] (5.704 ms) : 0, 5704
Remote Config [baseline] (612.254 µs) : 0, 612
Remote Config [candidate] (601.11 µs) : 0, 601
Telemetry [baseline] (8.384 ms) : 0, 8384
Telemetry [candidate] (8.265 ms) : 0, 8265
section profiling
crashtracking [baseline] (1.457 ms) : 0, 1457
crashtracking [candidate] (1.427 ms) : 0, 1427
BytebuddyAgent [baseline] (770.194 ms) : 0, 770194
BytebuddyAgent [candidate] (763.137 ms) : 0, 763137
GlobalTracer [baseline] (224.141 ms) : 0, 224141
GlobalTracer [candidate] (223.841 ms) : 0, 223841
AppSec [baseline] (30.437 ms) : 0, 30437
AppSec [candidate] (29.91 ms) : 0, 29910
Debugger [baseline] (6.309 ms) : 0, 6309
Debugger [candidate] (6.305 ms) : 0, 6305
Remote Config [baseline] (709.788 µs) : 0, 710
Remote Config [candidate] (706.689 µs) : 0, 707
Telemetry [baseline] (16.595 ms) : 0, 16595
Telemetry [candidate] (16.353 ms) : 0, 16353
ProfilingAgent [baseline] (107.547 ms) : 0, 107547
ProfilingAgent [candidate] (107.839 ms) : 0, 107839
Profiling [baseline] (108.19 ms) : 0, 108190
Profiling [candidate] (108.511 ms) : 0, 108511
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.05 s) : 0, 1049535
Total [baseline] (8.662 s) : 0, 8661606
Agent [candidate] (1.049 s) : 0, 1049471
Total [candidate] (8.64 s) : 0, 8639946
section iast
Agent [baseline] (1.196 s) : 0, 1196209
Total [baseline] (9.413 s) : 0, 9413319
Agent [candidate] (1.181 s) : 0, 1180662
Total [candidate] (9.471 s) : 0, 9470840
gantt
title insecure-bank - break down per module: candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.467 ms) : 0, 1467
crashtracking [candidate] (1.47 ms) : 0, 1470
BytebuddyAgent [baseline] (734.06 ms) : 0, 734060
BytebuddyAgent [candidate] (733.509 ms) : 0, 733509
GlobalTracer [baseline] (243.043 ms) : 0, 243043
GlobalTracer [candidate] (244.347 ms) : 0, 244347
AppSec [baseline] (30.279 ms) : 0, 30279
AppSec [candidate] (30.137 ms) : 0, 30137
Debugger [baseline] (6.079 ms) : 0, 6079
Debugger [candidate] (6.123 ms) : 0, 6123
Remote Config [baseline] (668.044 µs) : 0, 668
Remote Config [candidate] (675.739 µs) : 0, 676
Telemetry [baseline] (12.308 ms) : 0, 12308
Telemetry [candidate] (12.233 ms) : 0, 12233
section iast
crashtracking [baseline] (1.491 ms) : 0, 1491
crashtracking [candidate] (1.454 ms) : 0, 1454
BytebuddyAgent [baseline] (865.212 ms) : 0, 865212
BytebuddyAgent [candidate] (851.244 ms) : 0, 851244
GlobalTracer [baseline] (234.196 ms) : 0, 234196
GlobalTracer [candidate] (234.451 ms) : 0, 234451
IAST [baseline] (28.058 ms) : 0, 28058
IAST [candidate] (31.847 ms) : 0, 31847
AppSec [baseline] (29.11 ms) : 0, 29110
AppSec [candidate] (25.979 ms) : 0, 25979
Debugger [baseline] (6.701 ms) : 0, 6701
Debugger [candidate] (5.782 ms) : 0, 5782
Remote Config [baseline] (627.294 µs) : 0, 627
Remote Config [candidate] (601.799 µs) : 0, 602
Telemetry [baseline] (9.509 ms) : 0, 9509
Telemetry [candidate] (8.362 ms) : 0, 8362
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 2 performance regressions! Performance is the same for 9 metrics, 12 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section baseline
no_agent (4.265 ms) : 4212, 4317
. : milestone, 4265,
iast (9.469 ms) : 9306, 9631
. : milestone, 9469,
iast_FULL (13.94 ms) : 13664, 14217
. : milestone, 13940,
iast_GLOBAL (10.211 ms) : 10027, 10395
. : milestone, 10211,
profiling (8.293 ms) : 8155, 8431
. : milestone, 8293,
tracing (7.421 ms) : 7311, 7531
. : milestone, 7421,
section candidate
no_agent (4.397 ms) : 4347, 4447
. : milestone, 4397,
iast (9.316 ms) : 9160, 9472
. : milestone, 9316,
iast_FULL (13.351 ms) : 13086, 13616
. : milestone, 13351,
iast_GLOBAL (9.967 ms) : 9783, 10151
. : milestone, 9967,
profiling (9.015 ms) : 8875, 9155
. : milestone, 9015,
tracing (7.884 ms) : 7770, 7999
. : milestone, 7884,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section baseline
no_agent (37.723 ms) : 37417, 38029
. : milestone, 37723,
appsec (47.625 ms) : 47197, 48052
. : milestone, 47625,
code_origins (45.419 ms) : 45043, 45796
. : milestone, 45419,
iast (45.288 ms) : 44893, 45682
. : milestone, 45288,
profiling (47.574 ms) : 47076, 48073
. : milestone, 47574,
tracing (44.91 ms) : 44540, 45281
. : milestone, 44910,
section candidate
no_agent (36.982 ms) : 36689, 37275
. : milestone, 36982,
appsec (47.914 ms) : 47480, 48347
. : milestone, 47914,
code_origins (45.628 ms) : 45245, 46011
. : milestone, 45628,
iast (44.518 ms) : 44121, 44916
. : milestone, 44518,
profiling (47.699 ms) : 47258, 48140
. : milestone, 47699,
tracing (45.018 ms) : 44621, 45415
. : milestone, 45018,
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.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section baseline
no_agent (1.477 ms) : 1465, 1488
. : milestone, 1477,
appsec (2.482 ms) : 2428, 2535
. : milestone, 2482,
iast (2.207 ms) : 2144, 2270
. : milestone, 2207,
iast_GLOBAL (2.259 ms) : 2195, 2322
. : milestone, 2259,
profiling (2.051 ms) : 2001, 2102
. : milestone, 2051,
tracing (2.034 ms) : 1984, 2083
. : milestone, 2034,
section candidate
no_agent (1.479 ms) : 1468, 1491
. : milestone, 1479,
appsec (3.609 ms) : 3396, 3822
. : milestone, 3609,
iast (2.211 ms) : 2148, 2274
. : milestone, 2211,
iast_GLOBAL (2.247 ms) : 2184, 2311
. : milestone, 2247,
profiling (2.065 ms) : 2013, 2117
. : milestone, 2065,
tracing (2.03 ms) : 1980, 2079
. : milestone, 2030,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~a93db23764, baseline=1.53.0-SNAPSHOT~030f9bbb36
dateFormat X
axisFormat %s
section baseline
no_agent (15.321 s) : 15321000, 15321000
. : milestone, 15321000,
appsec (14.826 s) : 14826000, 14826000
. : milestone, 14826000,
iast (18.472 s) : 18472000, 18472000
. : milestone, 18472000,
iast_GLOBAL (17.783 s) : 17783000, 17783000
. : milestone, 17783000,
profiling (15.467 s) : 15467000, 15467000
. : milestone, 15467000,
tracing (14.801 s) : 14801000, 14801000
. : milestone, 14801000,
section candidate
no_agent (15.217 s) : 15217000, 15217000
. : milestone, 15217000,
appsec (14.782 s) : 14782000, 14782000
. : milestone, 14782000,
iast (18.64 s) : 18640000, 18640000
. : milestone, 18640000,
iast_GLOBAL (18.234 s) : 18234000, 18234000
. : milestone, 18234000,
profiling (15.402 s) : 15402000, 15402000
. : milestone, 15402000,
tracing (14.848 s) : 14848000, 14848000
. : milestone, 14848000,
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good to me. Just some questions and cleanup nits
dd-trace-core/src/main/java/datadog/trace/core/TracingConfigPoller.java
Outdated
Show resolved
Hide resolved
configOverrides.isClusterTarget() == false | ||
} | ||
|
||
def "test org level + service level config priority comparison"() { | ||
setup: | ||
def orgConfig = new TracingConfigPoller.ConfigOverrides() | ||
orgConfig.libConfig = new TracingConfigPoller.LibConfig( | ||
tracingEnabled: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we combine these tests into one? You can use a where
block to specify preset values like this example, and reuse the shared testing logic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change tests to be more compact
dd-trace-core/src/test/groovy/datadog/trace/core/TracingConfigPollerTest.groovy
Outdated
Show resolved
Hide resolved
… logic This is still in development for Java and Python here: - DataDog/dd-trace-java#9360 - DataDog/dd-trace-py#14364 But we want to have system-tests upfront to ensure it's functioning correctly for Sept releases. Refs: DEBUG-4399
This is still in development for Java and Python here: - DataDog/dd-trace-java#9360 - DataDog/dd-trace-py#14364 But we want to have system-tests upfront to ensure it's functioning correctly for Sept releases. Refs: DEBUG-4399
This is still in development for Java and Python here: - DataDog/dd-trace-java#9360 - DataDog/dd-trace-py#14364 But we want to have system-tests upfront to ensure it's functioning correctly for Sept releases. Refs: DEBUG-4399
This is still in development for Java and Python here: - DataDog/dd-trace-java#9360 - DataDog/dd-trace-py#14364 But we want to have system-tests upfront to ensure it's functioning correctly for Sept releases. Refs: DEBUG-4399
This is still in development for Java and Python here: - DataDog/dd-trace-java#9360 - DataDog/dd-trace-py#14364 But we want to have system-tests upfront to ensure it's functioning correctly for Sept releases. Refs: DEBUG-4399
This is still in development for Java and Python here: - DataDog/dd-trace-java#9360 - DataDog/dd-trace-py#14364 But we want to have system-tests upfront to ensure it's functioning correctly for Sept releases. Refs: DEBUG-4399
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM from a Java perspective. Please make sure to have system-tests passing with this change prior to release. :)
What Does This Do
This improve APM_TRACING config handling by removing the assumption we only get one config at a time. In order to handle multiple configs, we merge them based on priority, when more specific configs get precedence over more generic one (org level configs)
Motivation
This come to enable Exception Replay, Code Origin and Distributed Debugging slow rollout.
Additional Notes
Please see RFC for merging APM_TRACING
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: DEBUG-4326