Skip to content

Releases: open-telemetry/opentelemetry-android

Version 1.5.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 23:14
8b457d2

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

This version v1.5.1 is a patch release. It contains a single fix to a v1.5.0 which to address an accidental dependency. This dependency could, in some cases, cause network instrumentation to be installed without the developer intending to do so (#1847).

🙇 Thank you

This release was possible thanks to the following contributors:

@bidetofevil
@breedx-splk
@codecov
@copilot-pull-request-reviewer
@DavidGrath
@LikeTheSalad

Version 1.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Jun 19:01
9bf19da

This release is based on OpenTelemetry Java Instrumentation 2.29.0 and
the OpenTelemetry Java Core (sdk/api/exporters) 1.63.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
VERSIONING.md for more details.

🐞 Known issues

  • Network instrumentation was accidentally included as a dependency of the core module. Users who depend on the core module directly may unintentionally have network instrumentation enabled by default. The android-agent module already includes this instrumentation by default, so users of the agent are not impacted, only users who choose to use core directly without the agent module. We intend to release a patch to address this. (#1842)

📣 Migration notes

By default, Android telemetry now uses the latest experimental Android semantic conventions.
(#1691, #1819) This renames the current screen attribute from screen.name to app.screen.name and the crash event from device.crash to app.crash. To keep the previous names while migrating, configure

semanticConventions { 
  useLatestExperimental = false 
}

🌟 New instrumentation

  • Add opt-in thermal status instrumentation that listens for device thermal-status changes (API 29+) and emits a device.thermal_status.change event per change. (#1801)
  • Add opt-in power save mode instrumentation that listens for device power-save (battery saver) mode changes and emits a device.power_save_mode.change event per change. (#1811)

📈 Enhancements

  • The instrumentation API module is now marked as stable. (#1809)
  • The View click instrumentation now supports long-press, scroll, and fling events. (#1741, #1780)
  • Agent and core configuration now support disabling each signal API independently, avoiding instrumentation overhead for signals that will not be recorded. (#1785)
  • Crash reports now truncate stack traces to 1,000 lines by default. (#1816)

🛠️ Bug fixes

  • Network instrumentation now includes carrier information when a SIM is available while the device is connected to Wi-Fi. (#1465)

🙇 Thank you

This release was possible thanks to the following contributors:

@bidetofevil
@breedx-splk
@codecov
@copilot-pull-request-reviewer
@DavidGrath
@fractalwrench
@GabrielBBaldez
@Hemant21KG
@hitkall
@LikeTheSalad
@marandaneto

Version 1.4.0

Choose a tag to compare

@github-actions github-actions released this 19 May 19:23
786d4f4

This release is based on OpenTelemetry Java Instrumentation 2.28.0 and
the OpenTelemetry Java Core (sdk/api/exporters) 1.62.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

  • Slow rendering instrumentation no longer generates zero-duration spans, only events. (#1729)
  • Remove deprecated sdk ready listeners. Users should use addOtelReadyListener instead. (#1731)
  • Disk buffering export scheduling APIs have been reworked for the RUM builder. Use setExportScheduleEnablement with ScheduleEnablement instead of setExportScheduleHandler. (#1736)

📈 Enhancements

  • The View click instrumentation now supports double-tap events. (#1681)
  • Agent DSL now supports disabling instrumentations. (#1714)
  • Agent DSL now supports adding session observers. (#1718)
  • HTTP export endpoint configuration now supports fullUrl to bypass default signal path appending. (#1723)

🙇 Thank you

This release was possible thanks to the following contributors:

@Archish27
@breedx-splk
@brsgina
@cleverchuk
@Cloud-Architect-Emma
@codecov
@DavidGrath
@fractalwrench
@LikeTheSalad
@thompson-tomo

Version 1.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Apr 16:23
dbe234b

This release is based on OpenTelemetry Java Instrumentation 2.27.0 and
the OpenTelemetry Java Core (sdk/api/exporters) 1.61.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

  • The minimum supported Android SDK version has been increased from 21 to 23 (#1650)
  • The minimum supported Kotlin version has increased from 1.8 to 2.0. (#1489)

🚫 Deprecations

  • Deprecate the sdk ready listener in favor of an api listener. (#1597)

Migration notes

We continue migrating many components from Java to Kotlin. While we expect to remain compatible with Java-based applications, Kotlin support is our first priority. See KOTLIN_FIRST.md for more information.

We continue working to stabilize our API surface. In this release, the instrumentation API is not yet stable, and has undergone some notable changes that will impact (break) any custom instrumentation that uses these APIs. This should stabilize in the near future.

📈 Enhancements

  • Improved generalized flushing behavior of telemetry upon crash. (#1610)
  • Mark the agent-api, which contains the OpenTelemetryRum interface, as stable. (#1612)
  • Instrumentation API enhancements. (#1645)
  • Mark the session module as stable. (#1690)
  • Agent DSL now supports providing global attributes via globalAttributesSupplier. (#1593)
  • Agent DSL now supports customizing the exporter SSL context and trust manager. (#1537)
  • Provide guidance for AI-generated PRs and agentic contributions. (#1640)
  • The demo-app now includes an example of OkHttp build-time instrumentation. (#1688)
  • As part of the session API stabilization, several kotlin idiomatic changes were introduced. (#1673)
  • NetworkChange instrumentation now includes an uninstall() implementation. (#1639)
  • OkHttp instrumentation package has been modified. (#1609)
  • It is now possible to provide a client-side TLS certificate and leverage mTLS in exporters. (#1660)

🛠️ Bug fixes

  • The core module no longer forces androidx.core as a transitive dependency. (#1665)
  • The service module no longer depends on androix.navigation. (#1668)

🧰 Tooling

  • Release automation regex fix. (#1613)

🙇 Thank you

This release was possible thanks to the following contributors:

@ashishvz
@atulgpt
@bidetofevil
@breedx-splk
@brsgina
@codecov
@DamienL-F
@fractalwrench
@LikeTheSalad
@marandaneto
@paco-spr
@PenguinDan
@priettt
@Sabaev
@SenNeonoveNoci
@surbhiia

Version 1.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Feb 08:27
06dbf70

This release is based on OpenTelemetry Java Instrumentation 2.25.0 and
the OpenTelemetry Java Core (sdk/api/exporters) 1.59.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.

📈 Enhancements

  • Multiple instrumentation modules have been converted from Java to Kotlin, including ANR, activity, fragment, websocket, and network instrumentation. (#1551, #1552, #1553, #1554, #1557, #1570, #1571, #1572)
  • Added metadata file for integration with the Google Play Console. (#1578)
  • Increase test coverage for sessions. (#1583)

🛠️ Bug fixes

  • Fix clock baseline computation to correctly use nanosecond offsets. (#1574)

🧰 Tooling

  • Adding support for patch and rc version bump during a release. (#1538)

🙇 Thank you

This release was possible thanks to the following contributors:

@bidetofevil
@breedx-splk
@codecov
@fractalwrench
@LikeTheSalad
@marandaneto

Version 1.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Jan 17:39
1ec9eb3

This is a regular monthly release that builds on the following OpenTelemetry dependencies:

  • OpenTelemetry java instrumentation 2.24.0.
  • OpenTelemetry java contrib 1.53.0.
  • OpenTelemetry java 1.58.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.

📈 Enhancements

  • The OpenTelemetry Resource now contains android.os.api_level. The value is set to the Android API level used by the application build. (#1455)
  • Add the ability to customize the OpenTelemetry resource via the OpenTelemetryRumInitializer DSL (#1476)
  • The OpenTelemetry Resource now contains the app.installation.id attribute. The value is set a random UUID which is persisted in SharedPreferences across launches. (#1488)
  • The OpenTelemetryRumInitializer now exposes a means of setting the OpenTelemetry clock. Please note that most users will never need to do this, and an enhanced clock implementation is provided as an internal detail. (#1486)
  • New OpenTelemetry clock implementation that is no longer impacted by deep sleeps. This yields more accurate elapsed time semantics for timeouts and background tasks. (#1487)
  • Retry exporting unsuccessfully exported batches (#1493)

🛠️ Bug fixes

  • Fix a concurrency issue in the Session Manager (#1419)
  • Add missing default method override in compose click instrumentation. (#1464)
  • Don't obfuscate fragment names (#1490)

🧰 Tooling

  • Leverage detekt type resolution for enahanced static analysis. (#1463)

🙇 Thank you

This release was possible thanks to the following contributors:

@50c
@atulgpt17
@bencehornak
@bidetofevil
@breedx-splk
@cleverchuk
@codecov
@copilot-pull-request-reviewer
@fractalwrench
@gregory-at-cvs
@jboxx
@LikeTheSalad
@marandaneto
@MustafaHaddara
@namanONcode
@Sabaev
@simplekjl
@thompson-tomo

Version 1.0.1

Choose a tag to compare

@breedx-splk breedx-splk released this 08 Jan 06:35
07ffe08
  • 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

Choose a tag to compare

@breedx-splk breedx-splk released this 08 Jan 01:01
bffac27

⭐ 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

Choose a tag to compare

@github-actions github-actions released this 25 Nov 23:32
a6cde67

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

Choose a tag to compare

@github-actions github-actions released this 24 Oct 18:33
057d088

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