Releases: elastic/apm-agent-java
Releases · elastic/apm-agent-java
Release 1.3.0
Features
- The agent now collects system and JVM metrics (#360)
- Add API methods
ElasticApm#startTransactionWithRemoteParentandSpan#injectTraceHeadersto allow for manual context propagation (#396). - Added
trace_methodsconfiguration option which lets you define which methods in your project or 3rd party libraries should be traced.
To create spans for allpublicmethods of classes whose name ends inServicewhich are in any sub-package oforg.example.servicesuse this matcher:
public org.example.services.*Service#*(#398) - Added span for
DispatcherServlet#render(#409). - Flush reporter on shutdown to make sure all recorded Spans are sent to the server before the programm exits (#397)
- Adds Kubernetes (#383) (#344) and Docker metadata (#325) to enable correlation with the Kibana Infra UI.
- Improved error handling of the Servlet Async API (#399)
- Support async API’s used with AsyncContext.start (#388)
Bug Fixes
- Fixing a potential memory leak when there is no connection with APM server
- Fixes NoSuchMethodError CharBuffer.flip() which occurs when using the Elasticsearch RestClient and Java 7 or 8 (#401)
Release 1.2.0
Features
- Added
capture_headersconfiguration option.
Set tofalseto disable capturing request and response headers.
This will reduce the allocation rate of the agent and can save you network bandwidth and disk space. - Makes the API methods
addTag,setName,setType,setUserandsetResultfluent, so that calls can be chained.
Bug Fixes
- Catch all errors thrown within agent injected code
- Enable public APIs and OpenTracing bridge to work properly in OSGi systems, fixes this WildFly issue
- Remove module-info.java to enable agent working on early Tomcat 8.5 versions
- Fix async Servlet API issue
Release 1.1.0
Features
- Some memory allocation improvements
- Enabling bootdelegation for agent classes in Atlassian OSGI systems
Bug Fixes
- Update dsl-json which fixes a memory leak.
See ngs-doo/dsl-json#102 for details. - Avoid
VerifyErrors by non instrumenting classes compiled for Java 4 or earlier - Enable APM Server URL configuration with path (fixes #339)
- Reverse
system.hostnameandsystem.platformorder sent to APM server
Release 1.0.1
Bug Fixes
- Fixes NoSuchMethodError CharBuffer.flip() which occurs when using the Elasticsearch RestClient and Java 7 or 8 (#313)
Release 1.0.0
Breaking changes
- Remove intake v1 support. This version requires APM Server 6.5.0+ which supports the intake api v2.
Until the time the APM Server 6.5.0 is officially released,
you can test with docker by pulling the APM Server image via
docker pull docker.elastic.co/apm/apm-server:6.5.0-SNAPSHOT.
Features
- Adds
@CaptureTransactionand@CaptureSpanannotations which let you declaratively add custom transactions and spans.
Note that it is required to configure theapplication_packagesfor this to work.
See the documentation for more information. - The public API now supports to activate a span on the current thread.
This makes the span available viaElasticApm#currentSpan()
Refer to the documentation for more details. - Capturing of Elasticsearch RestClient 5.0.2+ calls.
Currently, the*Asyncmethods are not supported, only their synchronous counterparts. - Added API methods to enable correlating the spans created from the JavaScrip Real User Monitoring agent with the Java agent transaction.
More information can be found in the documentation. - Added
Transaction.isSampled()andSpan.isSampled()methods to the public API - Added
Transaction#setResultto the public API (#293)
Bug Fixes
Release 1.0.0.RC1
Breaking changes
- Remove intake v1 support. This version requires APM Server 6.5.0+ which supports the intake api v2.
Until the APM Server 6.5.0 is officially released, see this exampledocker-compose.ymlfile on how to set up the required services. - Wildcard patterns are case insensitive by default. Prepend
(?-i)to make the matching case sensitive.
Features
- Support for Distributed Tracing
- Adds
@CaptureTransactionand@CaptureSpanannotations which let you declaratively add custom transactions and spans.
Note that it is required to configure theapplication_packagesfor this to work.
See the documentation for more information. - Capturing of Elasticsearch RestClient 5.0.2+ calls.
- The public API now supports to activate a span on the current thread.
This makes the span available viaElasticApm#currentSpan()
Refer to the documentation for more details. - Added API methods to enable correlating the spans created from the JavaScrip Real User Monitoring agent with the Java agent transaction.
More information can be found in the documentation. - Microsecond accurate timestamps (#261)
- Wildcard patterns are now not limited to only one wildcard in the middle and can be arbitrarily complex now.
Example:*foo*bar*baz. - Support for JAX-RS annotations.
Transactions are named based on your resources (ResourceClass#resourceMethod).
Bug Fixes
- Fix for situations where status code is reported as
200, even though it actually was500(#225)
Release 0.7.1
Bug Fixes
Avoid recycling transactions twice (#178)
Release 0.7.0
Breaking changes
- Removed
ElasticApm.startSpan. Spans can now only be created from their transactions viaTransaction#createSpan. ElasticApm.startTransactionandTransaction#createSpandon't activate the transaction and spans
and are thus not available viaElasticApm.activeTransactionandElasticApm.activeSpan.
Features
- Public API
- Add
Span#captureExceptionandTransaction#captureExceptionto public API.
ElasticApm.captureExceptionis deprecated now. UseElasticApm.currentSpan().captureException(exception)instead. - Added
Transaction.getIdandSpan.getIdmethods
- Add
- 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_nameandurl_groups,
which allow to use the URL path as the transaction name.
As that could contain path parameters, like/user/$userIdhowever,
You can set theurl_groupsoption 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,sandm) 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 optionserver_urlhas been renamed toserver_urlsto reflect this change.
However,server_urlstill works for backwards compatibility. - The configuration option
service_nameis 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 exampletomcat-application).
In a lot of cases,
you will still want to set theservice_nameexplicitly.
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
Bug Fixes
- Make header recording null safe (see #159)
Release 0.6.1
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