Skip to content

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

Merged
xgouchet merged 1 commit into
developfrom
xgouchet/RUM-4103/add_sr_coverage_telemetry
May 13, 2024
Merged

RUM-4103 add telemetry to detect uncovered View/Drawable in Session Replay#2028
xgouchet merged 1 commit into
developfrom
xgouchet/RUM-4103/add_sr_coverage_telemetry

Conversation

@xgouchet

Copy link
Copy Markdown
Contributor

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.

@xgouchet
xgouchet requested review from a team as code owners May 10, 2024 09:51
@codecov-commenter

codecov-commenter commented May 10, 2024

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 65.75342% with 25 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.30%. Comparing base (7566da7) to head (74cf7ef).
⚠️ Report is 1529 commits behind head on develop.

Files with missing lines Patch % Lines
...ssionreplay/utils/AndroidQDrawableToColorMapper.kt 5.56% 17 Missing ⚠️
...sessionreplay/utils/LegacyDrawableToColorMapper.kt 76.47% 3 Missing and 1 partial ⚠️
...ssionreplay/internal/recorder/TreeViewTraversal.kt 88.89% 1 Missing and 1 partial ⚠️
...ternal/recorder/mapper/ActionBarContainerMapper.kt 0.00% 0 Missing and 1 partial ⚠️
...ssionreplay/utils/AndroidMDrawableToColorMapper.kt 50.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             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 with missing lines Coverage Δ
...id/sessionreplay/material/SliderWireframeMapper.kt 97.40% <ø> (ø)
...droid/sessionreplay/material/TabWireframeMapper.kt 98.39% <100.00%> (+0.05%) ⬆️
...dog/android/sessionreplay/SessionReplayRecorder.kt 96.43% <100.00%> (+0.03%) ⬆️
...order/mapper/BaseAsyncBackgroundWireframeMapper.kt 95.08% <100.00%> (ø)
...ay/internal/recorder/mapper/BaseWireframeMapper.kt 100.00% <100.00%> (ø)
...ionreplay/internal/recorder/mapper/ButtonMapper.kt 87.50% <100.00%> (ø)
...nternal/recorder/mapper/CheckableTextViewMapper.kt 96.55% <100.00%> (ø)
...ternal/recorder/mapper/CheckableWireframeMapper.kt 100.00% <100.00%> (ø)
...replay/internal/recorder/mapper/DecorViewMapper.kt 97.37% <100.00%> (ø)
...replay/internal/recorder/mapper/ImageViewMapper.kt 91.89% <100.00%> (ø)
... and 13 more

... and 19 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@@ -131,28 +138,55 @@ internal class TreeViewTraversalTest {
@Test
fun `M default to view mapper and continue W traverse { mapper for view type not provided }`(

@jonathanmos jonathanmos May 13, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the description for this test may be wrong, since the test is traversing a single view

private val colorStringFormatter: ColorStringFormatter = DefaultColorStringFormatter
private val viewBoundsResolver: ViewBoundsResolver = DefaultViewBoundsResolver
private val drawableToColorMapper: DrawableToColorMapper = DrawableToColorMapper.getDefault()
private val drawableToColorMapper: DrawableToColorMapper = DrawableToColorMapper.getDefault(InternalLogger.UNBOUND)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It means no telemetry will be sent for this one, because InternalLogger.UNBOUND is not bound to any SDK instance (and hence to the RUM feature). Is it supposed to be like that?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point thanks

@xgouchet
xgouchet force-pushed the xgouchet/RUM-4103/add_sr_coverage_telemetry branch from 4ea7ef9 to a5fff47 Compare May 13, 2024 08:50
@xgouchet
xgouchet force-pushed the xgouchet/RUM-4103/add_sr_coverage_telemetry branch from a5fff47 to 74cf7ef Compare May 13, 2024 10:31
@xgouchet
xgouchet requested a review from 0xnm May 13, 2024 12:53
@xgouchet
xgouchet merged commit e77c5f5 into develop May 13, 2024
@xgouchet
xgouchet deleted the xgouchet/RUM-4103/add_sr_coverage_telemetry branch May 13, 2024 13:49
@xgouchet xgouchet added this to the 2.10.x milestone Jul 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants