Skip to content

Releases: elastic/apm-agent-java

Release 0.7.1

24 Oct 09:26
Compare
Choose a tag to compare
Release 0.7.1 Pre-release
Pre-release

Bug Fixes

Avoid recycling transactions twice (#178)

Release 0.7.0

12 Sep 14:17
Compare
Choose a tag to compare
Release 0.7.0 Pre-release
Pre-release

Breaking changes

  • Removed ElasticApm.startSpan. Spans can now only be created from their transactions via Transaction#createSpan.
  • ElasticApm.startTransaction and Transaction#createSpan don't activate the transaction and spans
    and are thus not available via ElasticApm.activeTransaction and ElasticApm.activeSpan.

Features

  • Public API
    • Add Span#captureException and Transaction#captureException to public API.
      ElasticApm.captureException is deprecated now. Use ElasticApm.currentSpan().captureException(exception) instead.
    • Added Transaction.getId and Span.getId methods
  • Added support for async servlet requests
  • Added support for Payara/Glassfish
  • Incubating support for Apache HttpClient
  • Support for Spring RestTemplate
  • Added configuration options use_path_as_transaction_name and url_groups,
    which allow to use the URL path as the transaction name.
    As that could contain path parameters, like /user/$userId however,
    You can set the url_groups option to define a wildcard pattern, like /user/*,
    to group those paths together.
    This is especially helpful when using an unsupported Servlet API-based framework.
  • Support duration suffixes (ms, s and m) for duration configuration options.
    Not using the duration suffix logs out a deprecation warning and will not be supported in future versions.
  • Add ability to add multiple APM server URLs, which enables client-side load balancing.
    The configuration option server_url has been renamed to server_urls to reflect this change.
    However, server_url still works for backwards compatibility.
  • The configuration option service_name is now optional.
    It defaults to the main class name,
    the name of the executed jar file (removing the version number),
    or the application server name (for example tomcat-application).
    In a lot of cases,
    you will still want to set the service_name explicitly.
    But it helps getting started and seeing data easier,
    as there are no required configuration options anymore.
    In the future we will most likely determine more useful application names for Servlet API-based applications.

Release 0.6.2

13 Aug 17:25
Compare
Choose a tag to compare
Release 0.6.2 Pre-release
Pre-release

Bug Fixes

  • Make header recording null safe (see #159)

Release 0.6.1

07 Aug 09:54
c04b0d1
Compare
Choose a tag to compare
Release 0.6.1 Pre-release
Pre-release

Bug Fixes

  • Fixes a bug which lets reporting to APM server fail if there is more than one request per second
  • Closes InputStreams when an exception occurs when communicating with the APM server

Release 0.6.0

05 Jul 09:23
140978e
Compare
Choose a tag to compare
Release 0.6.0 Pre-release
Pre-release

As of 0.6.0, the agent is considered to be in beta state. That means it's feature complete for the scope targeted for GA and that it's ready for serious testing. However, the agent is not yet production ready.

Features

  • Added support for Tomcat, Jetty, Undertow, WildFly, WebSphere and Spring Boot. We have set up integration tests to verify that the agent works on these servers. See the documentation for more details about supported technologies.
  • Lots of performance improvements
  • Add logging configuration options for log level and log file
  • Add ability to disable certain instrumentations (#95)
  • Check and log status of the APM server connection (#113)

Bug Fixes

  • Fixes Java 7 compatibility
  • Fix setting username (#106)
  • Make sure the error context is always set (#114)

Release 0.5.1

29 May 08:01
Compare
Choose a tag to compare
Release 0.5.1 Pre-release
Pre-release

This release is a complete overhaul of the agent and makes it much easier to get started with. The agent now contains support for auto-instrumentation via -javaagent. You don't have to do any code changes in order to add the agent to your application. See the getting started guide how to add the -javaagent flag to your application.

New Features

  • Improved performance. The performance has successfully been improved. The overhead is around 1.5 µs and 75 byte per request.
  • The agent now supports the OpenTracing API via a bridge. See the OpenTracing documentation for more information.
  • The agent filters sensitive information from HTTP headers and from data. See the configuration option sanitize_field_names for more information.

Migration from 0.1.2

Remove the dependency on co.elastic.apm:apm-agent-java and remove all manually registered interceptors: Remove the ApmFilter from web.xml, remove the Spring MVC ApmHandlerInterceptor and remove p6spy: in your JDBC URL.

If you have previously accessed the public API to customize the transactions and spans created by elastic APM or if you have manually created transactions and spans using the public API, you have to declare an explicit dependency to co.elastic.apm:apm-agent-api now. You also don't initialize ElasticApm with ElasticApm.get(), but you just call it's static methods instead. For example ElasticApm.startTransaction(). Be aware that the API is subject to change until version 1.0.0 is reached. See the docs of the public API for more information.

Release 0.1.2

23 Apr 08:55
Compare
Choose a tag to compare
Release 0.1.2 Pre-release
Pre-release

This alpha version of the agent supports monitoring Spring Web MVC and Servlet API-based applications, including tracing of JDBC queries.

The alpha version does not, yet, support auto-instrumentation via -javaagent, so you have to integrate the Java agent manually. See the readme for more details.

Release 0.1.1

09 Apr 17:23
Compare
Choose a tag to compare
Release 0.1.1 Pre-release
Pre-release

There are missing files on maven central for this release. Please use 0.1.2 instead