apm-agent-java icon indicating copy to clipboard operation
apm-agent-java copied to clipboard

Add elastic-apm-agent-spring-boot-starter for ease of use with Spring Boot

Open candrews opened this issue 1 year ago • 6 comments

What does this PR do?

The Spring Boot starter allows for use of Elastic APM in Spring Boot projects without writing any code.

To use it, add a dependency on elastic-apm-agent-spring-boot-starter to the Spring Boot project.

Elastic APM configuration can be provided via Spring configuration under elastic.apm.* For example, elastic.apm.server_url=http://127.0.0.1:8200 could be specified in application.properties. Relaxed binding, expressions, profiles, and all other Spring configuration features are available.

The combination of no-code use (by just adding the dependency) and powerful configuration improves the usability of Elastic APM with Spring Boot projects.

Checklist

  • [ ] This is an enhancement of existing features, or a new feature in existing plugins
    • [ ] I have updated CHANGELOG.asciidoc
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Added an API method or config option? Document in which version this will be introduced
    • [ ] I have made corresponding changes to the documentation
  • [ ] This is a bugfix
    • [ ] I have updated CHANGELOG.asciidoc
    • [ ] I have added tests that would fail without this fix
  • [ ] 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 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.
  • [X] This is something else

candrews avatar Oct 19 '23 21:10 candrews

👋 @candrews Thanks a lot for your contribution!

It may take some time before we review a PR, so even if you don’t see activity for some time, it does not mean that we have forgotten about it.

Every once in a while we go through a process of prioritization, after which we are focussing on the tasks that were planned for the upcoming milestone. The prioritization status is typically reflected through the PR labels. It could be pending triage, a candidate for a future milestone, or have a target milestone set to it.

github-actions[bot] avatar Oct 19 '23 21:10 github-actions[bot]

The "main / Unit Tests" failure appears to be unrelated to the changes made in this PR (please correct me if I'm wrong!)

candrews avatar Oct 19 '23 23:10 candrews

Hi @candrews, thanks for implementing this, looks definitely useful and we'd like to merge it!

However, before doing so we'd like to have an integration test actually starting the APM agent via your spring-boot-starter. I think it would be easiest to create a new sub-module in the integration-tests module:

  • Have a spring-boot app in there with the new spring-boot-starter as a dependency
  • Start a test-container with the packaged test-application
  • Have it report to a dummy APM-server and verify that data is reported

You can have a look at the AwsLambdaIT, as it works quiet similar.

It would be great if you have the time to implement this, because we currently don't have the capacity to do this ourselves. If you don't have the time that's no problem, we'll just leave this PR open and come back to it later when we have the capacity to implement it ourselves.

JonasKunz avatar Oct 30 '23 10:10 JonasKunz

Hi! We just realized that we haven't looked into this issue in a while. We're sorry! We're labeling this issue as stalled to make it hit our filters and make sure we get back to it in as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

botelastic[bot] avatar Dec 29 '23 10:12 botelastic[bot]

Hi! This issue has been stale for a while and we're going to close it as part of our cleanup procedure. We appreciate your contribution and would like to apologize if we have not been able to review it, due to the current heavy load of the team. Feel free to re-open this issue if you think it should stay open. Thank you for your contribution!

botelastic[bot] avatar Jan 12 '24 10:01 botelastic[bot]

run docs-build

v1v avatar Feb 09 '24 08:02 v1v

Hi! We just realized that we haven't looked into this issue in a while. We're sorry! We're labeling this issue as stalled to make it hit our filters and make sure we get back to it in as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

botelastic[bot] avatar Apr 09 '24 08:04 botelastic[bot]

Hi! This issue has been stale for a while and we're going to close it as part of our cleanup procedure. We appreciate your contribution and would like to apologize if we have not been able to review it, due to the current heavy load of the team. Feel free to re-open this issue if you think it should stay open. Thank you for your contribution!

botelastic[bot] avatar Apr 23 '24 09:04 botelastic[bot]