/opentelemetry-android

OpenTelemetry Tooling for Android

Primary LanguageJavaApache License 2.0Apache-2.0

OpenTelemetry Icon OpenTelemetry Android

Continuous Build Maven Central

Status: Experimental

About

The repository contains the OpenTelemetry Android SDK for generating mobile client telemetry for real user monitoring (RUM). It is built on top of the OpenTelemetry Java SDK.

Getting Started

If your project's minSdk is lower than 26, then you must enable corelib desugaring. See #73 for more information. If your project's minSdk is lower than 24, in order to run instrumentation tests or run the app built on debug, you must use AGP 8.3.0+ and set the android.useFullClasspathForDexingTransform property in gradle.properties to true to ensure desugaring runs properly. For the full context for this workaround, please see this issue.

For an overview of how to contribute, see the contributing guide in CONTRIBUTING.md.

We are also available in the #otel-android channel in the CNCF slack. Please join us there for further discussions.

Gradle

To use this android instrumentation library in your application, first add a dependency in your gradle build script:

dependencies {
    //...
    implementation("io.opentelemetry.android:android-agent:0.5.0-alpha")
    //...
}

Features

This android library builds on top of the OpenTelemetry Java SDK. Some of the additional features provided include:

  • Crash reporting
  • ANR detection
  • Network change detection
  • Full Android Activity and Fragment lifecycle monitoring
  • Access to the OpenTelemetry APIs for manual instrumentation
  • Helpers to redact any span from export, or change span attributes before export
  • Slow / frozen render detection
  • Offline buffering of telemetry via storage

Note: Use of these features is not yet well documented.

Contributing

See CONTRIBUTING.md.