[DRAFT] APM AI Toolkit: Add Feign HTTP client instrumentation (v8.0+) 2nd run with add-apm-integrations.md#10855
Draft
jordan-wong wants to merge 1 commit intomasterfrom
Draft
Conversation
Generated complete instrumentation for Feign HTTP client library using apm-instrumentation-toolkit with add-apm-integrations skill. Implementation: - FeignInstrumentation.java: Main instrumentation targeting feign.Client.execute() - FeignClientDecorator.java: HTTP client decorator with span lifecycle management - RequestInjectAdapter.java: Header injection adapter for distributed tracing - FeignTest.groovy: Comprehensive test suite extending HttpClientTest Key features: - Instruments Feign 8.0+ (version range [8.0,9.0)) - Uses classLoaderMatcher to distinguish from pre-8.0 versions - Direct header injection into mutable headers map - Proper span lifecycle: startSpan → prepareSpan → injectHeaders → activateSpan - All verification passed: compilation, spotless, tests, muzzle, latestDepTest Test results: 100% pass rate Generated by: apm-instrumentation-toolkit Skill: .claude/skills/add-apm-integrations Duration: 665.7s (112 turns) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
BenchmarksStartupParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 62 metrics, 8 unstable metrics.
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1055006
Total [baseline] (8.846 s) : 0, 8845570
Agent [candidate] (1.056 s) : 0, 1055605
Total [candidate] (8.817 s) : 0, 8817161
section iast
Agent [baseline] (1.234 s) : 0, 1234178
Total [baseline] (9.558 s) : 0, 9557857
Agent [candidate] (1.231 s) : 0, 1231332
Total [candidate] (9.554 s) : 0, 9553539
gantt
title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.212 ms) : 0, 1212
crashtracking [candidate] (1.218 ms) : 0, 1218
BytebuddyAgent [baseline] (627.195 ms) : 0, 627195
BytebuddyAgent [candidate] (626.811 ms) : 0, 626811
AgentMeter [baseline] (29.005 ms) : 0, 29005
AgentMeter [candidate] (29.101 ms) : 0, 29101
GlobalTracer [baseline] (256.469 ms) : 0, 256469
GlobalTracer [candidate] (256.002 ms) : 0, 256002
AppSec [baseline] (31.622 ms) : 0, 31622
AppSec [candidate] (31.515 ms) : 0, 31515
Debugger [baseline] (58.421 ms) : 0, 58421
Debugger [candidate] (58.543 ms) : 0, 58543
Remote Config [baseline] (621.473 µs) : 0, 621
Remote Config [candidate] (579.98 µs) : 0, 580
Telemetry [baseline] (8.641 ms) : 0, 8641
Telemetry [candidate] (8.682 ms) : 0, 8682
Flare Poller [baseline] (5.858 ms) : 0, 5858
Flare Poller [candidate] (7.011 ms) : 0, 7011
section iast
crashtracking [baseline] (1.211 ms) : 0, 1211
crashtracking [candidate] (1.224 ms) : 0, 1224
BytebuddyAgent [baseline] (802.164 ms) : 0, 802164
BytebuddyAgent [candidate] (800.759 ms) : 0, 800759
AgentMeter [baseline] (11.591 ms) : 0, 11591
AgentMeter [candidate] (11.513 ms) : 0, 11513
GlobalTracer [baseline] (248.505 ms) : 0, 248505
GlobalTracer [candidate] (247.974 ms) : 0, 247974
AppSec [baseline] (26.62 ms) : 0, 26620
AppSec [candidate] (27.474 ms) : 0, 27474
Debugger [baseline] (62.461 ms) : 0, 62461
Debugger [candidate] (60.979 ms) : 0, 60979
Remote Config [baseline] (503.765 µs) : 0, 504
Remote Config [candidate] (510.09 µs) : 0, 510
Telemetry [baseline] (14.729 ms) : 0, 14729
Telemetry [candidate] (14.623 ms) : 0, 14623
Flare Poller [baseline] (4.839 ms) : 0, 4839
Flare Poller [candidate] (4.811 ms) : 0, 4811
IAST [baseline] (25.391 ms) : 0, 25391
IAST [candidate] (25.361 ms) : 0, 25361
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.059 s) : 0, 1058771
Total [baseline] (10.988 s) : 0, 10988197
Agent [candidate] (1.06 s) : 0, 1059708
Total [candidate] (11.027 s) : 0, 11027248
section appsec
Agent [baseline] (1.242 s) : 0, 1241613
Total [baseline] (11.181 s) : 0, 11180753
Agent [candidate] (1.242 s) : 0, 1241762
Total [candidate] (11.058 s) : 0, 11057916
section iast
Agent [baseline] (1.23 s) : 0, 1230169
Total [baseline] (11.272 s) : 0, 11271818
Agent [candidate] (1.234 s) : 0, 1233909
Total [candidate] (11.319 s) : 0, 11318602
section profiling
Agent [baseline] (1.196 s) : 0, 1196206
Total [baseline] (11.042 s) : 0, 11041916
Agent [candidate] (1.186 s) : 0, 1186467
Total [candidate] (10.971 s) : 0, 10971111
gantt
title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.193 ms) : 0, 1193
crashtracking [candidate] (1.208 ms) : 0, 1208
BytebuddyAgent [baseline] (628.197 ms) : 0, 628197
BytebuddyAgent [candidate] (628.614 ms) : 0, 628614
AgentMeter [baseline] (29.059 ms) : 0, 29059
AgentMeter [candidate] (29.126 ms) : 0, 29126
GlobalTracer [baseline] (256.47 ms) : 0, 256470
GlobalTracer [candidate] (257.203 ms) : 0, 257203
AppSec [baseline] (31.507 ms) : 0, 31507
AppSec [candidate] (31.501 ms) : 0, 31501
Debugger [baseline] (59.131 ms) : 0, 59131
Debugger [candidate] (59.521 ms) : 0, 59521
Remote Config [baseline] (608.127 µs) : 0, 608
Remote Config [candidate] (586.63 µs) : 0, 587
Telemetry [baseline] (8.673 ms) : 0, 8673
Telemetry [candidate] (8.713 ms) : 0, 8713
Flare Poller [baseline] (7.98 ms) : 0, 7980
Flare Poller [candidate] (7.295 ms) : 0, 7295
section appsec
crashtracking [baseline] (1.195 ms) : 0, 1195
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (655.429 ms) : 0, 655429
BytebuddyAgent [candidate] (656.303 ms) : 0, 656303
AgentMeter [baseline] (12.006 ms) : 0, 12006
AgentMeter [candidate] (11.909 ms) : 0, 11909
GlobalTracer [baseline] (256.993 ms) : 0, 256993
GlobalTracer [candidate] (256.813 ms) : 0, 256813
AppSec [baseline] (176.979 ms) : 0, 176979
AppSec [candidate] (177.023 ms) : 0, 177023
Debugger [baseline] (65.46 ms) : 0, 65460
Debugger [candidate] (65.357 ms) : 0, 65357
Remote Config [baseline] (823.975 µs) : 0, 824
Remote Config [candidate] (573.675 µs) : 0, 574
Telemetry [baseline] (9.043 ms) : 0, 9043
Telemetry [candidate] (8.98 ms) : 0, 8980
Flare Poller [baseline] (3.621 ms) : 0, 3621
Flare Poller [candidate] (3.571 ms) : 0, 3571
IAST [baseline] (23.906 ms) : 0, 23906
IAST [candidate] (23.913 ms) : 0, 23913
section iast
crashtracking [baseline] (1.21 ms) : 0, 1210
crashtracking [candidate] (1.199 ms) : 0, 1199
BytebuddyAgent [baseline] (797.813 ms) : 0, 797813
BytebuddyAgent [candidate] (801.397 ms) : 0, 801397
AgentMeter [baseline] (11.341 ms) : 0, 11341
AgentMeter [candidate] (11.536 ms) : 0, 11536
GlobalTracer [baseline] (247.942 ms) : 0, 247942
GlobalTracer [candidate] (247.857 ms) : 0, 247857
AppSec [baseline] (26.42 ms) : 0, 26420
AppSec [candidate] (26.554 ms) : 0, 26554
Debugger [baseline] (69.88 ms) : 0, 69880
Debugger [candidate] (69.674 ms) : 0, 69674
Remote Config [baseline] (528.465 µs) : 0, 528
Remote Config [candidate] (527.452 µs) : 0, 527
Telemetry [baseline] (10.28 ms) : 0, 10280
Telemetry [candidate] (10.261 ms) : 0, 10261
Flare Poller [baseline] (3.547 ms) : 0, 3547
Flare Poller [candidate] (3.499 ms) : 0, 3499
IAST [baseline] (25.163 ms) : 0, 25163
IAST [candidate] (25.335 ms) : 0, 25335
section profiling
crashtracking [baseline] (1.191 ms) : 0, 1191
crashtracking [candidate] (1.179 ms) : 0, 1179
BytebuddyAgent [baseline] (691.963 ms) : 0, 691963
BytebuddyAgent [candidate] (685.293 ms) : 0, 685293
AgentMeter [baseline] (8.721 ms) : 0, 8721
AgentMeter [candidate] (8.659 ms) : 0, 8659
GlobalTracer [baseline] (217.686 ms) : 0, 217686
GlobalTracer [candidate] (215.894 ms) : 0, 215894
AppSec [baseline] (32.41 ms) : 0, 32410
AppSec [candidate] (32.282 ms) : 0, 32282
Debugger [baseline] (64.539 ms) : 0, 64539
Debugger [candidate] (64.551 ms) : 0, 64551
Remote Config [baseline] (585.19 µs) : 0, 585
Remote Config [candidate] (574.851 µs) : 0, 575
Telemetry [baseline] (9.887 ms) : 0, 9887
Telemetry [candidate] (9.015 ms) : 0, 9015
Flare Poller [baseline] (3.568 ms) : 0, 3568
Flare Poller [candidate] (3.564 ms) : 0, 3564
ProfilingAgent [baseline] (94.288 ms) : 0, 94288
ProfilingAgent [candidate] (94.507 ms) : 0, 94507
Profiling [baseline] (94.853 ms) : 0, 94853
Profiling [candidate] (95.07 ms) : 0, 95070
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 2 performance regressions! Performance is the same for 17 metrics, 17 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section baseline
no_agent (18.482 ms) : 18293, 18670
. : milestone, 18482,
appsec (19.346 ms) : 19150, 19542
. : milestone, 19346,
code_origins (18.125 ms) : 17943, 18307
. : milestone, 18125,
iast (17.932 ms) : 17753, 18111
. : milestone, 17932,
profiling (18.588 ms) : 18401, 18775
. : milestone, 18588,
tracing (17.772 ms) : 17594, 17950
. : milestone, 17772,
section candidate
no_agent (18.07 ms) : 17886, 18253
. : milestone, 18070,
appsec (18.718 ms) : 18528, 18907
. : milestone, 18718,
code_origins (17.69 ms) : 17511, 17868
. : milestone, 17690,
iast (20.114 ms) : 19915, 20314
. : milestone, 20114,
profiling (18.536 ms) : 18353, 18720
. : milestone, 18536,
tracing (17.91 ms) : 17730, 18090
. : milestone, 17910,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section baseline
no_agent (1.193 ms) : 1181, 1204
. : milestone, 1193,
iast (3.178 ms) : 3133, 3223
. : milestone, 3178,
iast_FULL (5.861 ms) : 5802, 5919
. : milestone, 5861,
iast_GLOBAL (3.546 ms) : 3487, 3605
. : milestone, 3546,
profiling (2.161 ms) : 2141, 2180
. : milestone, 2161,
tracing (1.8 ms) : 1785, 1815
. : milestone, 1800,
section candidate
no_agent (1.184 ms) : 1172, 1196
. : milestone, 1184,
iast (3.249 ms) : 3206, 3292
. : milestone, 3249,
iast_FULL (5.913 ms) : 5853, 5973
. : milestone, 5913,
iast_GLOBAL (3.463 ms) : 3408, 3519
. : milestone, 3463,
profiling (2.176 ms) : 2156, 2196
. : milestone, 2176,
tracing (1.835 ms) : 1819, 1851
. : milestone, 1835,
DacapoParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section baseline
no_agent (14.834 s) : 14834000, 14834000
. : milestone, 14834000,
appsec (15.26 s) : 15260000, 15260000
. : milestone, 15260000,
iast (17.898 s) : 17898000, 17898000
. : milestone, 17898000,
iast_GLOBAL (17.773 s) : 17773000, 17773000
. : milestone, 17773000,
profiling (15.376 s) : 15376000, 15376000
. : milestone, 15376000,
tracing (15.128 s) : 15128000, 15128000
. : milestone, 15128000,
section candidate
no_agent (14.994 s) : 14994000, 14994000
. : milestone, 14994000,
appsec (14.822 s) : 14822000, 14822000
. : milestone, 14822000,
iast (17.845 s) : 17845000, 17845000
. : milestone, 17845000,
iast_GLOBAL (17.678 s) : 17678000, 17678000
. : milestone, 17678000,
profiling (14.99 s) : 14990000, 14990000
. : milestone, 14990000,
tracing (15.063 s) : 15063000, 15063000
. : milestone, 15063000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~a389ea71ba, baseline=1.61.0-SNAPSHOT~c8e410d922
dateFormat X
axisFormat %s
section baseline
no_agent (1.467 ms) : 1456, 1479
. : milestone, 1467,
appsec (3.79 ms) : 3570, 4011
. : milestone, 3790,
iast (2.243 ms) : 2173, 2312
. : milestone, 2243,
iast_GLOBAL (2.28 ms) : 2210, 2349
. : milestone, 2280,
profiling (2.105 ms) : 2048, 2161
. : milestone, 2105,
tracing (2.067 ms) : 2013, 2121
. : milestone, 2067,
section candidate
no_agent (1.466 ms) : 1455, 1478
. : milestone, 1466,
appsec (2.512 ms) : 2458, 2567
. : milestone, 2512,
iast (2.243 ms) : 2174, 2312
. : milestone, 2243,
iast_GLOBAL (2.286 ms) : 2217, 2356
. : milestone, 2286,
profiling (2.089 ms) : 2032, 2145
. : milestone, 2089,
tracing (2.049 ms) : 1996, 2103
. : milestone, 2049,
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
2nd Iteration testing out new skill
add-apm-integrationsGenerated complete instrumentation for Feign HTTP client library using apm-instrumentation-toolkit with add-apm-integrations skill.
Implementation:
Key features:
Test results: 100% pass rate
Generated by: apm-instrumentation-toolkit
Skill: .claude/skills/add-apm-integrations
Duration: 665.7s (112 turns)
🤖 Generated with Claude Code
What Does This Do
Motivation
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]
Note: Once your PR is ready to merge, add it to the merge queue by commenting
/merge./merge -ccancels the queue request./merge -f --reason "reason"skips all merge queue checks; please use this judiciously, as some checks do not run at the PR-level. For more information, see this doc.