Android SDK observability reference

The LaunchDarkly observability features are available for early access

Observability features in the LaunchDarkly UI are publicly available in early access.

The observability SDKs, implemented as plugins for LaunchDarkly server-side and client-side SDKs, are designed for use with the in-app observability features. They are currently in available in Early Access, and APIs are subject to change until a 1.x version is released.

If you are interested in participating in the Early Access Program for upcoming observability SDKs, sign up here.

Overview

This topic documents how to get started with the LaunchDarkly observability plugin for the Android SDK.

The Android SDK supports the observability plugin for error monitoring, logging, and tracing.

SDK quick links

LaunchDarkly’s SDKs are open source. In addition to this reference guide, we provide source, API reference documentation, and a sample application:

ResourceLocation
SDK API documentationObservability plugin API docs
GitHub repository@launchdarkly/observability-android
Published moduleMaven

Prerequisites and dependencies

This reference guide assumes that you are somewhat familiar with the LaunchDarkly Android SDK.

The observability plugin is compatible with the Android SDK, version 5.9.0 and later.

The LaunchDarkly Android SDK is compatible with Android SDK versions 21 and higher (Android 5.0, Lollipop).

Get started

Follow these steps to get started:

Install the plugin

LaunchDarkly uses a plugin to the Android SDK to provide observability.

The first step is to make both the SDK and the observability plugin available as dependencies.

Here’s how:

1implementation 'com.launchdarkly:launchdarkly-android-client-sdk:5.+'
2implementation 'com.launchdarkly:launchdarkly-observability-android:0.5.0'

Then, import the plugin into your code:

1import com.launchdarkly.sdk.*;
2import com.launchdarkly.sdk.android.*;
3import com.launchdarkly.observability.plugin.Observability
4import com.launchdarkly.sdk.android.integrations.Plugin

Initialize the client

Next, initialize the SDK and the plugin.

To initialize, you need your LaunchDarkly environment’s mobile key. This authorizes your application to connect to a particular environment within LaunchDarkly. To learn more, read Initialize the client in the Android SDK reference guide.

Here’s how to initialize the SDK and plugin:

1LDConfig ldConfig = new LDConfig.Builder(AutoEnvAttributes.Enabled)
2 .mobileKey("mobile-key-123abc")
3 .plugins(Components.plugins().setPlugins(
4 Collections.singletonList<Plugin>(Observability(this.getApplication()))
5 ))
6 // other options
7 .build();
8
9LDContext context = LDContext.create("context-key-123abc");
10
11LDClient client = LDClient.init(this.getApplication(), ldConfig, context, 0);

Configure the plugin options

You can configure options for the observability plugin when you initialize the SDK. The plugin constructor takes an optional object with the configuration details.

Here is an example:

Plugin options, Android SDK v5.9+
1val ldConfig = new LDConfig.Builder(AutoEnvAttributes.Enabled)
2 .mobileKey("mobile-key-123abc")
3 .plugins(
4 Components.plugins().setPlugins(
5 Collections.singletonList<Plugin>(
6 Observability(
7 this@BaseApplication,
8 Options(
9 resourceAttributes = Attributes.of(
10 AttributeKey.stringKey("serviceName"), "example-service"
11 )
12 )
13 )
14 )
15 )
16 )
17 .build();

For more information on plugin options, read Configuration for client-side observability.

Configure additional instrumentations

To enable HTTP request instrumentation and user interaction instrumentation, add the following plugin and dependencies to your top level application’s Gradle file.

1plugins {
2 id 'net.bytebuddy.byte-buddy-gradle-plugin' version '1.+'
3}
4
5dependencies {
6 // Android HTTP Url instrumentation
7 implementation 'io.opentelemetry.android.instrumentation:httpurlconnection-library:0.11.0-alpha'
8 byteBuddy 'io.opentelemetry.android.instrumentation:httpurlconnection-agent:0.11.0-alpha'
9
10 // OkHTTP instrumentation
11 implementation 'io.opentelemetry.android.instrumentation:okhttp3-library:0.11.0-alpha'
12 byteBuddy 'io.opentelemetry.android.instrumentation:okhttp3-agent:0.11.0-alpha'
13}

Explore supported features

The observability plugins supports the following features. After the SDK and plugins are initialized, you can access these from within your application:

Review observability data in LaunchDarkly

After you initialize the SDK and observability plugin, your application automatically starts sending observability data back to LaunchDarkly, including errors and logs. You can review this information in the LaunchDarkly user interface. To learn how, read Observability.