Skip to content

Add stable session ID headers to telemetry requests#10914

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 6 commits intomasterfrom
ayan.khan/stable-session-id-headers
Mar 20, 2026
Merged

Add stable session ID headers to telemetry requests#10914
gh-worker-dd-mergequeue-cf854d[bot] merged 6 commits intomasterfrom
ayan.khan/stable-session-id-headers

Conversation

@khanayan123
Copy link
Contributor

@khanayan123 khanayan123 commented Mar 20, 2026

Summary

Implements the Stable Service Instance Identifier RFC for Java telemetry.

  • Adds DD-Session-ID header (= runtime_id) to all telemetry HTTP requests
  • Adds DD-Root-Session-ID header when process was spawned by an instrumented parent (value inherited via _DD_ROOT_JAVA_SESSION_ID env var)
  • Auto-propagates _DD_ROOT_JAVA_SESSION_ID to child processes via the existing ProcessImpl.start() hook — no user code changes required
  • _DD_ROOT_JAVA_SESSION_ID is an internal env var (underscore-prefixed to bypass config-inversion validation, not added to supported configurations)

This enables the backend to correlate telemetry across parent/child process relationships without the broken uncorrelated runtime_id regeneration on process spawn.

Files changed

File Change
Config.java Add rootSessionId to RuntimeIdHolder, read via ConfigHelper.env() from _DD_ROOT_JAVA_SESSION_ID (falls back to runtimeId)
TelemetryRequest.java Add DD-Session-ID and conditional DD-Root-Session-ID headers in httpRequest()
ProcessImplStartAdvice.java Inject _DD_ROOT_JAVA_SESSION_ID into child process environment map via existing ProcessImpl.start() hook
TestTelemetryRouter.groovy Assert DD-Session-ID equals runtime ID and DD-Root-Session-ID is absent in non-child context
ProcessImplInstrumentationSpecification.groovy Add test verifying child process inherits root session ID

Cross-SDK references

khanayan123 and others added 4 commits March 20, 2026 12:27
Implements the Stable Service Instance Identifier RFC for Java.

- Add DD-Session-ID header (= runtime_id) to all telemetry requests
- Add DD-Root-Session-ID header when process is a child (inherited from parent)
- Read _DD_ROOT_JAVA_SESSION_ID from environment at init time
- Auto-propagate _DD_ROOT_JAVA_SESSION_ID to child processes via
  ProcessBuilder instrumentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove separate ProcessBuilderSessionId instrumentation files and fold
env var injection into the existing ProcessImplStartAdvice. Adds
_DD_ROOT_JAVA_SESSION_ID to the child process environment map directly
in the ProcessImpl.start() hook.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Verify DD-Session-ID equals runtime ID and DD-Root-Session-ID is absent
when rootSessionId == runtimeId (non-child process), or present with
the correct value when they differ.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use ConfigHelper.env() instead of EnvironmentVariables.get() for
  _DD_ROOT_JAVA_SESSION_ID to satisfy config-inversion-linter. The
  underscore prefix bypasses supported-config validation (internal var).
- Remove readOnly=false from @Advice.Argument(1) — we mutate the map
  via put(), not reassign the reference. readOnly=false generates
  unnecessary bytecode that breaks bootstrap class instrumentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@khanayan123 khanayan123 marked this pull request as ready for review March 20, 2026 17:23
@khanayan123 khanayan123 requested review from a team as code owners March 20, 2026 17:23
@khanayan123 khanayan123 requested review from dougqh and removed request for a team March 20, 2026 17:23
@github-actions
Copy link
Contributor

github-actions bot commented Mar 20, 2026

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.

@khanayan123 khanayan123 requested a review from mabdinur March 20, 2026 17:23
@github-actions github-actions bot added the tag: ai generated Largely based on code generated by an AI or LLM label Mar 20, 2026
@khanayan123 khanayan123 added comp: telemetry Telemetry type: enhancement Enhancements and improvements labels Mar 20, 2026
Copy link
Contributor

