DataDog / dd-sdk-android

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

RUM-4103 add telemetry to detect uncovered View/Drawable in Session Replay #2028

Closed xgouchet closed 4 months ago

xgouchet commented 4 months ago

What does this PR do?

Adds some telemetry when a View or Drawable cannot be converted into Session Replay data.

Motivation

We need to better understand the UI features used by our customer that we don't have support of yet.

codecov-commenter commented 4 months ago

Codecov Report

Attention: Patch coverage is 65.75342% with 25 lines in your changes are missing coverage. Please review.

Project coverage is 83.30%. Comparing base (7566da7) to head (74cf7ef). Report is 2 commits behind head on develop.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #2028 +/- ## =========================================== - Coverage 83.32% 83.30% -0.02% =========================================== Files 486 486 Lines 17662 17725 +63 Branches 2684 2689 +5 =========================================== + Hits 14716 14765 +49 - Misses 2212 2221 +9 - Partials 734 739 +5 ``` | [Files](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | Coverage Δ | | |---|---|---| | [...id/sessionreplay/material/SliderWireframeMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay-material%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Fmaterial%2FSliderWireframeMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXktbWF0ZXJpYWwvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9tYXRlcmlhbC9TbGlkZXJXaXJlZnJhbWVNYXBwZXIua3Q=) | `97.40% <ø> (ø)` | | | [...droid/sessionreplay/material/TabWireframeMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay-material%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Fmaterial%2FTabWireframeMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXktbWF0ZXJpYWwvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9tYXRlcmlhbC9UYWJXaXJlZnJhbWVNYXBwZXIua3Q=) | `98.39% <100.00%> (+0.05%)` | :arrow_up: | | [...dog/android/sessionreplay/SessionReplayRecorder.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2FSessionReplayRecorder.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9TZXNzaW9uUmVwbGF5UmVjb3JkZXIua3Q=) | `96.43% <100.00%> (+0.03%)` | :arrow_up: | | [...order/mapper/BaseAsyncBackgroundWireframeMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FBaseAsyncBackgroundWireframeMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvQmFzZUFzeW5jQmFja2dyb3VuZFdpcmVmcmFtZU1hcHBlci5rdA==) | `95.08% <100.00%> (ø)` | | | [...ay/internal/recorder/mapper/BaseWireframeMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FBaseWireframeMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvQmFzZVdpcmVmcmFtZU1hcHBlci5rdA==) | `100.00% <100.00%> (ø)` | | | [...ionreplay/internal/recorder/mapper/ButtonMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FButtonMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvQnV0dG9uTWFwcGVyLmt0) | `87.50% <100.00%> (ø)` | | | [...nternal/recorder/mapper/CheckableTextViewMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FCheckableTextViewMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvQ2hlY2thYmxlVGV4dFZpZXdNYXBwZXIua3Q=) | `96.55% <100.00%> (ø)` | | | [...ternal/recorder/mapper/CheckableWireframeMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FCheckableWireframeMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvQ2hlY2thYmxlV2lyZWZyYW1lTWFwcGVyLmt0) | `100.00% <100.00%> (ø)` | | | [...replay/internal/recorder/mapper/DecorViewMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FDecorViewMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvRGVjb3JWaWV3TWFwcGVyLmt0) | `97.37% <100.00%> (ø)` | | | [...replay/internal/recorder/mapper/ImageViewMapper.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree&filepath=features%2Fdd-sdk-android-session-replay%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fsessionreplay%2Finternal%2Frecorder%2Fmapper%2FImageViewMapper.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZmVhdHVyZXMvZGQtc2RrLWFuZHJvaWQtc2Vzc2lvbi1yZXBsYXkvc3JjL21haW4va290bGluL2NvbS9kYXRhZG9nL2FuZHJvaWQvc2Vzc2lvbnJlcGxheS9pbnRlcm5hbC9yZWNvcmRlci9tYXBwZXIvSW1hZ2VWaWV3TWFwcGVyLmt0) | `91.89% <100.00%> (ø)` | | | ... and [13 more](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | | ... and [19 files with indirect coverage changes](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2028/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog)