Improvements
- A custom application version can now be set using the new method
NewRelic.withApplicationVersion(String appVersion)
- Added the method
NewRelic.recordMetric(String name, String category)
to allow recording a custom metric with just a name and category, the value defaulted to 1.
Notes
- This release supports Android 2.2+. Future releases will require 2.3+.
Improvements
- Improved instrumentation of the OkHttp library v1.6 to include support for OkURLFactory
Notes
- This will be the last release of the Android SDK to support Android 2.2. Future versions will require 2.3+.
Fixes
- Addresses an issue that may have caused an upgraded application to continue reporting the older version of the application to New Relic.
- Corrects a potential RuntimeException when the HEAD method was used in an HTTP request.
- Resolves an IllegalArgumentException that could have occurred in the edge case where the start or end time of an HTTP transaction was invalid.
Improvements
- You can now disable the capture of the HTTP response body for requests by calling
NewRelic.disableFeature(FeatureFlag.HttpResponseBodyCapture)
. - You can now disable crash reporting by calling
NewRelic.disableFeature(FeatureFlag.CrashReporting)
. - The SDK was updated to accept the HTTP method in
NewRelic.noticeHttpTransaction()
andNewRelic.noticeNetworkFailure()
allowing more detailed information to be collected.
Fixes
- Resolves an issue related to recording a URL that could have potentially resulted in a Null Pointer Exception.
Fixes
- Resolves a crash in InputStream instrumentation when chunked transfer encoding is used.
- Custom interaction names, when specified, are now used in Crash interaction history trails.
Fixes
- Corrects an issue where the agent may crash under certain concurrent access of instrumented InputStream implementations.
- Corrects an issue where a thread pool was not properly getting destroyed upon application background-to-foreground transitions.
Improvements
- Crash Reporting
- This release introduces crash reporting for mobile apps. Crash reporting supports capture and reporting of unhandled Java runtime exceptions.
- Crashes include interaction trails: a history of automatically instrumented actions that occurred during the app session leading up to the crashing event. No breadcrumbs needed.
- The SDK includes a
NewRelic.crashNow()
method to trigger a test crash quickly and easily. - You can also disable crash reporting via the runtime API.
- When building an app with Proguard enabled, the Proguard mapping file is sent to New Relic to automatically provide human readable crash reports in the UI.
- Session improvements
- The SDK now more consistently records MobileSession events in Insights when users use various app switchers on Android 4.x.
Fixes
- Improve reported traffic accuracy
- Corrects an issue where the SDK could continue to report an app as active when it had entered the background. This fix will reduce the traffic reported for an app to more accurately reflect actual usage.
- Improve thread naming accuracy
- Corrects an issue where the SDK reported some metrics with an incorrect display name. This fix will more accurately reflect thread breakdown data in interactions.
Improvements
New Gradle Plugin
We've rewritten the New Relic Gradle plugin from the ground up to impose a smaller footprint on your build and improve compatibility with the new Gradle Daemon.
Improvements
Naming changes to Interaction Traces
We've changed the naming scheme for Interaction Traces to be more clear. Instead of "ActivityClass#onCreate", you'll see "Display ActivityClass". If you want to change the name of a running Interaction, just call
setInteractionName()
.New API methods for starting and stopping Interaction Traces
We've added two new methods to the NewRelic class API to give you greater control over starting and stopping Interaction Traces. The
startInteraction()
method now just takes a string, no context needed. UseendInteraction()
to stop a running interaction.New
@SkipTrace
annotation to exclude methods from default instrumentationWhile automatic instrumentation is one of the more convenient features of the agent, there are a few cases where it can get in the way. Should you encounter one of these cases, simply add this annotation to the method in question, and the agent will skip it during compile time instrumentation.
Notes
Improvements
API methods now check for bad values and throw IllegalArgumentException
Previously, our API methods would silently discard bad data without recording errors or metrics. We've changed this behavior to be more informative by throwing an exception when bad arguments are passed.
Fixes
Android Gradle plugin 0.10 compatibility
Version 0.10.0 of the plugin introduced a subtle change that caused errors during build time that would produce ClassCastException errors at runtime. We’ve fixed this issue and verified we're also compatible with 0.11.
- Improved thread safety in the API
Some API methods exhibited race conditions under heavy utilization. These race conditions are now solved.
- Summary metrics occasionally exhibited bad values
You may have noticed strange numbers in your application overview chart. We've isolated the cause of these numbers and fixed the underlying issue in the agent.