-
Notifications
You must be signed in to change notification settings - Fork 1.2k
RUM-9755: Add Jetpack Compose Instrumentation documentation #29110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Preview links (active after the
|
e3fd731
to
a831dc4
Compare
319bef2
to
6fe16fd
Compare
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Show resolved
Hide resolved
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Outdated
Show resolved
Hide resolved
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Outdated
Show resolved
Hide resolved
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Show resolved
Hide resolved
6fe16fd
to
91868a1
Compare
Created docs card for docs review: https://datadoghq.atlassian.net/browse/DOCS-10800 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, I left few suggestions
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Outdated
Show resolved
Hide resolved
## Overview | ||
If your application uses Jetpack Compose, you can instrument it manually or automatically with the Datadog Gradle Plugin. This enables Real User Monitoring (RUM) similar to what is available for Android Views. | ||
|
||
<div class="alert alert-info"><p>Note: The minimum supported Kotlin version is 1.9.23.</p></div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not 1.9.0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be compatible with even earlier version like 1.8, but the version that we've tested starts from 1.9.23.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My point here is that it is probably compatible with at least 1.9.20? Maybe we can check it?
Maybe it is even compatible with 1.9.0.
Not sure if we should check with 1.8.x at this point, but checking in the boundaries of the minor release makes sense imo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea, I create a ticket here: https://datadoghq.atlassian.net/jira/software/c/projects/RUM/boards/5826?assignee=712020%3A7257b1eb-c3eb-42f9-aa98-c13e43cb6f31&selectedIssue=RUM-9882
After testing we may update the minimum version here.
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Outdated
Show resolved
Hide resolved
As described in the [Setup section][2], declare the [Datadog Gradle Plugin][3] in your build script and apply it to each module you want to instrument. | ||
|
||
<div class="alert alert-info"><p> | ||
The Datadog Gradle Plugin scans @Composable functions and adds Semantics tags to their modifiers. These tags allow Datadog RUM to track user interactions on Compose components with the correct target information. The plugin also detects NavHost usage and listens to Jetpack Compose navigation events. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Datadog Gradle Plugin scans @Composable functions and adds Semantics tags to their modifiers. These tags allow Datadog RUM to track user interactions on Compose components with the correct target information. The plugin also detects NavHost usage and listens to Jetpack Compose navigation events. | |
The Datadog Gradle Plugin scans `@Composable` functions and adds `Semantics` tags to their modifiers. These tags allow Datadog RUM to track user interactions on Compose components with the correct target information. The plugin also detects `NavHost` usage and listens to Jetpack Compose navigation events. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I put it in a "alert-info" which doesn't support Markdown here.
{{< /tabs >}} | ||
|
||
## Automatic Instrumentation | ||
As described in the [Setup section][2], declare the [Datadog Gradle Plugin][3] in your build script and apply it to each module you want to instrument. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need this sentence if we should how to setup Datadog Gradle Plugin just below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it can be a good reminder here.
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Outdated
Show resolved
Hide resolved
{{% /tab %}} | ||
{{% tab "Kotlin" %}} | ||
```kotlin | ||
datadog{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
datadog{ | |
datadog { |
.../en/real_user_monitoring/mobile_and_tv_monitoring/android/jetpack_compose_instrumentation.md
Outdated
Show resolved
Hide resolved
91868a1
to
8d09a89
Compare
{{% /tab %}} | ||
{{< /tabs >}} | ||
|
||
### Step 2 - Enable actions tracking option in `RumConfiguration` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm slightly confused as to why this is a required step.
What if customer's don't want action tracking and just want view tracking?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More technically speaking, this is a structure limitation of our SDK, we need to make user call this API to let our dd-sdk-android-rum
module knows that user has already imported dd-sdk-android-compose
module in their app, then dd-sdk-android-rum
can use the compose related logic to track actions.
If customer doesn't want Compose action tracking, they can just not call it. should I mention explicitly in this part?
What does this PR do? What is the motivation?
Add documentation page to explain how to instrument Jetpack Compose manually or automatically using the Datadog Gradle Plugin.
Merge instructions
Merge readiness:
dd-sdk-android
2.21.0dd-sdk-android-gradle-plugin
1.17.0For Datadog employees:
Merge queue is enabled in this repo. Your branch name MUST follow the
<name>/<description>
convention and include the forward slash (/
). Without this format, your pull request will not pass in CI, the GitLab pipeline will not run, and you won't get a branch preview. Getting a branch preview makes it easier for us to check any issues with your PR, such as broken links.If your branch doesn't follow this format, rename it or create a new branch and PR.
To have your PR automatically merged after it receives the required reviews, add the following PR comment:
Additional notes