DataDog / dd-sdk-android

Datadog SDK for Android (Compatible with Kotlin and Java)
Apache License 2.0
146 stars 59 forks source link

RUM-3905: Use custom naming for threads created inside SDK #1987

Closed 0xnm closed 4 months ago

0xnm commented 4 months ago

What does this PR do?

This PR introduces custom ThreadFactory for the threads created by SDK. Its only purpose is to name them in format datadog-{context}-threadN, where context may be feature track, etc.

This will give us a better visibility in telemetry (the necessary attribute was added for the executor-related events) and also allows to better navigate profiling data.

Review checklist (to be filled by reviewers)

codecov-commenter commented 4 months ago

Codecov Report

Merging #1987 (18967d7) into develop (ebf7542) will decrease coverage by 0.02%. Report is 4 commits behind head on develop. The diff coverage is 85.71%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #1987 +/- ## =========================================== - Coverage 83.68% 83.66% -0.02% =========================================== Files 487 488 +1 Lines 17736 17770 +34 Branches 2663 2663 =========================================== + Hits 14842 14867 +25 - Misses 2167 2178 +11 + Partials 727 725 -2 ``` | [Files](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | Coverage Δ | | |---|---|---| | [...in/com/datadog/android/core/NoOpInternalSdkCore.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2FNoOpInternalSdkCore.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL05vT3BJbnRlcm5hbFNka0NvcmUua3Q=) | `9.09% <ø> (ø)` | | | [...ore/internal/thread/BackPressureExecutorService.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fthread%2FBackPressureExecutorService.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL3RocmVhZC9CYWNrUHJlc3N1cmVFeGVjdXRvclNlcnZpY2Uua3Q=) | `44.44% <100.00%> (+2.14%)` | :arrow_up: | | [...core/internal/thread/BackPressuredBlockingQueue.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fthread%2FBackPressuredBlockingQueue.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL3RocmVhZC9CYWNrUHJlc3N1cmVkQmxvY2tpbmdRdWV1ZS5rdA==) | `95.45% <100.00%> (+0.58%)` | :arrow_up: | | [...droid/core/internal/thread/DatadogThreadFactory.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fthread%2FDatadogThreadFactory.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL3RocmVhZC9EYXRhZG9nVGhyZWFkRmFjdG9yeS5rdA==) | `100.00% <100.00%> (ø)` | | | [...rum/src/main/kotlin/com/datadog/android/rum/Rum.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=features%2Fdd-sdk-android-rum%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Frum%2FRum.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtcnVtL3NyYy9tYWluL2tvdGxpbi9jb20vZGF0YWRvZy9hbmRyb2lkL3J1bS9SdW0ua3Q=) | `91.67% <100.00%> (ø)` | | | [...lin/com/datadog/android/rum/internal/RumFeature.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=features%2Fdd-sdk-android-rum%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Frum%2Finternal%2FRumFeature.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtcnVtL3NyYy9tYWluL2tvdGxpbi9jb20vZGF0YWRvZy9hbmRyb2lkL3J1bS9pbnRlcm5hbC9SdW1GZWF0dXJlLmt0) | `91.74% <100.00%> (-1.83%)` | :arrow_down: | | [...nal/tracking/AndroidXFragmentLifecycleCallbacks.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=features%2Fdd-sdk-android-rum%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Frum%2Finternal%2Ftracking%2FAndroidXFragmentLifecycleCallbacks.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtcnVtL3NyYy9tYWluL2tvdGxpbi9jb20vZGF0YWRvZy9hbmRyb2lkL3J1bS9pbnRlcm5hbC90cmFja2luZy9BbmRyb2lkWEZyYWdtZW50TGlmZWN5Y2xlQ2FsbGJhY2tzLmt0) | `94.59% <100.00%> (+0.31%)` | :arrow_up: | | [...nternal/tracking/OreoFragmentLifecycleCallbacks.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=features%2Fdd-sdk-android-rum%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Frum%2Finternal%2Ftracking%2FOreoFragmentLifecycleCallbacks.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtcnVtL3NyYy9tYWluL2tvdGxpbi9jb20vZGF0YWRvZy9hbmRyb2lkL3J1bS9pbnRlcm5hbC90cmFja2luZy9PcmVvRnJhZ21lbnRMaWZlY3ljbGVDYWxsYmFja3Mua3Q=) | `90.00% <100.00%> (+0.53%)` | :arrow_up: | | [...droid/rum/tracking/ActivityViewTrackingStrategy.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=features%2Fdd-sdk-android-rum%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Frum%2Ftracking%2FActivityViewTrackingStrategy.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtcnVtL3NyYy9tYWluL2tvdGxpbi9jb20vZGF0YWRvZy9hbmRyb2lkL3J1bS90cmFja2luZy9BY3Rpdml0eVZpZXdUcmFja2luZ1N0cmF0ZWd5Lmt0) | `87.50% <100.00%> (-2.50%)` | :arrow_down: | | [...ain/kotlin/com/datadog/android/core/DatadogCore.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2FDatadogCore.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL0RhdGFkb2dDb3JlLmt0) | `81.98% <0.00%> (ø)` | | | ... and [2 more](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | | ... and [24 files with indirect coverage changes](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/1987/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog)