Skip to content

feat(feign-10.8): toolkit-generated feign HTTP client instrumentation [DO NOT MERGE]#11709

Draft
jordan-wong wants to merge 1 commit into
masterfrom
eval/feign-10.8-toolkit-attempt
Draft

feat(feign-10.8): toolkit-generated feign HTTP client instrumentation [DO NOT MERGE]#11709
jordan-wong wants to merge 1 commit into
masterfrom
eval/feign-10.8-toolkit-attempt

Conversation

@jordan-wong

Copy link
Copy Markdown
Contributor

Summary

Toolkit-generated greenfield instrumentation for Feign HTTP client v10.8+. Supersedes #10855 (Feign 8.0, stale) and closed #10980 (Feign 10.8, never independently verified under current methodology).

Generated module

dd-java-agent/instrumentation/feign/feign-10.8-generated/

  • FeignClientInstrumentation (sync Client.execute)
  • FeignAsyncClientInstrumentation (async AsyncClient.execute)
  • FeignClientDecorator extends HttpClientDecorator
  • RequestHeaderInjectAdapter (header injection for distributed tracing)
  • SpanFinishingCallback (async future completion handler)
  • Java tests with JUnit 5 (no Groovy — per R20)

Run details

Toolkit branch eval/java @ 757979b9
Workflow new_integration (default)
Maven coordinates io.github.openfeign:feign-core:10.8
Cost $26.95
Duration 78 min
Reviewer verdict approved=True, todos_fixed=2, todos_remaining=0

Research integrity disclosure

metadata/supported-configurations.json (4 entries: DD_TRACE_FEIGN_10_8_ENABLED, DD_TRACE_FEIGN_ANALYTICS_ENABLED, DD_TRACE_FEIGN_ANALYTICS_SAMPLE_RATE, DD_TRACE_FEIGN_ENABLED) was hand-added by the human operator AFTER the toolkit run. The toolkit's R29 rule that would produce these automatically was added later in the same session (commit 757979b9 on eval/java).

settings.gradle.kts line addition is a faithful replay of what the toolkit produced in the eval worktree.

Full caveats: see docs/eval-research/generated/feign-20260623/caveats.md in the apm-instrumentation-toolkit repo (eval/java branch).

Next steps

  1. CI must pass on the new module (especially :check, :muzzle, :instrumentationLatestDepTest)
  2. Domain expert review on RoutesInstrumentation — typo (please scrutinize sync vs async wrapping per R2, single-module rule per R3)
  3. If green + approved: close [DRAFT] APM AI Toolkit: Add Feign HTTP client instrumentation (v8.0+) 2nd run with add-apm-integrations.md #10855 and eval: feign-core 10.8 instrumentation (skill v2, sync+async, Run #6) #10980 as superseded

🤖 Generated with Claude Code

Toolkit-generated greenfield instrumentation for Feign HTTP client v10.8+.

Run details:
- Branch (toolkit): eval/java @ 757979b9
- Branch (worktree): eval/feign-blind-attempt1-20260623 in /Users/jordan.wong/dd-trace-java-eval-feign
- Workflow: new_integration, completed 2026-06-23
- Cost: $26.95, 78min, reviewer approved=True
- Maven coordinates: io.github.openfeign:feign-core:10.8

Generated module: dd-java-agent/instrumentation/feign/feign-10.8-generated/
- FeignClientInstrumentation (sync Client.execute)
- FeignAsyncClientInstrumentation (async AsyncClient.execute)
- FeignClientDecorator (HttpClientDecorator)
- RequestHeaderInjectAdapter (header injection for distributed tracing)
- SpanFinishingCallback (async future completion)
- Java tests (FeignClientTest, FeignAsyncClientTest) per R20

Supersedes #10855 (Feign 8.0, stale) and closed #10980 (Feign 10.8, never independently verified).

## Research integrity note

`metadata/supported-configurations.json` (4 entries: DD_TRACE_FEIGN_10_8_ENABLED,
DD_TRACE_FEIGN_ANALYTICS_ENABLED, DD_TRACE_FEIGN_ANALYTICS_SAMPLE_RATE,
DD_TRACE_FEIGN_ENABLED) was **hand-added** by the human operator AFTER the toolkit
run; the toolkit's R29 rule was added later in the same session (see commit 757979b9
on eval/java). This is documented in
docs/eval-research/generated/feign-20260623/caveats.md.

`settings.gradle.kts` line addition is a faithful replay of what the toolkit produced
in the eval worktree.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@dd-octo-sts

dd-octo-sts Bot commented Jun 23, 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 13.88 s 13.97 s [-1.3%; +0.0%] (no difference)
startup:insecure-bank:tracing:Agent 12.90 s 13.00 s [-1.7%; +0.1%] (no difference)
startup:petclinic:appsec:Agent 16.99 s 16.74 s [+0.5%; +2.5%] (maybe worse)
startup:petclinic:iast:Agent 17.00 s 17.02 s [-0.9%; +0.6%] (no difference)
startup:petclinic:profiling:Agent 16.85 s 16.98 s [-1.9%; +0.5%] (no difference)
startup:petclinic:sca:Agent 17.02 s 16.76 s [+0.3%; +2.7%] (maybe worse)
startup:petclinic:tracing:Agent 16.08 s 16.10 s [-1.2%; +1.1%] (no difference)

Commit: 1aa95fef · 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.

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