-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Monitor app launch performance for iOS and Android in RUM #33710
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
|
Created a docs card for review: https://datadoghq.atlassian.net/browse/DOCS-13047 |
rtrieu
left a comment
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.
some minor feedback to comply with our style guide, but otherwise awesome PR!
| text: Explore Datadog RUM | ||
| --- | ||
|
|
||
| <div class="alert alert-danger"> |
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.
is there a more relevant section we could move this down to?
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
| {{% /tab %}} | ||
| {{< /tabs >}} | ||
|
|
||
| If you use reportFullyDrawn to identify the moment of full display, you can use getFullyDrawnReporter to subscribe to `reportFullyDrawn` and call `RumMonitor.reportFullyDrawn`. If you do not use reportFullyDrawn, you can still call `RumMonitor.reportFullyDrawn`, but it will make sense only for cold and warm starts, rather than hot starts. |
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.
can we explain exactly why it only makes sense for cold and warm starts? what is the impact?
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
|
also, can you crop these images so that the nav sidebar and search bar are not visible? the left nav can often change.
|
Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com>
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
| variant = "<APP_VARIANT_NAME>" | ||
| ).build() | ||
|
|
||
| Datadog.initialize(this, configuration, trackingConsent) |
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.
this code snippet shows only core SDK setup, should it include example of reportAppFullyDisplayed call?
upd: like for iOS
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.
@0xnm Yes, it should. I generated this with AI, so please let me know if it an incorrect equivalent:
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
lifecycleScope.launch { loadData() }
}
private suspend fun loadData() {
val url = URL("https://api.example.com/data")
try {
val data = withContext(Dispatchers.IO) {
url.openConnection().getInputStream().bufferedReader().readText()
}
updateUI(data)
} catch (e: Exception) {
// Handle the error if needed
}
// Mark the app as fully displayed
GlobalRumMonitor.get().reportAppFullyDisplayed()
}
}
| {{% /tab %}} | ||
| {{< /tabs >}} | ||
|
|
||
| If you use reportFullyDrawn to identify the moment of full display, you can use getFullyDrawnReporter to subscribe to `reportFullyDrawn` and call `RumMonitor.reportFullyDrawn`. If you do not use reportFullyDrawn, you can still call `RumMonitor.reportFullyDrawn`, but it will make sense only for cold and warm starts, rather than hot starts. |
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.
This is not the actual API. Where getFullyDrawnReporter is coming from?
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.
That API is the Android one for the users to report TTFD. More info here
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.
Thanks! My IDE didn't find it by some reason. It is worth to add a link to this API.
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/ios/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
content/en/real_user_monitoring/application_monitoring/android/application_launch_monitoring.md
Outdated
Show resolved
Hide resolved
| {{% /tab %}} | ||
| {{< /tabs >}} | ||
|
|
||
| If you use reportFullyDrawn to identify the moment of full display, you can use getFullyDrawnReporter to subscribe to `reportFullyDrawn` and call `RumMonitor.reportFullyDrawn`. If you do not use reportFullyDrawn, you can still call `RumMonitor.reportFullyDrawn`, but it will make sense only for cold and warm starts, rather than hot starts. |
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.
Thanks! My IDE didn't find it by some reason. It is worth to add a link to this API.
Co-authored-by: Nikita Ogorodnikov <4046447+0xnm@users.noreply.github.com>
What does this PR do? What is the motivation?
Added 1 new page in RUM for iOS and 1 new page for Android documentation. Both pages explain the new application launch monitoring feature. This PR also removes the legacy application launch monitoring documentation from the
Data Collectedpage.Merge instructions
Merge readiness:
For Datadog employees:
Your branch name MUST follow the
<name>/<description>convention and include the forward slash (/). Without this format, your pull request will not pass 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.
[6/5/2025] Merge queue has been disabled on the documentation repo. If you have write access to the repo, the PR has been reviewed by a Documentation team member, and all of the required checks have passed, you can use the Squash and Merge button to merge the PR. If you don't have write access, or you need help, reach out in the #documentation channel in Slack.
Additional notes