-
Notifications
You must be signed in to change notification settings - Fork 290
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
[WIP] Handle multi-value tagging for server spans #7977
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 52 metrics, 11 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.079 s) : 0, 1078607
Total [baseline] (8.55 s) : 0, 8550295
Agent [candidate] (1.088 s) : 0, 1087603
Total [candidate] (8.549 s) : 0, 8549236
section iast
Agent [baseline] (1.205 s) : 0, 1204560
Total [baseline] (9.113 s) : 0, 9113195
Agent [candidate] (1.202 s) : 0, 1202394
Total [candidate] (9.098 s) : 0, 9098068
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.214 s) : 0, 1214418
Total [baseline] (9.09 s) : 0, 9089721
Agent [candidate] (1.208 s) : 0, 1207549
Total [candidate] (9.095 s) : 0, 9095499
section iast_TELEMETRY_OFF
Agent [baseline] (1.213 s) : 0, 1212824
Total [baseline] (9.153 s) : 0, 9152517
Agent [candidate] (1.209 s) : 0, 1209370
Total [candidate] (9.093 s) : 0, 9092552
gantt
title insecure-bank - break down per module: candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (687.369 ms) : 0, 687369
BytebuddyAgent [candidate] (691.582 ms) : 0, 691582
GlobalTracer [baseline] (314.4 ms) : 0, 314400
GlobalTracer [candidate] (315.814 ms) : 0, 315814
AppSec [baseline] (54.079 ms) : 0, 54079
AppSec [candidate] (54.49 ms) : 0, 54490
Remote Config [baseline] (675.147 µs) : 0, 675
Remote Config [candidate] (679.203 µs) : 0, 679
Telemetry [baseline] (8.447 ms) : 0, 8447
Telemetry [candidate] (11.306 ms) : 0, 11306
section iast
BytebuddyAgent [baseline] (801.534 ms) : 0, 801534
BytebuddyAgent [candidate] (799.736 ms) : 0, 799736
GlobalTracer [baseline] (303.708 ms) : 0, 303708
GlobalTracer [candidate] (303.324 ms) : 0, 303324
AppSec [baseline] (55.555 ms) : 0, 55555
AppSec [candidate] (55.649 ms) : 0, 55649
IAST [baseline] (22.158 ms) : 0, 22158
IAST [candidate] (22.144 ms) : 0, 22144
Remote Config [baseline] (618.189 µs) : 0, 618
Remote Config [candidate] (591.276 µs) : 0, 591
Telemetry [baseline] (7.358 ms) : 0, 7358
Telemetry [candidate] (7.325 ms) : 0, 7325
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (807.638 ms) : 0, 807638
BytebuddyAgent [candidate] (802.617 ms) : 0, 802617
GlobalTracer [baseline] (306.105 ms) : 0, 306105
GlobalTracer [candidate] (305.204 ms) : 0, 305204
AppSec [baseline] (56.292 ms) : 0, 56292
AppSec [candidate] (56.644 ms) : 0, 56644
IAST [baseline] (22.532 ms) : 0, 22532
IAST [candidate] (21.335 ms) : 0, 21335
Remote Config [baseline] (616.385 µs) : 0, 616
Remote Config [candidate] (607.94 µs) : 0, 608
Telemetry [baseline] (7.522 ms) : 0, 7522
Telemetry [candidate] (7.472 ms) : 0, 7472
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (806.66 ms) : 0, 806660
BytebuddyAgent [candidate] (805.959 ms) : 0, 805959
GlobalTracer [baseline] (305.845 ms) : 0, 305845
GlobalTracer [candidate] (303.88 ms) : 0, 303880
AppSec [baseline] (57.363 ms) : 0, 57363
AppSec [candidate] (57.565 ms) : 0, 57565
IAST [baseline] (21.151 ms) : 0, 21151
IAST [candidate] (20.292 ms) : 0, 20292
Remote Config [baseline] (607.002 µs) : 0, 607
Remote Config [candidate] (618.695 µs) : 0, 619
Telemetry [baseline] (7.448 ms) : 0, 7448
Telemetry [candidate] (7.353 ms) : 0, 7353
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.091 s) : 0, 1090946
Total [baseline] (10.453 s) : 0, 10453230
Agent [candidate] (1.081 s) : 0, 1081355
Total [candidate] (10.392 s) : 0, 10391795
section appsec
Agent [baseline] (1.215 s) : 0, 1215304
Total [baseline] (10.615 s) : 0, 10614662
Agent [candidate] (1.215 s) : 0, 1214694
Total [candidate] (10.641 s) : 0, 10641489
section iast
Agent [baseline] (1.205 s) : 0, 1204942
Total [baseline] (10.858 s) : 0, 10858406
Agent [candidate] (1.213 s) : 0, 1213474
Total [candidate] (10.873 s) : 0, 10872956
section profiling
Agent [baseline] (1.285 s) : 0, 1284620
Total [baseline] (10.773 s) : 0, 10772600
Agent [candidate] (1.279 s) : 0, 1279252
Total [candidate] (10.696 s) : 0, 10695802
gantt
title petclinic - break down per module: candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (694.562 ms) : 0, 694562
BytebuddyAgent [candidate] (687.668 ms) : 0, 687668
GlobalTracer [baseline] (317.992 ms) : 0, 317992
GlobalTracer [candidate] (315.12 ms) : 0, 315120
AppSec [baseline] (54.087 ms) : 0, 54087
AppSec [candidate] (54.192 ms) : 0, 54192
Remote Config [baseline] (682.959 µs) : 0, 683
Remote Config [candidate] (685.702 µs) : 0, 686
Telemetry [baseline] (9.869 ms) : 0, 9869
Telemetry [candidate] (10.01 ms) : 0, 10010
section appsec
BytebuddyAgent [baseline] (705.235 ms) : 0, 705235
BytebuddyAgent [candidate] (704.061 ms) : 0, 704061
GlobalTracer [baseline] (312.852 ms) : 0, 312852
GlobalTracer [candidate] (312.377 ms) : 0, 312377
AppSec [baseline] (165.095 ms) : 0, 165095
AppSec [candidate] (166.2 ms) : 0, 166200
Remote Config [baseline] (628.818 µs) : 0, 629
Remote Config [candidate] (635.398 µs) : 0, 635
Telemetry [baseline] (7.73 ms) : 0, 7730
Telemetry [candidate] (7.753 ms) : 0, 7753
IAST [baseline] (20.279 ms) : 0, 20279
IAST [candidate] (20.1 ms) : 0, 20100
section iast
BytebuddyAgent [baseline] (801.53 ms) : 0, 801530
BytebuddyAgent [candidate] (807.19 ms) : 0, 807190
GlobalTracer [baseline] (303.624 ms) : 0, 303624
GlobalTracer [candidate] (305.932 ms) : 0, 305932
AppSec [baseline] (57.299 ms) : 0, 57299
AppSec [candidate] (56.86 ms) : 0, 56860
Remote Config [baseline] (598.325 µs) : 0, 598
Remote Config [candidate] (627.198 µs) : 0, 627
Telemetry [baseline] (7.41 ms) : 0, 7410
Telemetry [candidate] (7.565 ms) : 0, 7565
IAST [baseline] (20.866 ms) : 0, 20866
IAST [candidate] (21.565 ms) : 0, 21565
section profiling
ProfilingAgent [baseline] (93.289 ms) : 0, 93289
ProfilingAgent [candidate] (89.472 ms) : 0, 89472
BytebuddyAgent [baseline] (685.371 ms) : 0, 685371
BytebuddyAgent [candidate] (684.08 ms) : 0, 684080
GlobalTracer [baseline] (399.203 ms) : 0, 399203
GlobalTracer [candidate] (397.574 ms) : 0, 397574
AppSec [baseline] (55.037 ms) : 0, 55037
AppSec [candidate] (54.554 ms) : 0, 54554
Remote Config [baseline] (675.667 µs) : 0, 676
Remote Config [candidate] (661.339 µs) : 0, 661
Telemetry [baseline] (11.972 ms) : 0, 11972
Telemetry [candidate] (13.903 ms) : 0, 13903
Profiling [baseline] (93.312 ms) : 0, 93312
Profiling [candidate] (89.496 ms) : 0, 89496
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 16 unstable metrics. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section baseline
no_agent (372.779 µs) : 353, 393
. : milestone, 373,
iast (486.026 µs) : 465, 507
. : milestone, 486,
iast_FULL (642.321 µs) : 621, 664
. : milestone, 642,
iast_GLOBAL (521.526 µs) : 498, 545
. : milestone, 522,
iast_HARDCODED_SECRET_DISABLED (492.343 µs) : 471, 513
. : milestone, 492,
iast_INACTIVE (453.089 µs) : 432, 474
. : milestone, 453,
iast_TELEMETRY_OFF (471.6 µs) : 451, 493
. : milestone, 472,
tracing (444.853 µs) : 424, 466
. : milestone, 445,
section candidate
no_agent (369.332 µs) : 349, 390
. : milestone, 369,
iast (483.347 µs) : 462, 505
. : milestone, 483,
iast_FULL (640.34 µs) : 619, 662
. : milestone, 640,
iast_GLOBAL (519.701 µs) : 498, 542
. : milestone, 520,
iast_HARDCODED_SECRET_DISABLED (489.744 µs) : 468, 511
. : milestone, 490,
iast_INACTIVE (443.405 µs) : 423, 464
. : milestone, 443,
iast_TELEMETRY_OFF (482.211 µs) : 460, 504
. : milestone, 482,
tracing (441.979 µs) : 421, 463
. : milestone, 442,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section baseline
no_agent (1.335 ms) : 1316, 1354
. : milestone, 1335,
appsec (1.737 ms) : 1712, 1761
. : milestone, 1737,
appsec_no_iast (1.712 ms) : 1687, 1737
. : milestone, 1712,
iast (1.49 ms) : 1468, 1513
. : milestone, 1490,
profiling (1.496 ms) : 1472, 1519
. : milestone, 1496,
tracing (1.469 ms) : 1444, 1495
. : milestone, 1469,
section candidate
no_agent (1.343 ms) : 1324, 1363
. : milestone, 1343,
appsec (1.72 ms) : 1694, 1745
. : milestone, 1720,
appsec_no_iast (1.74 ms) : 1716, 1764
. : milestone, 1740,
iast (1.48 ms) : 1458, 1502
. : milestone, 1480,
profiling (1.462 ms) : 1439, 1485
. : milestone, 1462,
tracing (1.458 ms) : 1433, 1482
. : milestone, 1458,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section baseline
no_agent (14.979 s) : 14979000, 14979000
. : milestone, 14979000,
appsec (15.157 s) : 15157000, 15157000
. : milestone, 15157000,
iast (18.432 s) : 18432000, 18432000
. : milestone, 18432000,
iast_GLOBAL (18.269 s) : 18269000, 18269000
. : milestone, 18269000,
profiling (14.885 s) : 14885000, 14885000
. : milestone, 14885000,
tracing (15.282 s) : 15282000, 15282000
. : milestone, 15282000,
section candidate
no_agent (15.086 s) : 15086000, 15086000
. : milestone, 15086000,
appsec (15.419 s) : 15419000, 15419000
. : milestone, 15419000,
iast (18.982 s) : 18982000, 18982000
. : milestone, 18982000,
iast_GLOBAL (18.29 s) : 18290000, 18290000
. : milestone, 18290000,
profiling (14.971 s) : 14971000, 14971000
. : milestone, 14971000,
tracing (15.032 s) : 15032000, 15032000
. : milestone, 15032000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.43.0-SNAPSHOT~076071c80d, baseline=1.43.0-SNAPSHOT~137948ff59
dateFormat X
axisFormat %s
section baseline
no_agent (1.482 ms) : 1470, 1493
. : milestone, 1482,
appsec (2.369 ms) : 2327, 2411
. : milestone, 2369,
iast (2.095 ms) : 2043, 2147
. : milestone, 2095,
iast_GLOBAL (2.134 ms) : 2082, 2186
. : milestone, 2134,
profiling (1.943 ms) : 1902, 1984
. : milestone, 1943,
tracing (1.928 ms) : 1888, 1968
. : milestone, 1928,
section candidate
no_agent (1.476 ms) : 1465, 1488
. : milestone, 1476,
appsec (2.355 ms) : 2314, 2396
. : milestone, 2355,
iast (2.094 ms) : 2042, 2146
. : milestone, 2094,
iast_GLOBAL (2.138 ms) : 2086, 2191
. : milestone, 2138,
profiling (1.955 ms) : 1912, 1998
. : milestone, 1955,
tracing (1.935 ms) : 1895, 1975
. : milestone, 1935,
|
if (existing_val == null) { | ||
span.setTag(mappedKey, value); | ||
} else { | ||
span.setTag(mappedKey, existing_val.toString() + value); |
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.
First, you might need to ensure the existing value is a String, otherwise you might end up with weird values calling toString()
.
Then, aren't the multiple header values supposed to be coma-separated? (I honestly don't know but I am curious about just being able to concatenate them 🤔 )
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.
Agreed!
What Does This Do
The goal of this PR is to handle multi-value tagging for server spans.
Motivation
Currently, the HTTP protocol allows splitting the header into multiple lines per value; however, the Java tracer only allows users to extrace the first value of the HTTP header. This PR will now allow extracting multi-valued multi-line headers. This PR would help allow extracting multi-valued multi-line HTTP headers in conjunction with #7943.
Additional Notes
This PR is made in response to this Jira ticket.
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: [PROJ-IDENT]