Skip to content

add Spring Webflux server support#1305

Merged
SylvainJuge merged 168 commits intoelastic:masterfrom
SylvainJuge:mb-add-spring-webflux-plugin
May 28, 2021
Merged

add Spring Webflux server support#1305
SylvainJuge merged 168 commits intoelastic:masterfrom
SylvainJuge:mb-add-spring-webflux-plugin

Conversation

@SylvainJuge
Copy link
Member

@SylvainJuge SylvainJuge commented Jul 22, 2020

What does this PR do?

This pull-request is an improvement on the #1221 community pull-request.
Given the large number of changes, it was simpler to open another PR than recycle #1221.

Fixes #60

Features

Test application:

  • available as an executable jar and also used for unit-testing instrumentation
  • provides both functional and annotated controllers endpoints
  • executable with netty or tomcat as server, which allows to cover Webflux with or without Servlets
  • provides a client to call itself (based on Webflux client), thus using any third-party HTTP client is not necessary

Instrumentation:

Implementation checklist

  • provide context-propagation, maybe through reactor-core instrumentation
  • test supported webflux/reactor versions
  • performance benchmark to ensure minimal overhead
  • in-depth allocation benchmark to estimate overhead (current implementation is expected to allocate a bit more).
  • capture upstream transaction HTTP headers (if any) for context propagation

Checklist

  • This is a new plugin
    • I have updated CHANGELOG.asciidoc
    • My code follows the style guidelines of this project
    • I have made corresponding changes to the documentation
    • I have added tests that prove my fix is effective or that my feature works
    • New and existing unit tests pass locally with my changes
    • I have updated CHANGELOG.asciidoc
    • I have updated supported-technologies.asciidoc
    • Added an API method or config option? Document in which version this will be introduced
    • Added an instrumentation plugin? Describe how you made sure that old, non-supported versions are not instrumented by accident.
marcin-bukowiecki and others added 30 commits October 8, 2019 20:11
…cin-bukowiecki/apm-agent-java into marcin-bukowiecki-mb-add-spring-webflux-plugin

# Conflicts:
#	CHANGELOG.md
#	docs/configuration.asciidoc
Add Reactive Netty instrumentation
capture exceptions
@AlexanderWert AlexanderWert modified the milestones: 7.13, 7.14 May 3, 2021
@SylvainJuge SylvainJuge merged commit 36ff1f1 into elastic:master May 28, 2021
@SylvainJuge SylvainJuge deleted the mb-add-spring-webflux-plugin branch May 28, 2021 07:32
@kihyun-leee

This comment was marked as outdated.

@eyalkoren
Copy link
Contributor

The best place to find out what is supported or not is in our documentation.
Since this PR is merged long ago, it is of course released already (included since 1.24.0 and marked as experimental, as you can see in docs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-java focus instrumentation Instrumentation: framework support, custom plugins, ... new-feature New feature

9 participants