-
Notifications
You must be signed in to change notification settings - Fork 321
Multi-tracing support for Couchbase 3.2+ #10147
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
base: master
Are you sure you want to change the base?
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 56 metrics, 9 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.085 s) : 0, 1085491
Total [baseline] (10.921 s) : 0, 10920894
Agent [candidate] (1.094 s) : 0, 1094185
Total [candidate] (10.878 s) : 0, 10877512
section appsec
Agent [baseline] (1.271 s) : 0, 1270942
Total [baseline] (10.917 s) : 0, 10916802
Agent [candidate] (1.274 s) : 0, 1273926
Total [candidate] (11.053 s) : 0, 11053481
section iast
Agent [baseline] (1.224 s) : 0, 1224377
Total [baseline] (11.11 s) : 0, 11109779
Agent [candidate] (1.224 s) : 0, 1224332
Total [candidate] (11.112 s) : 0, 11111928
section profiling
Agent [baseline] (1.208 s) : 0, 1207746
Total [baseline] (10.897 s) : 0, 10896668
Agent [candidate] (1.215 s) : 0, 1214575
Total [candidate] (10.933 s) : 0, 10933290
gantt
title petclinic - break down per module: candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.189 ms) : 0, 1189
crashtracking [candidate] (1.179 ms) : 0, 1179
BytebuddyAgent [baseline] (651.484 ms) : 0, 651484
BytebuddyAgent [candidate] (656.932 ms) : 0, 656932
GlobalTracer [baseline] (282.515 ms) : 0, 282515
GlobalTracer [candidate] (284.656 ms) : 0, 284656
AppSec [baseline] (32.707 ms) : 0, 32707
AppSec [candidate] (33.062 ms) : 0, 33062
Debugger [baseline] (68.609 ms) : 0, 68609
Debugger [candidate] (69.117 ms) : 0, 69117
Remote Config [baseline] (664.549 µs) : 0, 665
Remote Config [candidate] (648.432 µs) : 0, 648
Telemetry [baseline] (9.03 ms) : 0, 9030
Telemetry [candidate] (9.163 ms) : 0, 9163
Flare Poller [baseline] (3.754 ms) : 0, 3754
Flare Poller [candidate] (3.839 ms) : 0, 3839
section appsec
crashtracking [baseline] (1.191 ms) : 0, 1191
crashtracking [candidate] (1.192 ms) : 0, 1192
BytebuddyAgent [baseline] (694.996 ms) : 0, 694996
BytebuddyAgent [candidate] (697.052 ms) : 0, 697052
GlobalTracer [baseline] (259.007 ms) : 0, 259007
GlobalTracer [candidate] (259.639 ms) : 0, 259639
IAST [baseline] (24.827 ms) : 0, 24827
IAST [candidate] (24.752 ms) : 0, 24752
AppSec [baseline] (171.569 ms) : 0, 171569
AppSec [candidate] (175.304 ms) : 0, 175304
Debugger [baseline] (69.849 ms) : 0, 69849
Debugger [candidate] (66.56 ms) : 0, 66560
Remote Config [baseline] (795.556 µs) : 0, 796
Remote Config [candidate] (783.052 µs) : 0, 783
Telemetry [baseline] (9.418 ms) : 0, 9418
Telemetry [candidate] (9.457 ms) : 0, 9457
Flare Poller [baseline] (3.701 ms) : 0, 3701
Flare Poller [candidate] (3.692 ms) : 0, 3692
section iast
crashtracking [baseline] (1.191 ms) : 0, 1191
crashtracking [candidate] (1.177 ms) : 0, 1177
BytebuddyAgent [baseline] (792.874 ms) : 0, 792874
BytebuddyAgent [candidate] (791.793 ms) : 0, 791793
GlobalTracer [baseline] (255.488 ms) : 0, 255488
GlobalTracer [candidate] (255.751 ms) : 0, 255751
IAST [baseline] (27.179 ms) : 0, 27179
IAST [candidate] (27.041 ms) : 0, 27041
AppSec [baseline] (34.356 ms) : 0, 34356
AppSec [candidate] (33.498 ms) : 0, 33498
Debugger [baseline] (65.342 ms) : 0, 65342
Debugger [candidate] (66.979 ms) : 0, 66979
Remote Config [baseline] (583.054 µs) : 0, 583
Remote Config [candidate] (612.148 µs) : 0, 612
Telemetry [baseline] (8.46 ms) : 0, 8460
Telemetry [candidate] (8.526 ms) : 0, 8526
Flare Poller [baseline] (3.501 ms) : 0, 3501
Flare Poller [candidate] (3.548 ms) : 0, 3548
section profiling
crashtracking [baseline] (1.217 ms) : 0, 1217
crashtracking [candidate] (1.235 ms) : 0, 1235
BytebuddyAgent [baseline] (704.696 ms) : 0, 704696
BytebuddyAgent [candidate] (710.677 ms) : 0, 710677
GlobalTracer [baseline] (220.796 ms) : 0, 220796
GlobalTracer [candidate] (221.798 ms) : 0, 221798
AppSec [baseline] (32.194 ms) : 0, 32194
AppSec [candidate] (32.357 ms) : 0, 32357
Debugger [baseline] (68.777 ms) : 0, 68777
Debugger [candidate] (68.176 ms) : 0, 68176
Remote Config [baseline] (657.998 µs) : 0, 658
Remote Config [candidate] (665.455 µs) : 0, 665
Telemetry [baseline] (8.819 ms) : 0, 8819
Telemetry [candidate] (8.792 ms) : 0, 8792
Flare Poller [baseline] (3.682 ms) : 0, 3682
Flare Poller [candidate] (3.694 ms) : 0, 3694
ProfilingAgent [baseline] (97.065 ms) : 0, 97065
ProfilingAgent [candidate] (96.665 ms) : 0, 96665
Profiling [baseline] (97.643 ms) : 0, 97643
Profiling [candidate] (97.236 ms) : 0, 97236
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.083 s) : 0, 1082614
Total [baseline] (8.742 s) : 0, 8741815
Agent [candidate] (1.087 s) : 0, 1086866
Total [candidate] (8.753 s) : 0, 8752986
section iast
Agent [baseline] (1.227 s) : 0, 1227080
Total [baseline] (9.316 s) : 0, 9315505
Agent [candidate] (1.223 s) : 0, 1223250
Total [candidate] (9.342 s) : 0, 9342040
gantt
title insecure-bank - break down per module: candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.185 ms) : 0, 1185
crashtracking [candidate] (1.195 ms) : 0, 1195
BytebuddyAgent [baseline] (651.253 ms) : 0, 651253
BytebuddyAgent [candidate] (654.005 ms) : 0, 654005
GlobalTracer [baseline] (281.63 ms) : 0, 281630
GlobalTracer [candidate] (282.537 ms) : 0, 282537
AppSec [baseline] (32.53 ms) : 0, 32530
AppSec [candidate] (32.532 ms) : 0, 32532
Debugger [baseline] (66.497 ms) : 0, 66497
Debugger [candidate] (67.802 ms) : 0, 67802
Remote Config [baseline] (608.833 µs) : 0, 609
Remote Config [candidate] (606.899 µs) : 0, 607
Telemetry [baseline] (8.943 ms) : 0, 8943
Telemetry [candidate] (8.972 ms) : 0, 8972
Flare Poller [baseline] (4.45 ms) : 0, 4450
Flare Poller [candidate] (3.729 ms) : 0, 3729
section iast
crashtracking [baseline] (1.206 ms) : 0, 1206
crashtracking [candidate] (1.176 ms) : 0, 1176
BytebuddyAgent [baseline] (795.318 ms) : 0, 795318
BytebuddyAgent [candidate] (792.643 ms) : 0, 792643
GlobalTracer [baseline] (255.641 ms) : 0, 255641
GlobalTracer [candidate] (255.284 ms) : 0, 255284
IAST [baseline] (27.193 ms) : 0, 27193
IAST [candidate] (27.106 ms) : 0, 27106
AppSec [baseline] (35.15 ms) : 0, 35150
AppSec [candidate] (30.915 ms) : 0, 30915
Debugger [baseline] (64.255 ms) : 0, 64255
Debugger [candidate] (68.302 ms) : 0, 68302
Remote Config [baseline] (617.461 µs) : 0, 617
Remote Config [candidate] (593.052 µs) : 0, 593
Telemetry [baseline] (8.592 ms) : 0, 8592
Telemetry [candidate] (8.44 ms) : 0, 8440
Flare Poller [baseline] (3.563 ms) : 0, 3563
Flare Poller [candidate] (3.476 ms) : 0, 3476
LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 1 performance regressions! Performance is the same for 16 metrics, 17 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section baseline
no_agent (19.097 ms) : 18901, 19293
. : milestone, 19097,
appsec (18.787 ms) : 18600, 18973
. : milestone, 18787,
code_origins (17.727 ms) : 17549, 17905
. : milestone, 17727,
iast (17.71 ms) : 17535, 17885
. : milestone, 17710,
profiling (18.732 ms) : 18546, 18917
. : milestone, 18732,
tracing (17.788 ms) : 17613, 17962
. : milestone, 17788,
section candidate
no_agent (17.273 ms) : 17100, 17446
. : milestone, 17273,
appsec (19.555 ms) : 19356, 19753
. : milestone, 19555,
code_origins (17.695 ms) : 17519, 17870
. : milestone, 17695,
iast (18.008 ms) : 17827, 18189
. : milestone, 18008,
profiling (19.736 ms) : 19538, 19933
. : milestone, 19736,
tracing (17.789 ms) : 17609, 17968
. : milestone, 17789,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section baseline
no_agent (1.185 ms) : 1174, 1197
. : milestone, 1185,
iast (3.186 ms) : 3141, 3232
. : milestone, 3186,
iast_FULL (5.894 ms) : 5835, 5954
. : milestone, 5894,
iast_GLOBAL (3.64 ms) : 3587, 3693
. : milestone, 3640,
profiling (1.991 ms) : 1973, 2009
. : milestone, 1991,
tracing (1.79 ms) : 1774, 1806
. : milestone, 1790,
section candidate
no_agent (1.175 ms) : 1163, 1186
. : milestone, 1175,
iast (3.151 ms) : 3109, 3192
. : milestone, 3151,
iast_FULL (5.625 ms) : 5570, 5680
. : milestone, 5625,
iast_GLOBAL (3.57 ms) : 3511, 3629
. : milestone, 3570,
profiling (2.106 ms) : 2085, 2128
. : milestone, 2106,
tracing (1.783 ms) : 1766, 1799
. : milestone, 1783,
DacapoParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1467, 1491
. : milestone, 1479,
appsec (3.72 ms) : 3500, 3940
. : milestone, 3720,
iast (2.208 ms) : 2143, 2272
. : milestone, 2208,
iast_GLOBAL (2.253 ms) : 2188, 2318
. : milestone, 2253,
profiling (2.087 ms) : 2033, 2141
. : milestone, 2087,
tracing (2.055 ms) : 2004, 2106
. : milestone, 2055,
section candidate
no_agent (1.471 ms) : 1460, 1483
. : milestone, 1471,
appsec (2.458 ms) : 2406, 2510
. : milestone, 2458,
iast (2.22 ms) : 2155, 2286
. : milestone, 2220,
iast_GLOBAL (2.257 ms) : 2192, 2321
. : milestone, 2257,
profiling (2.082 ms) : 2028, 2137
. : milestone, 2082,
tracing (2.045 ms) : 1994, 2096
. : milestone, 2045,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.57.0-SNAPSHOT~ea76dc3205, baseline=1.58.0-SNAPSHOT~83f64d5ef8
dateFormat X
axisFormat %s
section baseline
no_agent (15.505 s) : 15505000, 15505000
. : milestone, 15505000,
appsec (14.892 s) : 14892000, 14892000
. : milestone, 14892000,
iast (18.146 s) : 18146000, 18146000
. : milestone, 18146000,
iast_GLOBAL (17.85 s) : 17850000, 17850000
. : milestone, 17850000,
profiling (14.849 s) : 14849000, 14849000
. : milestone, 14849000,
tracing (14.86 s) : 14860000, 14860000
. : milestone, 14860000,
section candidate
no_agent (14.93 s) : 14930000, 14930000
. : milestone, 14930000,
appsec (14.74 s) : 14740000, 14740000
. : milestone, 14740000,
iast (18.653 s) : 18653000, 18653000
. : milestone, 18653000,
iast_GLOBAL (17.651 s) : 17651000, 17651000
. : milestone, 17651000,
profiling (14.836 s) : 14836000, 14836000
. : milestone, 14836000,
tracing (14.562 s) : 14562000, 14562000
. : milestone, 14562000,
|
vandonr
left a comment
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
| public class DelegatingRequestTracer implements RequestTracer { | ||
|
|
||
| private final DatadogRequestTracer ddTracer; | ||
| private final RequestTracer cncTracer; |
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.
What does "cnc" stand for?
ygree
left a comment
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.
Looks good!
What Does This Do
Introduced support for combining user-provided Couchbase
RequestTracerwith Datadog'sDataDogRequestTracer, allowing both tracers to operate simultaneouslyAdded
DelegatingRequestTracerthat forwards tracing calls to two tracers:DatadogRequestTracerthe application's custom tracerDelegatingRequestSpanthat mirrors span operations (attributes, events, end(), etc.) to both underlying spansNew instrumentation advice that wraps any user-supplied tracer into this delegating tracer automatically
If the application does not configure a custom tracer, Datadog continues to trace Couchbase operations exactly as before
If the application does configure its own tracer, both tracers now run side-by-side without interfering with each other
Motivation
Сustomer reported that they are using a custom Couchbase
RequestTracerin their applicationBecause Couchbase only allows one tracer to be registered, Datadog’s tracer was being replaced by the custom one. As a result, Couchbase operations were not showing up in the Datadog dashboard at all
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]