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.
This is a regular maintenance release.
This version depends on these upstream versions:
- opentelemetry-android v0.4.0
- opentelemetry-instrumentation-api v1.33.5
- opentelemetry-sdk v1.41.0
Enhancements:
- Disable console exporter from upstream (#894)
This is a regular maintenance release.
- Update to OpenTelemetry Java Instrumentation 1.33.4
- Add experimental API to allow manually setting the current screen name. (#851)
This is a regular maintenance release. Due to incompatible changes in upstream, opentelemetry-android
has been held at v0.4.0. Expect splunk-otel-android
to have an alpha of 2.x soon.
This version depends on these upstream versions:
opentelemetry-android
v0.4.0opentelemetry-instrumentation-api
v1.33.2opentelemetry-sdk
v1.37.0
Enhancements:
- Add experimental OTLP exporter support (#788). Note: OTLP support is incompatible with disk-buffering.
This regular release follows the upstream opentelemetry-android
release.
- Upgrade upstream
opentelemetry-android
to 0.4.0. - Add new incubating API:
SplunkRumBuilder.setHttpSenderCustomizer()
to allow customization of the HTTP client used for sending data to Splunk. This can be useful when devices are behind a proxy or API gateway (#742). - Fix AndroidResource blending between Splunk version and upstream. (#757)
The previous release was mistakenly built against an OpenTelemetry SNAPSHOT
build.
This remedies that and compiles against the 1.32.0 non-SNAPSHOT bom.
- Compile against OpenTelemetry Java Instrumentation 1.32.0 (no SNAPSHOT).
This is a standard release following the regular upstream opentelemetry-android
release.
This version is succeeded by a patch release: Users should use 1.3.1 instead of 1.3.0.
- Update to use upstream
opentelemetry-android
0.3.0 (#714) - Reduce unnecessary attempts at directory deletion for disk buffered telemetry (#683)
- Change session sampling strategy to be consistent with other splunk RUM implementations (#698)
- Global attributes and screen attributes are now handled by upstream (#710)
- Network monitoring and network attributes appender now handle by upstream (#713)
- Fix broken url targets in sample app (#715)
This is the first version of splunk-otel-android
that is based on the upstream version of
opentelemetry-android
. Please note that this requires an additional project dependency,
as documented here.
- Depend on upstream opentelemetry-android (#640)
- Depend on updated java semantic conventions (#658)
- Feature enhancement: The instrumentation can now be configured to buffer telemetry created when your application is launched in the background. This buffered telemetry is sent when the app is foregrounded, or dropped when a new app session is started. Thanks to @rezastallone for this contribution. (#648)
- Update to opentelemetry-java sdk 1.31.0
- Update to opentelemetry-java-instrumentation 1.31.0
- Fix build to include
.aar
artifact. Please note that this version splits out an additional required dependency:com.splunk:opentelemetry-android-instrumentation
.
This version had a critical defect which caused the .aar
to not be published to maven central.
Users should skip over this version and use the patch release 1.1.1 when it is available.
splunk.rum.version
attribute has been renamed torum.sdk.version
(#524)- new API:
OpenTelemetryRumBuilder.mergeResource()
to allow merging into resource instead of replacing (#524) - new API:
SplunkRumBuilder.disableBackgroundTaskReporting(applicationId)
- pass theapplicationId
to this method in order to disable instrumentation for background tasks. (#614) (#624) - OpenTelemetry SDK updated to 1.29.0
Version 1.0.0 marks the initial stable release of splunk-otel-android
.
Release candidate for 1.0.0.
- Updated to OpenTelemetry Java v1.21.0 (#421)
- Guard against creating empty spans files when using disk buffering (#407)
- Don't include first frame in draw duration histogram for slow renders (#400)
Release candidate for 1.0.0.
- Updated to OpenTelemetry Java v1.19.0 (#383)
- Fixed a bug where sometimes crash reports were not exported (#368)
- Added runtime details (storage, memory, battery) to crash reports (#369)
- Removed deprecated classes (#372)
- Included activity name in slow and frozen render reports (#373)
- Renamed the
SplunkRumBuilder#disableNetworkMonitorEnabled()
method toSplunkRumBuilder#disableNetworkMonitor()
(#377) - Added experimental React Native support (React Native lib will be developed and released separately) (#381)
Release candidate for 1.0.0.
- Updated to OpenTelemetry Java v1.18.0
- Introduced a
SplunkRumBuilder
class and deprecatedConfig
(#342) - Add mobile carrier info to Span attributes (name/mcc/mnc/icc) (#358)
- Improve thread safety of slow rendering detector (#361)
- Ignore background application starts when measuring AppStart events (#315)
- Remove the local IP address from span (#327)
- Add
StandardAttributes.APP_BUILD_TYPE
(#328) - Updated to OpenTelemetry Java v1.17.0 (#335)
- Crash reporting enhancements: capture larger stack traces; in case multiple exceptions happen during a crash only treat the first one as the cause (#323)
- Updated to OpenTelemetry Java v1.15.0 (#303)
- Fix race condition in slow render detection (#304)
- Updated to OpenTelemetry Java v1.14.0 (#287)
- Disk caching exporter now retries sending files (#260)
- Add ability to customize
screen.name
attribute with@RumScreenName
annotation (#261) - Add ability to limit storage usage for buffered telemetry (#272)
- Add method to check if RUM library has been initialized (#273)
- Add option to sample traces based on session ID (#273)
- Update RUM property to support GDI spec 1.2 (#198)
- Add
exception.type
andexception.message
for crash report spans (#200) - Initial support for Volley HurlStack instrumentation (#209)
- Support for detecting slow and frozen renders, enabled by default (#236)
- Sample app updated to support slow renders (#236)
- Updated to OpenTelemetry Java v1.12.0 (#254)
- Add experimental support of buffering telemetry through storage (#251)
- Consistency improvements to public configuration API (#255)
- Add session timeout after a period of inactivity (#226)
- Numerous dependency upgrades
- 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.