All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- BUGFIX: Initialization events now share the same clock instance.
- The
beaconEndpoint
configuration setting always overrides therealm
setting.
- BUGFIX: Fixed another issue that could service if the
ConnectivityManager
threw an exception when queried. See the corresponding Android bug: https://issuetracker.google.com/issues/175055271 - ANR spans are now properly marked as ERROR spans.
- Library now targets SDK version 31 (minimum version is still 21)
- The opentelemetry-okhttp-3.0 instrumentation has been updated to version 1.6.2.
- BUGFIX: Fixed a bug that could crash the application if Android's
ConnectivityManager
threw an exception when queried. See the corresponding Android bug: https://issuetracker.google.com/issues/175055271 - Updated OpenTelemetry okhttp instrumentation to v1.6.0.
- Capture attributes related to OkHttp Exceptions in the http client instrumentation.
- A span is now created when the SessionId changes to link the new session to the old one. The exact details of this span will probably change in the future.
- The library has been updated to use OpenTelemetry Java v1.6.0.
- All span string-valued attributes will now be truncated to 2048 characters if they exceed that limit.
- Fixed a
NullPointerException
that sometimes happened during the Network monitor initialization. - The Zipkin exporter is now lazily initialized in a background thread. This change should greatly speed up the library startup.
- OpenTelemetry okhttp instrumentation has been updated to version 1.5.3-alpha.
- For okhttp, SplunkRum now exposes a wrapper for your
OkHttpClient
which implements theCall.Factory
interface. ThisCall.Factory
will properly manage context propagation with asynchronous http calls. - The okhttp Interceptor provided by SplunkRum has been deprecated. Please use the
Call.Factory
from now on. ThecreateOkHttpRumInterceptor()
method will be removed in a future release. - A new class (
com.splunk.rum.StandardAttributes
) has been introduced to provideAttributeKey
s for standard RUM span attributes. Currently this class exposes theAPP_VERSION
attribute. - The ANR detector and Network monitor will no longer operate when the app has been put in the background.
- A new API on the
Config.Builder
allows redacting of spans or redacting/replacing Span attributes. See the newfilterSpans(Consumer<SpanFilterBuilder>)
method and the correspondingcom.splunk.rum.SpanFilterBuilder
class for details. - The
os.type
Span attribute has been changed to 'linux' andos.name
attribute is now 'Android'.
- Adds proguard consumer information to assist with proguarded release builds.
- The initial cold
AppStart
span now starts with the library initialization and continues until the first Activity has been restored. - Span names now have their capitalization preserved, rather than being lower-cased everywhere.
- All methods deprecated in v0.3.0 have been removed.
- The span names generated for Activity/Fragment lifecycle events no longer include the Activity/Fragment name as a prefix. There is still an attribute which tracks the name.
- The
com.splunk.rum.Config.Builder
class has been updated.- The
beaconUrl(String)
method has been deprecated and replaced withbeaconEndpoint(String)
. - A new
realm(String)
method has been added for easier beacon endpoint configuration. - The
rumAuthToken(String)
method has been deprecated and replaced withrumAccessToken(String)
. - A new
deploymentEnvironment(String)
method has been added as a helper to set your deployment environment value.
- The
- The method for recording exceptions has changed slightly:
- The method that took a
String name
parameter has been deprecated. - New methods have been added that use the exception class name as the name of the Span.
- The method that took a
- The
last.screen.name
attribute will only be recorded during detected screen transitions. - New methods have been added to the
SplunkRum
API to allow updating the "global" attributes that are added to every span and event.
- Instrumentation has been updated to use OpenTelemetry v1.4.1
- ANRs are now detected by the Instrumentation and will be reported as "ANR" spans.
- A new API has been added to track timed RUM "workflows" as OpenTelemetry Span instances.
- The values reported for network types have been updated to match OpenTelemetry semantic conventions.
- The SplunkRum class has had a method added to return a no-op implementation of the SplunkRum capabilities.
- The SplunkRum initialization span now includes an attribute describing the features that have been configured.
- The instrumentation now tracks 3 types of AppStart spans: cold, hot and warm. Note that "hot" starts are not tracked for multi-Activity apps, only single-Activity.
This is the first official beta release of the project.