DataDog / dd-sdk-android

Datadog SDK for Android (Compatible with Kotlin and Java)
Apache License 2.0
159 stars 61 forks source link
android datadog hacktoberfest kotlin real-user-monitoring

Datadog SDK for Android and Android TV

A client-side Android and Android TV library to interact with Datadog.

Getting Started

Log Collection

See the dedicated Datadog Android Log Collection documentation to learn how to forward logs from your Android or Android TV application to Datadog.

Real User Monitoring

See the dedicated Datadog Android RUM Collection documentation to learn how to send RUM data from your Android or Android TV application to Datadog.

Log Integrations

Timber

If your existing codebase is using Timber, you can forward all those logs to Datadog automatically by using the dedicated library.

RUM Integrations

Coil

If you use Coil to load images in your application, see Datadog's dedicated library.

Fresco

If you use Fresco to load images in your application, see Datadog's dedicated library.

Glide

If you use Glide to load images in your application, see Datadog's dedicated library.

Jetpack Compose

If you use Jetpack Compose in your application, see Datadog's dedicated library.

SQLDelight

If you use SQLDelight in your application, see Datadog's dedicated library.

RxJava

If you use RxJava in your application, see Datadog's dedicated library.

Picasso

If you use Picasso, use it with the OkHttpClient that's been instrumented with the Datadog SDK for RUM and APM information about network requests made by Picasso.

        val picasso = Picasso.Builder(context)
                .downloader(OkHttp3Downloader(okHttpClient))
                // …
                .build()
        Picasso.setSingletonInstance(picasso)

Retrofit

If you use Retrofit, use it with the OkHttpClient that's been instrumented with the Datadog SDK for RUM and APM information about network requests made with Retrofit.

        val retrofitClient = Retrofit.Builder()
                .client(okHttpClient)
                // …
                .build()

Apollo (GraphQL)

If you use Apollo, use it with the OkHttpClient that's been instrumented with the Datadog SDK for RUM and APM information about all the queries performed through Apollo client.

        val apolloClient =  ApolloClient.builder()
                 .okHttpClient(okHttpClient)
                 .serverUrl(<APOLLO_SERVER_URL>)
                 .build()

Kotlin Coroutines

If you use Kotlin Coroutines, see Datadog's dedicated library with extensions for RUM and with extensions for Trace

Looking up your logs

When you open your console in Datadog, navigate to the Log Explorer. In the search bar, type source:android. This filters your logs to only show the ones coming from Android or Android TV applications.

Datadog Mobile Logs

Looking up your spans

When you open your console in Datadog, navigate to APM > Services. In the list of services, you can see all your Android and Android TV applications (by default, the service name matches your application's package name, for example: com.example.android). You can access all the traces started from your application.

Datadog Mobile Logs

Looking up your RUM events

When you open your console in Datadog, navigate to the RUM Explorer. In the side bar, you can select your application and explore Sessions, Views, Actions, Errors, Resources, and Long Tasks.

Datadog Mobile Logs

Troubleshooting

If you encounter any issue when using the Datadog SDK for Android and Android TV, please take a look at the troubleshooting checklist, common problems, or at the existing issues.

Datadog cannot guarantee the Android and Android TV SDK's performance on Roku devices running with Android OS. If you encounter any issues when using the SDK for these devices, contact Datadog Support or open an issue in our GitHub project.

Contributing

Pull requests are welcome. First, open an issue to discuss what you would like to change. For more information, read the Contributing Guide.

License

Apache License, v2.0