@mhlidd mhlidd left a comment

Choose a reason for hiding this comment

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

2 small questions

*/
static class RuntimeIdHolder {
static final String runtimeId = RandomUtils.randomUUID().toString();
static final String rootSessionId = initRootSessionId();
Copy link
Contributor

Choose a reason for hiding this comment

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

❓ Is this a value that we should include in tracer logs? We already include runtimeId in the logs 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Any reason not to? backend will start correlating telemetry by root session id but maybe we can optionally include it in logs if they are runtime id does note equal root it

Copy link
Contributor

@mhlidd mhlidd Mar 20, 2026

Choose a reason for hiding this comment

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

For simplicity's sake, I'm in favor of just including the raw value in logs unless you have objections

(ref)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That works

}

public String getRootSessionId() {
return RuntimeIdHolder.rootSessionId;
Copy link
Contributor

Choose a reason for hiding this comment

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

What if runtimeIdEnabled is false? Currently, RuntimeID returns "" if runtimeIdEnabled is false - should rootSessionId follow the same trend? Otherwise we risk a situation where there is no runtimeId but there is a rootSessionId. (ref)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we should disable it i believe

@pr-commenter
Copy link

pr-commenter bot commented Mar 20, 2026

Benchmarks

⚠️ Warning: Baseline build not found for merge-base commit. Comparing against the latest commit on master instead.

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master ayan.khan/stable-session-id-headers
git_commit_date 1774018274 1774030759
git_commit_sha 828c9cc 1f53945
release_version 1.61.0-SNAPSHOT~828c9cc58f 1.61.0-SNAPSHOT~1f53945a22
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774033105 1774033105
ci_job_id 1526991596 1526991596
ci_pipeline_id 103794011 103794011
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-lmqf3uf0 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-lmqf3uf0 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

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

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:insecure-bank:iast:Debugger worse
[+1.756ms; +6.577ms] or [+2.653%; +9.934%]
70.370ms 66.203ms
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.061 s) : 0, 1060549
Total [baseline] (8.841 s) : 0, 8841236
Agent [candidate] (1.054 s) : 0, 1053809
Total [candidate] (8.813 s) : 0, 8813413
section iast
Agent [baseline] (1.224 s) : 0, 1223950
Total [baseline] (9.524 s) : 0, 9524076
Agent [candidate] (1.242 s) : 0, 1242383
Total [candidate] (9.578 s) : 0, 9577594
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.061 s -
Agent iast 1.224 s 163.4 ms (15.4%)
Total tracing 8.841 s -
Total iast 9.524 s 682.84 ms (7.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent iast 1.242 s 188.574 ms (17.9%)
Total tracing 8.813 s -
Total iast 9.578 s 764.181 ms (8.7%)
gantt
    title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.207 ms) : 0, 1207
crashtracking [candidate] (1.207 ms) : 0, 1207
BytebuddyAgent [baseline] (632.761 ms) : 0, 632761
BytebuddyAgent [candidate] (627.552 ms) : 0, 627552
AgentMeter [baseline] (29.573 ms) : 0, 29573
AgentMeter [candidate] (29.327 ms) : 0, 29327
GlobalTracer [baseline] (257.262 ms) : 0, 257262
GlobalTracer [candidate] (256.542 ms) : 0, 256542
AppSec [baseline] (31.823 ms) : 0, 31823
AppSec [candidate] (31.599 ms) : 0, 31599
Debugger [baseline] (59.743 ms) : 0, 59743
Debugger [candidate] (59.495 ms) : 0, 59495
Remote Config [baseline] (588.308 µs) : 0, 588
Remote Config [candidate] (583.755 µs) : 0, 584
Telemetry [baseline] (8.021 ms) : 0, 8021
Telemetry [candidate] (8.078 ms) : 0, 8078
Flare Poller [baseline] (3.503 ms) : 0, 3503
Flare Poller [candidate] (3.521 ms) : 0, 3521
section iast
crashtracking [baseline] (1.205 ms) : 0, 1205
crashtracking [candidate] (1.215 ms) : 0, 1215
BytebuddyAgent [baseline] (794.399 ms) : 0, 794399
BytebuddyAgent [candidate] (807.79 ms) : 0, 807790
AgentMeter [baseline] (11.346 ms) : 0, 11346
AgentMeter [candidate] (11.727 ms) : 0, 11727
GlobalTracer [baseline] (246.615 ms) : 0, 246615
GlobalTracer [candidate] (249.387 ms) : 0, 249387
AppSec [baseline] (27.186 ms) : 0, 27186
AppSec [candidate] (26.9 ms) : 0, 26900
Debugger [baseline] (66.203 ms) : 0, 66203
Debugger [candidate] (70.37 ms) : 0, 70370
Remote Config [baseline] (525.171 µs) : 0, 525
Remote Config [candidate] (528.366 µs) : 0, 528
Telemetry [baseline] (11.265 ms) : 0, 11265
Telemetry [candidate] (9.137 ms) : 0, 9137
Flare Poller [baseline] (3.934 ms) : 0, 3934
Flare Poller [candidate] (3.332 ms) : 0, 3332
IAST [baseline] (25.309 ms) : 0, 25309
IAST [candidate] (25.691 ms) : 0, 25691
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1056547
Total [baseline] (11.002 s) : 0, 11002059
Agent [candidate] (1.059 s) : 0, 1059259
Total [candidate] (11.005 s) : 0, 11004831
section appsec
Agent [baseline] (1.247 s) : 0, 1247374
Total [baseline] (11.16 s) : 0, 11159855
Agent [candidate] (1.252 s) : 0, 1251808
Total [candidate] (11.205 s) : 0, 11205039
section iast
Agent [baseline] (1.234 s) : 0, 1233856
Total [baseline] (11.374 s) : 0, 11373720
Agent [candidate] (1.225 s) : 0, 1225450
Total [candidate] (11.377 s) : 0, 11376858
section profiling
Agent [baseline] (1.19 s) : 0, 1189926
Total [baseline] (11.022 s) : 0, 11022000
Agent [candidate] (1.19 s) : 0, 1190389
Total [candidate] (11.186 s) : 0, 11185893
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent appsec 1.247 s 190.827 ms (18.1%)
Agent iast 1.234 s 177.308 ms (16.8%)
Agent profiling 1.19 s 133.379 ms (12.6%)
Total tracing 11.002 s -
Total appsec 11.16 s 157.795 ms (1.4%)
Total iast 11.374 s 371.661 ms (3.4%)
Total profiling 11.022 s 19.941 ms (0.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.059 s -
Agent appsec 1.252 s 192.549 ms (18.2%)
Agent iast 1.225 s 166.191 ms (15.7%)
Agent profiling 1.19 s 131.13 ms (12.4%)
Total tracing 11.005 s -
Total appsec 11.205 s 200.208 ms (1.8%)
Total iast 11.377 s 372.027 ms (3.4%)
Total profiling 11.186 s 181.062 ms (1.6%)
gantt
    title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.204 ms) : 0, 1204
crashtracking [candidate] (1.187 ms) : 0, 1187
BytebuddyAgent [baseline] (628.684 ms) : 0, 628684
BytebuddyAgent [candidate] (629.236 ms) : 0, 629236
AgentMeter [baseline] (29.348 ms) : 0, 29348
AgentMeter [candidate] (29.278 ms) : 0, 29278
GlobalTracer [baseline] (256.449 ms) : 0, 256449
GlobalTracer [candidate] (256.947 ms) : 0, 256947
AppSec [baseline] (31.66 ms) : 0, 31660
AppSec [candidate] (31.739 ms) : 0, 31739
Debugger [baseline] (60.363 ms) : 0, 60363
Debugger [candidate] (60.407 ms) : 0, 60407
Remote Config [baseline] (588.77 µs) : 0, 589
Remote Config [candidate] (581.839 µs) : 0, 582
Telemetry [baseline] (8.004 ms) : 0, 8004
Telemetry [candidate] (9.517 ms) : 0, 9517
Flare Poller [baseline] (4.264 ms) : 0, 4264
Flare Poller [candidate] (4.372 ms) : 0, 4372
section appsec
crashtracking [baseline] (1.214 ms) : 0, 1214
crashtracking [candidate] (1.187 ms) : 0, 1187
BytebuddyAgent [baseline] (658.976 ms) : 0, 658976
BytebuddyAgent [candidate] (661.473 ms) : 0, 661473
AgentMeter [baseline] (12.103 ms) : 0, 12103
AgentMeter [candidate] (12.142 ms) : 0, 12142
GlobalTracer [baseline] (258.171 ms) : 0, 258171
GlobalTracer [candidate] (259.193 ms) : 0, 259193
AppSec [baseline] (177.658 ms) : 0, 177658
AppSec [candidate] (177.989 ms) : 0, 177989
Debugger [baseline] (66.245 ms) : 0, 66245
Debugger [candidate] (66.5 ms) : 0, 66500
Remote Config [baseline] (629.589 µs) : 0, 630
Remote Config [candidate] (638.058 µs) : 0, 638
Telemetry [baseline] (8.333 ms) : 0, 8333
Telemetry [candidate] (8.428 ms) : 0, 8428
Flare Poller [baseline] (3.602 ms) : 0, 3602
Flare Poller [candidate] (3.664 ms) : 0, 3664
IAST [baseline] (24.249 ms) : 0, 24249
IAST [candidate] (24.333 ms) : 0, 24333
section iast
crashtracking [baseline] (1.197 ms) : 0, 1197
crashtracking [candidate] (1.191 ms) : 0, 1191
BytebuddyAgent [baseline] (801.169 ms) : 0, 801169
BytebuddyAgent [candidate] (794.844 ms) : 0, 794844
AgentMeter [baseline] (11.443 ms) : 0, 11443
AgentMeter [candidate] (11.407 ms) : 0, 11407
GlobalTracer [baseline] (247.965 ms) : 0, 247965
GlobalTracer [candidate] (246.747 ms) : 0, 246747
AppSec [baseline] (26.632 ms) : 0, 26632
AppSec [candidate] (26.361 ms) : 0, 26361
Debugger [baseline] (70.717 ms) : 0, 70717
Debugger [candidate] (70.637 ms) : 0, 70637
Remote Config [baseline] (538.01 µs) : 0, 538
Remote Config [candidate] (532.082 µs) : 0, 532
Telemetry [baseline] (9.237 ms) : 0, 9237
Telemetry [candidate] (9.176 ms) : 0, 9176
Flare Poller [baseline] (3.343 ms) : 0, 3343
Flare Poller [candidate] (3.327 ms) : 0, 3327
IAST [baseline] (25.399 ms) : 0, 25399
IAST [candidate] (25.233 ms) : 0, 25233
section profiling
crashtracking [baseline] (1.174 ms) : 0, 1174
crashtracking [candidate] (1.199 ms) : 0, 1199
BytebuddyAgent [baseline] (686.74 ms) : 0, 686740
BytebuddyAgent [candidate] (686.695 ms) : 0, 686695
AgentMeter [baseline] (9.019 ms) : 0, 9019
AgentMeter [candidate] (9.051 ms) : 0, 9051
GlobalTracer [baseline] (216.678 ms) : 0, 216678
GlobalTracer [candidate] (216.555 ms) : 0, 216555
AppSec [baseline] (32.398 ms) : 0, 32398
AppSec [candidate] (32.329 ms) : 0, 32329
Debugger [baseline] (66.338 ms) : 0, 66338
Debugger [candidate] (65.502 ms) : 0, 65502
Remote Config [baseline] (570.748 µs) : 0, 571
Remote Config [candidate] (575.657 µs) : 0, 576
Telemetry [baseline] (7.806 ms) : 0, 7806
Telemetry [candidate] (7.887 ms) : 0, 7887
Flare Poller [baseline] (3.521 ms) : 0, 3521
Flare Poller [candidate] (4.34 ms) : 0, 4340
ProfilingAgent [baseline] (94.449 ms) : 0, 94449
ProfilingAgent [candidate] (95.016 ms) : 0, 95016
Profiling [baseline] (95.022 ms) : 0, 95022
Profiling [candidate] (95.6 ms) : 0, 95600
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master ayan.khan/stable-session-id-headers
git_commit_date 1774018274 1774030759
git_commit_sha 828c9cc 1f53945
release_version 1.61.0-SNAPSHOT~828c9cc58f 1.61.0-SNAPSHOT~1f53945a22
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774033665 1774033665
ci_job_id 1526991597 1526991597
ci_pipeline_id 103794011 103794011
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-2vm3f926 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-2vm3f926 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:iast:high_load worse
[+121.488µs; +192.240µs] or [+4.946%; +7.827%]
unsure
[+123.351µs; +482.003µs] or [+1.702%; +6.649%]
unstable
[-197.492op/s; +64.742op/s] or [-13.716%; +4.496%]
2.613ms 7.552ms 1373.531op/s 2.456ms 7.249ms 1439.906op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.331 ms) : 19133, 19529
.   : milestone, 19331,
appsec (18.5 ms) : 18317, 18683
.   : milestone, 18500,
code_origins (18.115 ms) : 17932, 18299
.   : milestone, 18115,
iast (17.934 ms) : 17758, 18111
.   : milestone, 17934,
profiling (18.723 ms) : 18537, 18910
.   : milestone, 18723,
tracing (17.672 ms) : 17499, 17846
.   : milestone, 17672,
section candidate
no_agent (19.407 ms) : 19210, 19605
.   : milestone, 19407,
appsec (18.732 ms) : 18541, 18923
.   : milestone, 18732,
code_origins (17.891 ms) : 17712, 18070
.   : milestone, 17891,
iast (17.884 ms) : 17711, 18058
.   : milestone, 17884,
profiling (18.887 ms) : 18699, 19076
.   : milestone, 18887,
tracing (17.573 ms) : 17399, 17748
.   : milestone, 17573,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.331 ms [19.133 ms, 19.529 ms] -
appsec 18.5 ms [18.317 ms, 18.683 ms] -831.0 µs (-4.3%)
code_origins 18.115 ms [17.932 ms, 18.299 ms] -1.216 ms (-6.3%)
iast 17.934 ms [17.758 ms, 18.111 ms] -1.397 ms (-7.2%)
profiling 18.723 ms [18.537 ms, 18.91 ms] -607.838 µs (-3.1%)
tracing 17.672 ms [17.499 ms, 17.846 ms] -1.659 ms (-8.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.407 ms [19.21 ms, 19.605 ms] -
appsec 18.732 ms [18.541 ms, 18.923 ms] -675.09 µs (-3.5%)
code_origins 17.891 ms [17.712 ms, 18.07 ms] -1.516 ms (-7.8%)
iast 17.884 ms [17.711 ms, 18.058 ms] -1.523 ms (-7.8%)
profiling 18.887 ms [18.699 ms, 19.076 ms] -519.591 µs (-2.7%)
tracing 17.573 ms [17.399 ms, 17.748 ms] -1.834 ms (-9.4%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.184 ms) : 1173, 1196
.   : milestone, 1184,
iast (3.176 ms) : 3132, 3219
.   : milestone, 3176,
iast_FULL (5.977 ms) : 5915, 6038
.   : milestone, 5977,
iast_GLOBAL (3.482 ms) : 3424, 3540
.   : milestone, 3482,
profiling (2.172 ms) : 2148, 2196
.   : milestone, 2172,
tracing (1.862 ms) : 1844, 1880
.   : milestone, 1862,
section candidate
no_agent (1.176 ms) : 1164, 1187
.   : milestone, 1176,
iast (3.334 ms) : 3288, 3379
.   : milestone, 3334,
iast_FULL (5.997 ms) : 5937, 6058
.   : milestone, 5997,
iast_GLOBAL (3.569 ms) : 3507, 3632
.   : milestone, 3569,
profiling (2.107 ms) : 2089, 2125
.   : milestone, 2107,
tracing (1.847 ms) : 1830, 1865
.   : milestone, 1847,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.184 ms [1.173 ms, 1.196 ms] -
iast 3.176 ms [3.132 ms, 3.219 ms] 1.992 ms (168.2%)
iast_FULL 5.977 ms [5.915 ms, 6.038 ms] 4.792 ms (404.7%)
iast_GLOBAL 3.482 ms [3.424 ms, 3.54 ms] 2.298 ms (194.1%)
profiling 2.172 ms [2.148 ms, 2.196 ms] 987.834 µs (83.4%)
tracing 1.862 ms [1.844 ms, 1.88 ms] 678.207 µs (57.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.176 ms [1.164 ms, 1.187 ms] -
iast 3.334 ms [3.288 ms, 3.379 ms] 2.158 ms (183.5%)
iast_FULL 5.997 ms [5.937 ms, 6.058 ms] 4.821 ms (410.0%)
iast_GLOBAL 3.569 ms [3.507 ms, 3.632 ms] 2.393 ms (203.5%)
profiling 2.107 ms [2.089 ms, 2.125 ms] 931.311 µs (79.2%)
tracing 1.847 ms [1.83 ms, 1.865 ms] 671.425 µs (57.1%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master ayan.khan/stable-session-id-headers
git_commit_date 1774018274 1774030759
git_commit_sha 828c9cc 1f53945
release_version 1.61.0-SNAPSHOT~828c9cc58f 1.61.0-SNAPSHOT~1f53945a22
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1774033410 1774033410
ci_job_id 1526991598 1526991598
ci_pipeline_id 103794011 103794011
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-337wkosw 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-337wkosw 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.558 s) : 15558000, 15558000
.   : milestone, 15558000,
appsec (14.602 s) : 14602000, 14602000
.   : milestone, 14602000,
iast (18.385 s) : 18385000, 18385000
.   : milestone, 18385000,
iast_GLOBAL (18.161 s) : 18161000, 18161000
.   : milestone, 18161000,
profiling (15.52 s) : 15520000, 15520000
.   : milestone, 15520000,
tracing (14.915 s) : 14915000, 14915000
.   : milestone, 14915000,
section candidate
no_agent (15.524 s) : 15524000, 15524000
.   : milestone, 15524000,
appsec (14.729 s) : 14729000, 14729000
.   : milestone, 14729000,
iast (18.12 s) : 18120000, 18120000
.   : milestone, 18120000,
iast_GLOBAL (17.875 s) : 17875000, 17875000
.   : milestone, 17875000,
profiling (14.874 s) : 14874000, 14874000
.   : milestone, 14874000,
tracing (14.94 s) : 14940000, 14940000
.   : milestone, 14940000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.558 s [15.558 s, 15.558 s] -
appsec 14.602 s [14.602 s, 14.602 s] -956.0 ms (-6.1%)
iast 18.385 s [18.385 s, 18.385 s] 2.827 s (18.2%)
iast_GLOBAL 18.161 s [18.161 s, 18.161 s] 2.603 s (16.7%)
profiling 15.52 s [15.52 s, 15.52 s] -38.0 ms (-0.2%)
tracing 14.915 s [14.915 s, 14.915 s] -643.0 ms (-4.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.524 s [15.524 s, 15.524 s] -
appsec 14.729 s [14.729 s, 14.729 s] -795.0 ms (-5.1%)
iast 18.12 s [18.12 s, 18.12 s] 2.596 s (16.7%)
iast_GLOBAL 17.875 s [17.875 s, 17.875 s] 2.351 s (15.1%)
profiling 14.874 s [14.874 s, 14.874 s] -650.0 ms (-4.2%)
tracing 14.94 s [14.94 s, 14.94 s] -584.0 ms (-3.8%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~1f53945a22, baseline=1.61.0-SNAPSHOT~828c9cc58f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.474 ms) : 1462, 1485
.   : milestone, 1474,
appsec (3.723 ms) : 3504, 3941
.   : milestone, 3723,
iast (2.255 ms) : 2186, 2324
.   : milestone, 2255,
iast_GLOBAL (2.3 ms) : 2231, 2370
.   : milestone, 2300,
profiling (2.096 ms) : 2041, 2151
.   : milestone, 2096,
tracing (2.08 ms) : 2027, 2134
.   : milestone, 2080,
section candidate
no_agent (1.475 ms) : 1464, 1487
.   : milestone, 1475,
appsec (3.8 ms) : 3578, 4022
.   : milestone, 3800,
iast (2.266 ms) : 2197, 2335
.   : milestone, 2266,
iast_GLOBAL (2.303 ms) : 2234, 2373
.   : milestone, 2303,
profiling (2.08 ms) : 2025, 2134
.   : milestone, 2080,
tracing (2.067 ms) : 2014, 2120
.   : milestone, 2067,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.462 ms, 1.485 ms] -
appsec 3.723 ms [3.504 ms, 3.941 ms] 2.249 ms (152.6%)
iast 2.255 ms [2.186 ms, 2.324 ms] 781.566 µs (53.0%)
iast_GLOBAL 2.3 ms [2.231 ms, 2.37 ms] 826.452 µs (56.1%)
profiling 2.096 ms [2.041 ms, 2.151 ms] 622.195 µs (42.2%)
tracing 2.08 ms [2.027 ms, 2.134 ms] 606.576 µs (41.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.464 ms, 1.487 ms] -
appsec 3.8 ms [3.578 ms, 4.022 ms] 2.325 ms (157.6%)
iast 2.266 ms [2.197 ms, 2.335 ms] 790.974 µs (53.6%)
iast_GLOBAL 2.303 ms [2.234 ms, 2.373 ms] 827.994 µs (56.1%)
profiling 2.08 ms [2.025 ms, 2.134 ms] 604.462 µs (41.0%)
tracing 2.067 ms [2.014 ms, 2.12 ms] 591.781 µs (40.1%)

…Enabled, fix test

- Add rootSessionId to Config.toString() for tracer log visibility
- Gate getRootSessionId() behind runtimeIdEnabled like getRuntimeId()
- Force environment map initialization in test to fix test_inst failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@khanayan123 khanayan123 requested a review from mhlidd March 20, 2026 18:18
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@khanayan123 khanayan123 enabled auto-merge March 20, 2026 18:36
@khanayan123 khanayan123 added this pull request to the merge queue Mar 20, 2026
@dd-octo-sts
Copy link
Contributor

dd-octo-sts bot commented Mar 20, 2026

/merge

@gh-worker-devflow-routing-ef8351
Copy link

gh-worker-devflow-routing-ef8351 bot commented Mar 20, 2026

View all feedbacks in Devflow UI.

2026-03-20 19:24:19 UTC ℹ️ Start processing command /merge


2026-03-20 19:24:23 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in master is approximately 3h (p90).


2026-03-20 20:26:04 UTC ℹ️ MergeQueue: This merge request was merged

@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 20, 2026
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit 468d566 into master Mar 20, 2026
566 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the ayan.khan/stable-session-id-headers branch March 20, 2026 20:26
@github-actions github-actions bot added this to the 1.61.0 milestone Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: telemetry Telemetry tag: ai generated Largely based on code generated by an AI or LLM type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants