Skip to content

Releases: open-telemetry/opentelemetry-android

Version 1.0.1

08 Jan 06:35
07ffe08

Choose a tag to compare

  • Patches 1.0.0 release in order to drop -alpha suffix for the agent module. Sorry for any confusion this may have caused.

Version 1.0.0

08 Jan 01:01
bffac27

Choose a tag to compare

⭐ Promote v1.0.0-rc.1 to v1.0.0.

⚠️ Note: This 1.0.0 release will be followed shortly by 1.0.1 which drops the -alpha suffix from
the agent.

This release promotes v1.0.0-rc1 to v1.0.0 without any additional changes. This release also denotes the first stable version of the OpenTelemetry Android Agent!

Going forward, we will prevent breaking changes to the agent API until the next major version. Other modules, including instrumentation, are still marked as alpha and will each have an individual trajectory toward stability.

Thanks to everyone involved in making this stable release a success!

🙇 Thank you

This release was possible thanks to the following contributors:

@agrognetti
@atulgpt
@beekhc
@bidetofevil
@breedx-splk
@codecov
@fractalwrench
@LikeTheSalad
@marandaneto
@RiyazurRazak

Version 1.0.0-rc.1

25 Nov 23:32
a6cde67

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation 2.22.0 and
the OpenTelemetry Java Core (sdk/api/exporters) 1.56.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

Good news, everyone! This denotes the first "stable" release candidate (rc.1) of OpenTelemetry Android. In a future release, after we have concluded that there are no significant issues or changes to the android-agent API, we will drop the rc (release candidate) designation and consider the android-agent a "stable" release.

Take note that even after the rc designation is removed, most modules will still contain an -alpha suffix to indicate that they are a future stability target.

Migration notes

Please note that, as part of our stabilization effort, we have introduced a few breaking changes in this release. The OpenTelemetryRumInitializer API, which we expect most users to be leveraging, should not have breaking changes in this release (with one exception noted below).

Users who may have been utilizing the OpenTelemetryRumBuilder class directly through a transitive dependency from the android-agent module, without declaring a direct dependency on the core module, will have compilation errors. These errors can be resolved by declaring a direct gradle dependency on the core module.

By default, the agent now enables gzip compression for exported data. Most users should benefit from this, but if gzip is not desired it may be disabled by setting compression = Compression.NONE in the httpExport block of the agent configuration.

⚠️⚠️ Breaking changes

  • The OpenTelemetryRumBuilder is now a Kotlin class. (#1372)
  • Gzip compression is now enabled by default for exporters. (#1360)
  • Drop RUM_SDK_VERSION in favour of TELEMETRY_SDK_VERSION (#1365)
  • Move OpenTelemetryRum to a new API module. (#1387)

🌟 New instrumentation

  • New instrumentation that reports screen orientation changes. (#1333)

📈 Enhancements

  • Activity and Fragment instrumentation may now be uninstalled. (#1369)

🛠️ Bug fixes

  • Add compat fix for obtaining the thread id on versions >= BAKLAVA (36). (#1346)
  • Rename event name event.app.widget.click to app.widget.click (#1391)
  • Add openTelemetry getter to OpenTelemetryRum to fix breaking API change (#1373)
  • Fix metrics aggregation temporality when using disk buffering. (#1405)
  • Fix instrumentation ordering problem, which could prevent session.start event from firing in some cases. (#1413)
  • Enable disk buffering by default. (#1416)

🧰 Tooling

  • Remove final remaining usages of mockito in favor of mockk. (#1362)

🙇 Thank you

This release was possible thanks to the following contributors:

@agrognetti
@atulgpt
@beekhc
@bidetofevil
@breedx-splk
@codecov
@fractalwrench
@LikeTheSalad
@marandaneto
@RiyazurRazak

Version 0.16.0

24 Oct 18:33
057d088

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation and
the OpenTelemetry Java Core (sdk/api/exporters) 1.55.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

Note: This version is not the first release candidate. We had previously announced that the October 2025 release would be our first release candidate, but this effort is temporarily paused.

We are still soliciting feedback from users as we approach a 1.0.0 milestone and mark the android-agent and OpenTelemetryRumInitializer api stable. Please see #1257 to join the discussion.

The full list of commits included in this release may be viewed here.

⚠️⚠️ Breaking changes

  • Removing OTelRumConfig from initializer (#1272)
  • SessionStorage and SessionIdGenerator are now internal interfaces. (#1278)

📣 Migration notes

  • The agent initializer now uses a typesafe DSL for configuration parameters. Existing users of the initialization API may need to made some modifications, but we think this is a nice extensible pattern for the initializer.
  • Unstable APIs now leverage a new @Incubating annotation, which leverages the kotlin compiler to emit warnings about use of unstable APIs (#1238)

📈 Enhancements

  • Add functional interfaces to support config DSL via agent initializer. (#1275)
  • Config for disabling default instrumentations via agent initializer. (#1273)
  • Enhanced detection of service.name when the application label is populated with build placeholders. (#1302)

🧰 Tooling

  • Testing now uses Marshmallow as a lower bound. (#1230)
  • Improve PR code coverage reporting by running codecov on main branch (#1236)
  • Update main CI build from Java 17 to Java 21. (#1317)

🙇 Thank you

This release was possible thanks to the following contributors:

@amishhaa
@bidetofevil
@breedx-splk
@cleverchuk
@codecov
@ColtonIdle
@fractalwrench
@LikeTheSalad
@marandaneto
@marcschaeferger
@MustafaHaddara
@simplekjl

Version 0.15.0

18 Sep 18:39
cac2b8d

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation and
the OpenTelemetry Java Core (sdk/api/exporters) 1.54.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

⚠️⚠️ Breaking changes

  • Drop volley instrumentation. (#1228)

📈 Enhancements

  • Introduce configuration DSL for OpenTelemetryRumInitializer (#1198)
  • Refactor jank to use events instead of zero-duration spans (#1175)
  • Add experimental ability to close Services (#1196)
  • Add more warning logs in Network detection (#1205)

🧰 Tooling

  • Drop API 21 (Lollipop) test automation with Robolectric. (#1189)

🙇 Thank you

This release was possible thanks to the following contributors:

@bidetofevil
@breedx-splk
@cleverchuk
@codecov
@fractalwrench
@LikeTheSalad
@marandaneto
@MustafaHaddara
@surbhiia

Version 0.14.0

21 Aug 18:05
4328a35

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation and
the OpenTelemetry Java Core (sdk/api/exporters) 1.53.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

📣 Migration notes

  • Volley HTTP instrumentation is now marked as deprecated and will be removed in 0.20.0. Volley has not seen a release in about 4 years and it is unlikely that it has much adoption. As a result, we have chosen to halt development of the instrumentation in opentelemetry-android. #1145

🛠️ Bug fixes

  • Allow empty global attributes from empty Supplier at startup (#1102)
  • Fix build warning for duplicate module namespace in manifest (#1136)

📈 Enhancements

  • Updated ANR data model from span to log event (#1101)
  • Experimental OpenTelemetryRum.shutdown() and instrumentation uninstall (#1109)
  • build: bump compileSdkVersion to 36 (#1122)
  • Remove READ_PHONE_STATE permission and update docs (#1129)
  • Okhttp jvm android resolution (#1155)
  • Update network fetch - Use relevant APIs and permissions across different API Levels (#1147)

🙇 Thank you

This release was possible thanks to the following contributors:

@bidetofevil
@breedx-splk
@cleverchuk
@fractalwrench
@LeadAssimilator
@LikeTheSalad
@magda-woj
@marandaneto
@surbhiia
@tonzhan2
@VitaSokolova

Version 0.13.0

24 Jul 23:20
8c97324

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation and
the OpenTelemetry Java Core (sdk/api/exporters) 1.52.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

  • Alter FilteringSpanExporter to leverage common code from contrib (#1043)
  • Instrumentation docs now include installation instructions (#1068)
  • OpenTelemetry Android BOM now includes upstream components (instrumentation, sdk, api) (#1075)
  • Update docs to reflect that desugaring is required for minSdk < 26 (#1085)
  • Include service.version in the default AndroidResource (#1087)

🙇 Thank you

This release was possible thanks to the following contributors:

@Archish27
@bidetofevil
@breedx-splk
@F43nd1r
@jban7496
@LikeTheSalad
@RiyazurRazak
@trask

Version 0.12.0

08 Jul 21:18
6d9fc68

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation 2.17.0 and the OpenTelemetry Java Core (sdk/api/exporters) 1.51.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

🌟 New instrumentation

  • Capture click events for compose (#1002)
  • Capture click events for non-compose views (#953)

📈 Enhancements

  • Agent initialization api (#945)
  • Enable disk buffering by default in the demo app (#988)
  • Exposing SessionProvider setter (#979)
  • Exposing instrumentation api as agent api (#1007)
  • Use semantic conventions in click instrumentation (#1008)
  • add convenience event emitting api to OpenTelemetryRum (#892)

🧰 Tooling

  • Move SessionConfig up (#959)
  • Remove runtime dep on androidx fragment navigiation from modules that don't strictly need it (#961)
  • Agent default instrumentation config (#976)
  • update sonatype urls (#999)

🙇 Thank you

This release was possible thanks to the following contributors:

@bidetofevil
@breedx-splk
@cleverchuk
@jzwc
@LikeTheSalad
@marandaneto
@MdNaushad
@MustafaHaddara
@SenNeonoveNoci
@trask

Version 0.11.0

15 Apr 19:16
863f51f

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation 2.15.0 and
the OpenTelemetry Java Core (sdk/api/exporters) 1.49.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

📣 Migration notes

Please be aware that the maven coordinates for many instrumentation modules have changed. Details can be found here.

⚠️⚠️ Breaking changes

  • Remove setSessionTimeout() on OtelRumConfig in favor of new setSessionConfig().(#887)
  • Update Fragment and Activity attribute names. (#920)

🌟 New instrumentation

  • Generate events for OkHttp Websocket events (#863)**
  • Add build-time android.util.Log call-site substitutions (#911)

📈 Enhancements

  • Support custom attribute extractors to auto-http instrumentations (#867)
  • Allow users to configure suppression of some instrumentations. (#883)
  • Use event name for crash event (instead of attr) (#894)
  • Migrate network change event from zero-duration span to (log-based) event. (#895)

🛠️ Bug fixes

  • Fix instrumentation publication collisions (#926)

🙇 Thank you

This release was possible thanks to the following contributors:

@Archish27
@bendeguzvarju
@bidetofevil
@breedx-splk
@cleverchuk
@ddas09
@LikeTheSalad
@magda-woj
@marandaneto
@surbhiia

Version 0.10.0

07 Mar 17:42
0af0388

Choose a tag to compare

This release is based on OpenTelemetry Java Instrumentation and
the OpenTelemetry Java Core (sdk/api/exporters) 1.47.0.

Note that many artifacts have the -alpha suffix attached to their version number, reflecting
that they are still alpha quality and will continue to have breaking changes. Please see the
VERSIONING.md for more details.

  • This version builds on opentelemetry-java-instrumentation v2.13.3.

⚠️⚠️ Breaking changes

  • New maven coordinates for http client instrumentations (#791) - okhttp-3.0-library -> instrumentation-okhttp-3.0-library - okhttp-3.0-agent -> instrumentation-okhttp-3.0-agent - httpurlconnection-library -> instrumentation-httpurlconnection-library - httpurlconnection-agent -> instrumentation-httpurlconnection-agent
  • Remove deprecated exception.escaped attribute from crash events (#796)
  • DiskBufferingConfiguration renamed to DiskBufferingConfig (#753)
  • Remove ServiceManager instance from InstallationContext (#763)
  • Remove hard-coded exception.escaped attribute from crashes (#796)
  • Drop support for Kotlin 1.7 (#869)

📈 Enhancements

  • The android-agent module now publishes a Bill of Materials (BOM). This BOM can be used to coordinate platform dependency versions across the various modules contained in opentelemetry-android (#809)
  • Add ability to enable verbose debug for disk buffering config (#753)
  • Ensure current screen attribute is included in logs, when configured (#785)
  • Default max cache size for disk buffering reduced from 60MB to 10MB (#822)
  • Improve concurrency/threading for initialization events (#836)
  • Remove minimum disk buffering cache size requirement and pre-allocation (#828)
  • Add ability to customize the directory used for disk buffering (#871)

🙇 Thank you

This release was possible thanks to the following contributors:

@bencehornak
@bidetofevil
@breedx-splk
@deividasstr
@github-advanced-security
@jarias-lfx
@juanchosaravia
@LikeTheSalad
@marandaneto
@step-security-bot
@surbhiia
@trask
@Zey-Uzh