Skip to content

add Netty epoll/NIO-select TaskBlock instrumentation - #12209

Draft
kaahos wants to merge 1 commit into
paul.fournillon/wallclock-threadsleep-taskblockfrom
paul.fournillon/wallclock-netty-taskblock
Draft

add Netty epoll/NIO-select TaskBlock instrumentation#12209
kaahos wants to merge 1 commit into
paul.fournillon/wallclock-threadsleep-taskblockfrom
paul.fournillon/wallclock-netty-taskblock

Conversation

@kaahos

@kaahos kaahos commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

Adds TaskBlock instrumentation for NIO Selector.select and Netty epoll event-loop blocking, following the same pattern established for LockSupport (#11545) and Thread.sleep (#11546). Includes:

  • nio-select and netty-epoll-4.1 instrumentation modules
  • Forked instrumentation tests and disabled/enabled coverage tests
  • End-to-end smoke tests (NioSelectTaskBlockProfilingTest, NettyEpollTaskBlockProfilingTest) asserting on resulting TaskBlock recordings
  • Native I/O TaskBlock smoke coverage (NativeIoTaskBlockProfilingTest)

This is stacked on #11546 (Thread.sleep), #11545 (LockSupport), and #11544 (foundational TaskBlock support), and should be reviewed/merged in that order.

Motivation

Selector-based I/O waits and Netty's epoll event loop are common sources of off-CPU time that for now show up only as generic sampled wall-clock frames. Emitting structured datadog.TaskBlock events for these operations, as already done for locks and sleeps, gives users accurate attribution of NIO and Netty event-loop blocking without relying solely on stack sampling.

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@kaahos
kaahos force-pushed the paul.fournillon/wallclock-netty-taskblock branch 2 times, most recently from 79364ee to 52ab4b2 Compare August 17, 2026 13:19
@kaahos
kaahos force-pushed the paul.fournillon/wallclock-netty-taskblock branch 2 times, most recently from d8d9c03 to 9832284 Compare August 18, 2026 08:41
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
Patch Coverage: 75.00%
Overall Coverage: 58.24% (+0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 657096c | Docs | View more details | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.03 s 13.95 s [-0.3%; +1.4%] (no difference)
startup:insecure-bank:tracing:Agent 12.93 s 13.02 s [-1.5%; +0.1%] (no difference)
startup:petclinic:appsec:Agent 16.89 s 16.76 s [-0.2%; +1.7%] (no difference)
startup:petclinic:iast:Agent 16.97 s 16.88 s [-0.3%; +1.3%] (no difference)
startup:petclinic:profiling:Agent 16.25 s 16.86 s [-7.9%; +0.7%] (no difference)
startup:petclinic:sca:Agent 16.82 s 16.52 s [+0.9%; +2.7%] (maybe worse)
startup:petclinic:tracing:Agent 16.10 s 15.75 s [-2.2%; +6.7%] (no difference)

Commit: 657096c6 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@kaahos
kaahos force-pushed the paul.fournillon/wallclock-netty-taskblock branch 2 times, most recently from 74d4d68 to f9b25a5 Compare August 18, 2026 16:53
@kaahos
kaahos force-pushed the paul.fournillon/wallclock-netty-taskblock branch from f9b25a5 to 657096c Compare August 18, 2026 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant