Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Introducing an internal integration name #8708

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

Merged
merged 21 commits into from
May 6, 2025

Conversation

amarziali
Copy link
Collaborator

@amarziali amarziali commented Apr 18, 2025

What Does This Do

This pull request introduces an internal field on AgentSpanContext to store a reliable name used by integrations.
The goal is to have it reliably serialized under _dd.integration . This will contribute to have internal usage data points on integrations.
It also adds integration names for opentracing and otel originated spans that will give us an idea of the source of the span.

It differs from the spans_created telemetry since that usage data is not calculated on the tracer side but on the intake. It will give us more flexibility especially wrt changes on the metric since it won't require tracer changes
The data is also attached to any span. Especially for customer issues, this will help to understand if a span was internally or externally created

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

Copy link
Contributor

github-actions bot commented Apr 18, 2025

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@pr-commenter
Copy link

pr-commenter bot commented Apr 18, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/component-stats
git_commit_date 1746527644 1746529636
git_commit_sha c329d08 73ecd4a
release_version 1.49.0-SNAPSHOT~c329d085ef 1.49.0-SNAPSHOT~73ecd4a870
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1746532450 1746532450
ci_job_id 925336513 925336513
ci_pipeline_id 64233199 64233199
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-ut5eiijd-project-304-concurrent-0-5m0eoz3p 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-ut5eiijd-project-304-concurrent-0-5m0eoz3p 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.005 s) : 0, 1004925
Total [baseline] (8.629 s) : 0, 8628903
Agent [candidate] (1.007 s) : 0, 1007401
Total [candidate] (8.639 s) : 0, 8638868
section iast
Agent [baseline] (1.144 s) : 0, 1143946
Total [baseline] (9.187 s) : 0, 9187353
Agent [candidate] (1.139 s) : 0, 1138637
Total [candidate] (9.231 s) : 0, 9230572
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.152 s) : 0, 1152491
Total [baseline] (9.255 s) : 0, 9255304
Agent [candidate] (1.138 s) : 0, 1137925
Total [candidate] (9.16 s) : 0, 9160479
section iast_TELEMETRY_OFF
Agent [baseline] (1.139 s) : 0, 1138684
Total [baseline] (9.234 s) : 0, 9233932
Agent [candidate] (1.134 s) : 0, 1134286
Total [candidate] (9.257 s) : 0, 9257229
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.005 s -
Agent iast 1.144 s 139.021 ms (13.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.152 s 147.567 ms (14.7%)
Agent iast_TELEMETRY_OFF 1.139 s 133.759 ms (13.3%)
Total tracing 8.629 s -
Total iast 9.187 s 558.45 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.255 s 626.401 ms (7.3%)
Total iast_TELEMETRY_OFF 9.234 s 605.029 ms (7.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.007 s -
Agent iast 1.139 s 131.235 ms (13.0%)
Agent iast_HARDCODED_SECRET_DISABLED 1.138 s 130.524 ms (13.0%)
Agent iast_TELEMETRY_OFF 1.134 s 126.884 ms (12.6%)
Total tracing 8.639 s -
Total iast 9.231 s 591.704 ms (6.8%)
Total iast_HARDCODED_SECRET_DISABLED 9.16 s 521.611 ms (6.0%)
Total iast_TELEMETRY_OFF 9.257 s 618.361 ms (7.2%)
gantt
    title insecure-bank - break down per module: candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (670.757 ms) : 0, 670757
BytebuddyAgent [candidate] (669.943 ms) : 0, 669943
GlobalTracer [baseline] (239.49 ms) : 0, 239490
GlobalTracer [candidate] (240.107 ms) : 0, 240107
AppSec [baseline] (54.489 ms) : 0, 54489
AppSec [candidate] (54.549 ms) : 0, 54549
Debugger [baseline] (6.205 ms) : 0, 6205
Debugger [candidate] (8.251 ms) : 0, 8251
Remote Config [baseline] (703.081 µs) : 0, 703
Remote Config [candidate] (696.636 µs) : 0, 697
Telemetry [baseline] (9.849 ms) : 0, 9849
Telemetry [candidate] (10.438 ms) : 0, 10438
section iast
BytebuddyAgent [baseline] (795.566 ms) : 0, 795566
BytebuddyAgent [candidate] (790.673 ms) : 0, 790673
GlobalTracer [baseline] (231.803 ms) : 0, 231803
GlobalTracer [candidate] (230.61 ms) : 0, 230610
IAST [baseline] (22.779 ms) : 0, 22779
IAST [candidate] (22.96 ms) : 0, 22960
AppSec [baseline] (55.939 ms) : 0, 55939
AppSec [candidate] (56.655 ms) : 0, 56655
Debugger [baseline] (5.904 ms) : 0, 5904
Debugger [candidate] (5.883 ms) : 0, 5883
Remote Config [baseline] (589.51 µs) : 0, 590
Remote Config [candidate] (588.979 µs) : 0, 589
Telemetry [baseline] (7.84 ms) : 0, 7840
Telemetry [candidate] (7.831 ms) : 0, 7831
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (801.318 ms) : 0, 801318
BytebuddyAgent [candidate] (790.624 ms) : 0, 790624
GlobalTracer [baseline] (233.03 ms) : 0, 233030
GlobalTracer [candidate] (230.705 ms) : 0, 230705
IAST [baseline] (23.132 ms) : 0, 23132
IAST [candidate] (22.749 ms) : 0, 22749
AppSec [baseline] (56.721 ms) : 0, 56721
AppSec [candidate] (56.146 ms) : 0, 56146
Debugger [baseline] (6.015 ms) : 0, 6015
Debugger [candidate] (5.857 ms) : 0, 5857
Remote Config [baseline] (598.613 µs) : 0, 599
Remote Config [candidate] (582.117 µs) : 0, 582
Telemetry [baseline] (7.982 ms) : 0, 7982
Telemetry [candidate] (7.873 ms) : 0, 7873
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (791.277 ms) : 0, 791277
BytebuddyAgent [candidate] (787.482 ms) : 0, 787482
GlobalTracer [baseline] (230.879 ms) : 0, 230879
GlobalTracer [candidate] (230.475 ms) : 0, 230475
IAST [baseline] (22.381 ms) : 0, 22381
IAST [candidate] (22.429 ms) : 0, 22429
AppSec [baseline] (56.405 ms) : 0, 56405
AppSec [candidate] (56.113 ms) : 0, 56113
Debugger [baseline] (5.91 ms) : 0, 5910
Debugger [candidate] (5.949 ms) : 0, 5949
Remote Config [baseline] (594.832 µs) : 0, 595
Remote Config [candidate] (604.101 µs) : 0, 604
Telemetry [baseline] (7.741 ms) : 0, 7741
Telemetry [candidate] (7.876 ms) : 0, 7876
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.009 s) : 0, 1008521
Total [baseline] (10.449 s) : 0, 10448804
Agent [candidate] (1.013 s) : 0, 1012837
Total [candidate] (10.477 s) : 0, 10476867
section appsec
Agent [baseline] (1.148 s) : 0, 1148149
Total [baseline] (10.694 s) : 0, 10693552
Agent [candidate] (1.153 s) : 0, 1152965
Total [candidate] (10.68 s) : 0, 10680060
section iast
Agent [baseline] (1.144 s) : 0, 1144440
Total [baseline] (10.892 s) : 0, 10892476
Agent [candidate] (1.141 s) : 0, 1141169
Total [candidate] (10.995 s) : 0, 10994856
section profiling
Agent [baseline] (1.268 s) : 0, 1267823
Total [baseline] (10.86 s) : 0, 10860191
Agent [candidate] (1.257 s) : 0, 1257154
Total [candidate] (10.819 s) : 0, 10819365
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.009 s -
Agent appsec 1.148 s 139.628 ms (13.8%)
Agent iast 1.144 s 135.919 ms (13.5%)
Agent profiling 1.268 s 259.302 ms (25.7%)
Total tracing 10.449 s -
Total appsec 10.694 s 244.748 ms (2.3%)
Total iast 10.892 s 443.672 ms (4.2%)
Total profiling 10.86 s 411.387 ms (3.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.013 s -
Agent appsec 1.153 s 140.128 ms (13.8%)
Agent iast 1.141 s 128.332 ms (12.7%)
Agent profiling 1.257 s 244.317 ms (24.1%)
Total tracing 10.477 s -
Total appsec 10.68 s 203.193 ms (1.9%)
Total iast 10.995 s 517.989 ms (4.9%)
Total profiling 10.819 s 342.498 ms (3.3%)
gantt
    title petclinic - break down per module: candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (672.003 ms) : 0, 672003
BytebuddyAgent [candidate] (675.82 ms) : 0, 675820
GlobalTracer [baseline] (240.22 ms) : 0, 240220
GlobalTracer [candidate] (241.806 ms) : 0, 241806
AppSec [baseline] (54.655 ms) : 0, 54655
AppSec [candidate] (54.986 ms) : 0, 54986
Debugger [baseline] (6.182 ms) : 0, 6182
Debugger [candidate] (6.863 ms) : 0, 6863
Remote Config [baseline] (698.114 µs) : 0, 698
Remote Config [candidate] (708.312 µs) : 0, 708
Telemetry [baseline] (11.267 ms) : 0, 11267
Telemetry [candidate] (9.096 ms) : 0, 9096
section appsec
BytebuddyAgent [baseline] (687.928 ms) : 0, 687928
BytebuddyAgent [candidate] (690.833 ms) : 0, 690833
GlobalTracer [baseline] (236.481 ms) : 0, 236481
GlobalTracer [candidate] (237.866 ms) : 0, 237866
AppSec [baseline] (175.424 ms) : 0, 175424
AppSec [candidate] (175.94 ms) : 0, 175940
Debugger [baseline] (5.832 ms) : 0, 5832
Debugger [candidate] (5.902 ms) : 0, 5902
Remote Config [baseline] (626.109 µs) : 0, 626
Remote Config [candidate] (642.694 µs) : 0, 643
Telemetry [baseline] (7.698 ms) : 0, 7698
Telemetry [candidate] (7.455 ms) : 0, 7455
IAST [baseline] (21.621 ms) : 0, 21621
IAST [candidate] (21.796 ms) : 0, 21796
section iast
BytebuddyAgent [baseline] (795.454 ms) : 0, 795454
BytebuddyAgent [candidate] (791.858 ms) : 0, 791858
GlobalTracer [baseline] (232.031 ms) : 0, 232031
GlobalTracer [candidate] (232.152 ms) : 0, 232152
AppSec [baseline] (56.254 ms) : 0, 56254
AppSec [candidate] (55.585 ms) : 0, 55585
Debugger [baseline] (5.938 ms) : 0, 5938
Debugger [candidate] (5.924 ms) : 0, 5924
Remote Config [baseline] (602.079 µs) : 0, 602
Remote Config [candidate] (596.051 µs) : 0, 596
Telemetry [baseline] (7.906 ms) : 0, 7906
Telemetry [candidate] (7.938 ms) : 0, 7938
IAST [baseline] (22.783 ms) : 0, 22783
IAST [candidate] (23.685 ms) : 0, 23685
section profiling
BytebuddyAgent [baseline] (668.982 ms) : 0, 668982
BytebuddyAgent [candidate] (663.087 ms) : 0, 663087
GlobalTracer [baseline] (380.877 ms) : 0, 380877
GlobalTracer [candidate] (378.906 ms) : 0, 378906
AppSec [baseline] (55.001 ms) : 0, 55001
AppSec [candidate] (53.756 ms) : 0, 53756
Debugger [baseline] (6.23 ms) : 0, 6230
Debugger [candidate] (6.118 ms) : 0, 6118
Remote Config [baseline] (661.786 µs) : 0, 662
Remote Config [candidate] (657.415 µs) : 0, 657
Telemetry [baseline] (8.273 ms) : 0, 8273
Telemetry [candidate] (8.188 ms) : 0, 8188
ProfilingAgent [baseline] (97.39 ms) : 0, 97390
ProfilingAgent [candidate] (96.347 ms) : 0, 96347
Profiling [baseline] (97.415 ms) : 0, 97415
Profiling [candidate] (96.37 ms) : 0, 96370
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-05-06T11:24:33 2025-05-06T11:32:16
git_branch master andrea.marziali/component-stats
git_commit_date 1746527644 1746529636
git_commit_sha c329d08 73ecd4a
release_version 1.49.0-SNAPSHOT~c329d085ef 1.49.0-SNAPSHOT~73ecd4a870
start_time 2025-05-06T11:24:18 2025-05-06T11:32:02
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1746531534 1746531534
ci_job_id 925336514 925336514
ci_pipeline_id 64233199 64233199
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-drymq1by-project-304-concurrent-0-z1bvsxpq 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-drymq1by-project-304-concurrent-0-z1bvsxpq 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef
    dateFormat X
    axisFormat %s
section baseline
no_agent (387.509 µs) : 367, 408
.   : milestone, 388,
iast (528.116 µs) : 505, 551
.   : milestone, 528,
iast_FULL (733.947 µs) : 711, 757
.   : milestone, 734,
iast_GLOBAL (572.99 µs) : 549, 597
.   : milestone, 573,
iast_HARDCODED_SECRET_DISABLED (529.436 µs) : 506, 553
.   : milestone, 529,
iast_INACTIVE (461.628 µs) : 440, 483
.   : milestone, 462,
iast_TELEMETRY_OFF (501.239 µs) : 478, 525
.   : milestone, 501,
tracing (460.391 µs) : 439, 482
.   : milestone, 460,
section candidate
no_agent (380.208 µs) : 360, 400
.   : milestone, 380,
iast (517.072 µs) : 494, 540
.   : milestone, 517,
iast_FULL (735.186 µs) : 712, 759
.   : milestone, 735,
iast_GLOBAL (575.567 µs) : 552, 599
.   : milestone, 576,
iast_HARDCODED_SECRET_DISABLED (514.653 µs) : 492, 538
.   : milestone, 515,
iast_INACTIVE (464.553 µs) : 442, 487
.   : milestone, 465,
iast_TELEMETRY_OFF (507.254 µs) : 484, 531
.   : milestone, 507,
tracing (458.697 µs) : 437, 481
.   : milestone, 459,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 387.509 µs [367.139 µs, 407.879 µs] -
iast 528.116 µs [505.494 µs, 550.738 µs] 140.607 µs (36.3%)
iast_FULL 733.947 µs [710.757 µs, 757.137 µs] 346.438 µs (89.4%)
iast_GLOBAL 572.99 µs [549.453 µs, 596.527 µs] 185.481 µs (47.9%)
iast_HARDCODED_SECRET_DISABLED 529.436 µs [506.056 µs, 552.815 µs] 141.927 µs (36.6%)
iast_INACTIVE 461.628 µs [440.177 µs, 483.08 µs] 74.119 µs (19.1%)
iast_TELEMETRY_OFF 501.239 µs [477.856 µs, 524.622 µs] 113.73 µs (29.3%)
tracing 460.391 µs [438.658 µs, 482.124 µs] 72.882 µs (18.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 380.208 µs [360.169 µs, 400.246 µs] -
iast 517.072 µs [493.827 µs, 540.317 µs] 136.864 µs (36.0%)
iast_FULL 735.186 µs [711.779 µs, 758.593 µs] 354.978 µs (93.4%)
iast_GLOBAL 575.567 µs [551.916 µs, 599.219 µs] 195.359 µs (51.4%)
iast_HARDCODED_SECRET_DISABLED 514.653 µs [491.689 µs, 537.617 µs] 134.445 µs (35.4%)
iast_INACTIVE 464.553 µs [442.28 µs, 486.826 µs] 84.345 µs (22.2%)
iast_TELEMETRY_OFF 507.254 µs [483.94 µs, 530.568 µs] 127.046 µs (33.4%)
tracing 458.697 µs [436.626 µs, 480.768 µs] 78.489 µs (20.6%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.363 ms) : 1344, 1382
.   : milestone, 1363,
appsec (1.738 ms) : 1714, 1762
.   : milestone, 1738,
appsec_no_iast (1.722 ms) : 1697, 1746
.   : milestone, 1722,
code_origins (1.697 ms) : 1670, 1724
.   : milestone, 1697,
iast (1.499 ms) : 1473, 1524
.   : milestone, 1499,
profiling (1.517 ms) : 1494, 1541
.   : milestone, 1517,
tracing (1.487 ms) : 1462, 1512
.   : milestone, 1487,
section candidate
no_agent (1.352 ms) : 1332, 1371
.   : milestone, 1352,
appsec (1.733 ms) : 1709, 1757
.   : milestone, 1733,
appsec_no_iast (1.738 ms) : 1713, 1762
.   : milestone, 1738,
code_origins (1.687 ms) : 1660, 1714
.   : milestone, 1687,
iast (1.514 ms) : 1491, 1537
.   : milestone, 1514,
profiling (1.533 ms) : 1508, 1558
.   : milestone, 1533,
tracing (1.488 ms) : 1462, 1514
.   : milestone, 1488,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.363 ms [1.344 ms, 1.382 ms] -
appsec 1.738 ms [1.714 ms, 1.762 ms] 374.947 µs (27.5%)
appsec_no_iast 1.722 ms [1.697 ms, 1.746 ms] 358.363 µs (26.3%)
code_origins 1.697 ms [1.67 ms, 1.724 ms] 333.859 µs (24.5%)
iast 1.499 ms [1.473 ms, 1.524 ms] 135.642 µs (9.9%)
profiling 1.517 ms [1.494 ms, 1.541 ms] 154.138 µs (11.3%)
tracing 1.487 ms [1.462 ms, 1.512 ms] 123.541 µs (9.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.352 ms [1.332 ms, 1.371 ms] -
appsec 1.733 ms [1.709 ms, 1.757 ms] 381.498 µs (28.2%)
appsec_no_iast 1.738 ms [1.713 ms, 1.762 ms] 386.109 µs (28.6%)
code_origins 1.687 ms [1.66 ms, 1.714 ms] 335.282 µs (24.8%)
iast 1.514 ms [1.491 ms, 1.537 ms] 162.323 µs (12.0%)
profiling 1.533 ms [1.508 ms, 1.558 ms] 181.036 µs (13.4%)
tracing 1.488 ms [1.462 ms, 1.514 ms] 136.095 µs (10.1%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/component-stats
git_commit_date 1746527644 1746529636
git_commit_sha c329d08 73ecd4a
release_version 1.49.0-SNAPSHOT~c329d085ef 1.49.0-SNAPSHOT~73ecd4a870
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1746532145 1746532145
ci_job_id 925336515 925336515
ci_pipeline_id 64233199 64233199
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-16jikxse-project-304-concurrent-0-7qjjz3bn 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-16jikxse-project-304-concurrent-0-7qjjz3bn 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.523 s) : 15523000, 15523000
.   : milestone, 15523000,
appsec (15.076 s) : 15076000, 15076000
.   : milestone, 15076000,
iast (18.725 s) : 18725000, 18725000
.   : milestone, 18725000,
iast_GLOBAL (18.178 s) : 18178000, 18178000
.   : milestone, 18178000,
profiling (15.447 s) : 15447000, 15447000
.   : milestone, 15447000,
tracing (14.684 s) : 14684000, 14684000
.   : milestone, 14684000,
section candidate
no_agent (15.358 s) : 15358000, 15358000
.   : milestone, 15358000,
appsec (14.984 s) : 14984000, 14984000
.   : milestone, 14984000,
iast (18.985 s) : 18985000, 18985000
.   : milestone, 18985000,
iast_GLOBAL (17.871 s) : 17871000, 17871000
.   : milestone, 17871000,
profiling (15.475 s) : 15475000, 15475000
.   : milestone, 15475000,
tracing (14.677 s) : 14677000, 14677000
.   : milestone, 14677000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.523 s [15.523 s, 15.523 s] -
appsec 15.076 s [15.076 s, 15.076 s] -447.0 ms (-2.9%)
iast 18.725 s [18.725 s, 18.725 s] 3.202 s (20.6%)
iast_GLOBAL 18.178 s [18.178 s, 18.178 s] 2.655 s (17.1%)
profiling 15.447 s [15.447 s, 15.447 s] -76.0 ms (-0.5%)
tracing 14.684 s [14.684 s, 14.684 s] -839.0 ms (-5.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.358 s [15.358 s, 15.358 s] -
appsec 14.984 s [14.984 s, 14.984 s] -374.0 ms (-2.4%)
iast 18.985 s [18.985 s, 18.985 s] 3.627 s (23.6%)
iast_GLOBAL 17.871 s [17.871 s, 17.871 s] 2.513 s (16.4%)
profiling 15.475 s [15.475 s, 15.475 s] 117.0 ms (0.8%)
tracing 14.677 s [14.677 s, 14.677 s] -681.0 ms (-4.4%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.49.0-SNAPSHOT~73ecd4a870, baseline=1.49.0-SNAPSHOT~c329d085ef
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.47 ms) : 1458, 1481
.   : milestone, 1470,
appsec (2.404 ms) : 2354, 2454
.   : milestone, 2404,
iast (2.182 ms) : 2120, 2244
.   : milestone, 2182,
iast_GLOBAL (2.222 ms) : 2160, 2284
.   : milestone, 2222,
profiling (2.039 ms) : 1987, 2090
.   : milestone, 2039,
tracing (1.998 ms) : 1950, 2046
.   : milestone, 1998,
section candidate
no_agent (1.473 ms) : 1462, 1485
.   : milestone, 1473,
appsec (2.401 ms) : 2352, 2450
.   : milestone, 2401,
iast (2.18 ms) : 2117, 2242
.   : milestone, 2180,
iast_GLOBAL (2.219 ms) : 2157, 2281
.   : milestone, 2219,
profiling (2.023 ms) : 1974, 2073
.   : milestone, 2023,
tracing (2.012 ms) : 1964, 2060
.   : milestone, 2012,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.47 ms [1.458 ms, 1.481 ms] -
appsec 2.404 ms [2.354 ms, 2.454 ms] 933.954 µs (63.5%)
iast 2.182 ms [2.12 ms, 2.244 ms] 711.98 µs (48.4%)
iast_GLOBAL 2.222 ms [2.16 ms, 2.284 ms] 752.206 µs (51.2%)
profiling 2.039 ms [1.987 ms, 2.09 ms] 568.822 µs (38.7%)
tracing 1.998 ms [1.95 ms, 2.046 ms] 527.884 µs (35.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.462 ms, 1.485 ms] -
appsec 2.401 ms [2.352 ms, 2.45 ms] 927.65 µs (63.0%)
iast 2.18 ms [2.117 ms, 2.242 ms] 706.126 µs (47.9%)
iast_GLOBAL 2.219 ms [2.157 ms, 2.281 ms] 745.305 µs (50.6%)
profiling 2.023 ms [1.974 ms, 2.073 ms] 549.682 µs (37.3%)
tracing 2.012 ms [1.964 ms, 2.06 ms] 538.677 µs (36.6%)

@amarziali amarziali marked this pull request as draft April 18, 2025 15:23
@amarziali amarziali force-pushed the andrea.marziali/component-stats branch from 8922284 to 04a97aa Compare April 30, 2025 07:38
@amarziali amarziali marked this pull request as ready for review April 30, 2025 07:47
@amarziali amarziali requested review from PerfectSlayer and vandonr and removed request for manuel-alvarez-alvarez April 30, 2025 07:47
@@ -99,4 +99,5 @@ public class DDTags {
public static final String DECISION_MAKER_SERVICE = "_dd.dm.service";
public static final String DECISION_MAKER_RESOURCE = "_dd.dm.resource";
public static final String PROCESS_TAGS = "_dd.tags.process";
public static final String INTEGRATION_COMPONENT = "_dd.integration_component";
Copy link
Contributor

@mcculls mcculls Apr 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just wondering what's the difference between integration and integration_component?

EDIT: also is there a difference between component (existing tag) and integration_component ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We specified as it but yes it can be shortened without issues IMHO

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the info - just thinking about the effect of the tag name on payload sizes (which will vary according to the trace protocol)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it makes sense even if compression often soften this. But it's applied to all the spans. Let's shorten the name since more verbosity does not add information

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's changed to the shortened version. thanks for the hint

@@ -43,6 +43,7 @@ public OtelSpan(AgentSpan delegate) {
}
this.statusCode = UNSET;
this.recording = true;
delegate.context().setInstrumentationComponentName("opentelemetry");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note we've used "otel" in other telemetry metrics - personally I prefer the shorter string

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed as well.

@amarziali amarziali force-pushed the andrea.marziali/component-stats branch 2 times, most recently from abf698b to 6e134a0 Compare April 30, 2025 12:45
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More like a general question, but why don't you use a new dedicated tag value and tag interceptor to handle this new data rather than adding another dedicated method to the AgentSpanContext internal API?
It would avoid adding another API where we already handle the some specific datadog tags and data here. It could also simplify to not having to retrieve context every time.

@amarziali amarziali force-pushed the andrea.marziali/component-stats branch from 960b2c6 to c1710b1 Compare May 4, 2025 05:33
@amarziali amarziali requested a review from mcculls May 5, 2025 07:25
@amarziali
Copy link
Collaborator Author

More like a general question, but why don't you use a new dedicated tag value and tag interceptor to handle this new data rather than adding another dedicated method to the AgentSpanContext internal API? It would avoid adding another API where we already handle the some specific datadog tags and data here. It could also simplify to not having to retrieve context every time.

Actually the interceptor is not usable since it's not just a matter of copying the component tag but ensuring that _dd.integration matches the integration name and not anything else the user can put as component tag (what's has been observed as happening). The information is in the span context (the agent span being private not the public api) to avoid having it as a tag with the risk of being overridden

@amarziali amarziali requested a review from PerfectSlayer May 5, 2025 07:27
@@ -51,6 +51,7 @@ public AgentSpan afterStart(final AgentSpan span) {
span.setTag(DDTags.HOST_VCPU_COUNT, cpuCount);
span.setTag(Tags.TEST_TYPE, testType());
span.setTag(Tags.COMPONENT, component());
span.context().setInstrumentationComponentName(component());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want to store component() in a local variable and re-use it like in BaseDecorator, in case it's non-trivial to compute?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usually it's a static string (should not be dynamic). Do you had a use case in mind I overlooked?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no - just noticed that BaseDecorator put it in a local variable for re-use, but this doesn't

I assumed there was a reason the BaseDecorator change introduced a local variable...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I declared a local variable on afterStart to avoid calling component() twice. The initial value for both component and _dd.integration is the same. The only difference is that the latter is immutable

@amarziali amarziali force-pushed the andrea.marziali/component-stats branch from c1710b1 to 600ce5c Compare May 6, 2025 08:29
Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@amarziali amarziali force-pushed the andrea.marziali/component-stats branch from 292dfe8 to 73ecd4a Compare May 6, 2025 11:07
@amarziali amarziali enabled auto-merge (squash) May 6, 2025 11:08
@amarziali amarziali added comp: core Tracer core and removed comp: core Tracer core labels May 6, 2025
@amarziali amarziali merged commit 5bfab65 into master May 6, 2025
251 of 254 checks passed
@amarziali amarziali deleted the andrea.marziali/component-stats branch May 6, 2025 12:36
@github-actions github-actions bot added this to the 1.49.0 milestone May 6, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request May 7, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`3.22.2` -> `3.22.3` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.28.0` -> `2.28.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.48.2` -> `1.49.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |

---

### Release Notes

<details>
<summary>googleapis/java-logging
(com.google.cloud:google-cloud-logging)</summary>

###
[`v3.22.3`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3223-2025-05-06)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.56.3
([844f4fa](googleapis/java-logging@844f4fa))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.46.3
([#&#8203;1801](googleapis/java-logging#1801))
([d7aa7bc](googleapis/java-logging@d7aa7bc))
- Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0
([#&#8203;1803](googleapis/java-logging#1803))
([5967ffe](googleapis/java-logging@5967ffe))
- Update googleapis/sdk-platform-java action to v2.57.0
([#&#8203;1804](googleapis/java-logging#1804))
([e9a27ec](googleapis/java-logging@e9a27ec))

</details>

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.28.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2281-2025-05-06)

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0
([#&#8203;1841](googleapis/java-datastore#1841))
([ac393e6](googleapis/java-datastore@ac393e6))
- Update googleapis/sdk-platform-java action to v2.57.0
([#&#8203;1842](googleapis/java-datastore#1842))
([0745906](googleapis/java-datastore@0745906))

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.49.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.49.0):
1.49.0

### Components

#### Configuration at Runtime

- ✨ Add process tags as list to remote config payload
([#&#8203;8705](DataDog/dd-trace-java#8705) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Continuous Integration Visibility

- 🐛 Add span propagation for Pekko scheduled tasks
([#&#8203;8765](DataDog/dd-trace-java#8765) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Update test.retry_reason to use full name of the feature
([#&#8203;8689](DataDog/dd-trace-java#8689) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🧹 Remove unused TestEventsHandler methods
([#&#8203;8674](DataDog/dd-trace-java#8674) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

#### Dynamic Instrumentation

- 🐛 Fix exclude identifiers normalization
([#&#8203;8742](DataDog/dd-trace-java#8742) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Make source file tracking asynchronous
([#&#8203;8684](DataDog/dd-trace-java#8684) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add scope filtering for symbol extraction
([#&#8203;8676](DataDog/dd-trace-java#8676) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add support for [@&#8203;key](https://github.com/key) and
[@&#8203;value](https://github.com/value) for Map filtering
([#&#8203;8669](DataDog/dd-trace-java#8669) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### Library Injection

- ✨ Add system property to force injection of the tracing
library even though multiple javaagents have been detected
([#&#8203;8697](DataDog/dd-trace-java#8697) -
[@&#8203;cecile75](https://github.com/cecile75))

#### Metrics

- ✨ Allow dogstatsd port to be configurable with
DD_DOGSTATSD_PORT
([#&#8203;8693](DataDog/dd-trace-java#8693) -
[@&#8203;randomanderson](https://github.com/randomanderson))

#### Profiling

- ✨ Bump ddprof-java to 1.25.1
([#&#8203;8750](DataDog/dd-trace-java#8750) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🐛 Remove cleanup-on-shutdown for temporary files
([#&#8203;8746](DataDog/dd-trace-java#8746) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨⚡ Replace a regex-based SMAP parser with a hand-crafted
one
([#&#8203;8730](DataDog/dd-trace-java#8730) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Improve error reporting on profiler startup
([#&#8203;8714](DataDog/dd-trace-java#8714) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Exclude ProxyLeakTask exception from exception profiling
([#&#8203;8666](DataDog/dd-trace-java#8666) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Use jvmstat for JDKs 9+ programmatically
([#&#8203;8641](DataDog/dd-trace-java#8641) -
[@&#8203;MattAlp](https://github.com/MattAlp))

#### Telemetry

- ✨ Allow dogstatsd port to be configurable with
DD_DOGSTATSD_PORT
([#&#8203;8693](DataDog/dd-trace-java#8693) -
[@&#8203;randomanderson](https://github.com/randomanderson))
- 🐛 Fix appsec.waf.requests telemetry metric
([#&#8203;8644](DataDog/dd-trace-java#8644) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Tracer core

- ✨ Exclude jackson afterburner dynamic classes from
instrumentation
([#&#8203;8747](DataDog/dd-trace-java#8747) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Introduce Java 8 bytecode bridge for instrumentation API
([#&#8203;8736](DataDog/dd-trace-java#8736) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ⚡🧹 Use byte-buddy classes optimized for Java8+
([#&#8203;8735](DataDog/dd-trace-java#8735) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Do not set the hibernate or datanucleus span service name when
disabled
([#&#8203;8727](DataDog/dd-trace-java#8727) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Update bytebuddy and ASM to support JDK 24
([#&#8203;8720](DataDog/dd-trace-java#8720) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- 🐛 Turn off JDK socket support by default
([#&#8203;8715](DataDog/dd-trace-java#8715) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Log warning when trace buffer overflow occurs
([#&#8203;8712](DataDog/dd-trace-java#8712) -
[@&#8203;ygree](https://github.com/ygree))
- ✨🧪 Introducing an internal integration name
([#&#8203;8708](DataDog/dd-trace-java#8708) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add process tags to client stats payload
([#&#8203;8704](DataDog/dd-trace-java#8704) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Collect process tags for tracing
([#&#8203;8698](DataDog/dd-trace-java#8698) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Stable Config file: target system properties in
process_arguments and support template variables in YamlParser
([#&#8203;8690](DataDog/dd-trace-java#8690) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨⚡ Use prefix trie for proxy ignores
([#&#8203;8678](DataDog/dd-trace-java#8678) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Allow agent to be automatically injected when running aside
Log4J patch agent
([#&#8203;8648](DataDog/dd-trace-java#8648) -
[@&#8203;paullegranddc](https://github.com/paullegranddc))
- ✨ Use jvmstat for JDKs 9+ programmatically
([#&#8203;8641](DataDog/dd-trace-java#8641) -
[@&#8203;MattAlp](https://github.com/MattAlp))

#### Tracer internal logging

- 🐛 Delete print line
([#&#8203;8686](DataDog/dd-trace-java#8686) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

### Instrumentations

#### Akka instrumentation

- 🐛 Handle reentrant scope cleanup in Akka/Pekko actor
instrumentations
([#&#8203;8722](DataDog/dd-trace-java#8722) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Apache Spark instrumentation

- ✨ Use OpenLineage root parent information to generate trace
id ([#&#8203;8726](DataDog/dd-trace-java#8726)
- [@&#8203;mobuchowski](https://github.com/mobuchowski))
- ✨ Spark job cancellation no longer marks application as
failed
([#&#8203;8701](DataDog/dd-trace-java#8701) -
[@&#8203;paul-laffon-dd](https://github.com/paul-laffon-dd))

#### JDBC instrumentation

- 💡 Add support for sybase tds jdbc driver
([#&#8203;8764](DataDog/dd-trace-java#8764) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Kotlin instrumentation

- 🐛 Take defensive copy of parent scope stack when closing nested
coroutines
([#&#8203;8749](DataDog/dd-trace-java#8749) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Reactor instrumentation

- ✨⚡ Do not inspect reactor context when not needed
([#&#8203;8745](DataDog/dd-trace-java#8745) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 795f347ae34d056efc1194c2f606cee7bca1beea
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants