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.
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 ingradle.properties
totrue
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.
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.6.0-alpha")
//...
}
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.
See CONTRIBUTING.md.
Approvers (@open-telemetry/android-approvers):
- Hanson Ho, Embrace
- Jack Berg, New Relic
- Manoel Aranda Neto, PostHog
- Trask Stalnaker, Microsoft
Maintainers (@open-telemetry/android-maintainers):
- Jason Plumb, Splunk
- Cesar Munoz, Elastic