-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Decouple iOS Error Tracking docs from RUM #31812
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 DOCS-12143 for in-depth review |
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.
Looks great, Rosa! I added comments for readability, link fixes, etc., but overall I found this really easy to follow. You did an awesome job arranging everything!
|
||
### Step 2 - Specify application details in the UI | ||
|
||
1. Navigate to **Error Tracking** > **[Setup][2]** > **Mobile and Browser**. |
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.
1. Navigate to **Error Tracking** > **[Setup][2]** > **Mobile and Browser**. | |
1. Navigate to **Error Tracking** > **[Settings][2]** > **Browser and Mobile**. |
2. Select `iOS` as the application type and enter an application name. | ||
3. Click **Create Application** to generate a unique Datadog application ID and client token. |
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.
2. Select `iOS` as the application type and enter an application name. | |
3. Click **Create Application** to generate a unique Datadog application ID and client token. | |
2. Click **New Application**. | |
3. Enter an application name and select **iOS** as the application type. | |
4. Click **Create Application** to generate a unique Datadog application ID and client token. |
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 UI in Org2 looks a little different from what I'm seeing in your PR, but if you're looking at a different feature flag or anything like that, just ignore these!
|
||
The SDK should be initialized as early as possible in the app lifecycle, specifically in the `AppDelegate`'s `application(_:didFinishLaunchingWithOptions:)` callback. This ensures all measurements, including application startup duration, are captured correctly. For apps built with SwiftUI, you can use `@UIApplicationDelegateAdaptor` to hook into the `AppDelegate`. | ||
|
||
<div class="alert alert-warning">Initializing the SDK elsewhere (for example later during view loading) may result in inaccurate or missing telemetry, especially around app startup performance.</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.
<div class="alert alert-warning">Initializing the SDK elsewhere (for example later during view loading) may result in inaccurate or missing telemetry, especially around app startup performance.</div> | |
<div class="alert alert-warning">Initializing the SDK elsewhere (for example, later during view loading) may result in inaccurate or missing telemetry, especially around app startup performance.</div> |
WebViewTracking.disable(webView: webview) | ||
``` | ||
|
||
For more information, see [Web View Tracking][2]. |
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.
For more information, see [Web View Tracking][2]. | |
For more information, see [Web View Tracking][3]. |
|
||
### Step 4 - Add crash reporting | ||
|
||
Error tracking processes and displays all types of errors in a unified interface, while crash reporting captures fatal crashes when your app terminates unexpectedly. |
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 originally read "processes and displays" as nouns, and had to read the sentence again to realize that they were verbs! I wonder if there's a way to rephrase it, like:
Error tracking processes and displays all types of errors in a unified interface, while crash reporting captures fatal crashes when your app terminates unexpectedly. | |
Crash reporting captures fatal crashes when your app terminates unexpectedly, in addition to the errors that Error Tracking displays in a unified interface. |
Also, I noticed that "crash reporting" is sometimes in sentence case and sometimes in title case in this section; which should it be?
## Limitations | ||
- See [Supported versions][20] for a list operating system versions and platforms that are compatible with the iOS SDK. |
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.
- See [Supported versions][20] for a list operating system versions and platforms that are compatible with the iOS SDK. | |
- See [Supported versions][20] for a list of operating system versions and platforms that are compatible with the iOS SDK. |
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 would move this information to the beginning. It feels odd to have a compatibility list after all this info - I think users are likely to look for this info when they're trying to figure out whether they can use a feature to solve a problem they're facing.
## Limitations | ||
- See [Supported versions][20] for a list operating system versions and platforms that are compatible with the iOS SDK. | ||
- `.dSYM` files are limited in size to **2 GB** each. |
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.
Maybe move this to the section about .dSYM files?
### Step 1 - Add the iOS SDK as a dependency | ||
|
||
Declare the iOS library as a dependency depending on your package manager. Swift Package Manager (SPM) is recommended. | ||
Add the iOS SDK to your project using your preferred package manager. Swift Package Manager (SPM) is recommended. |
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.
Add the iOS SDK to your project using your preferred package manager. Swift Package Manager (SPM) is recommended. | |
Add the iOS SDK to your project using your preferred package manager. Datadog recommends using Swift Package Manager (SPM). |
|
||
[1]: https://app.datadoghq.com/rum/application/create | ||
[2]: /real_user_monitoring/ios/web_view_tracking/ | ||
[3]: /real_user_monitoring/ios/data_collected/ |
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 these links need to go into the list at the bottom, because they're out of tabs now! I noticed that the links in the next section are going to unexpected places, and I think it's because these are kind of "stealing" the link references.
{{< /site-region >}} | ||
The iOS SDK automatically tracks user sessions depending on options provided at the SDK initialization. To add GDPR compliance for your EU users and other [initialization parameters][6] to the SDK configuration, see the [Set tracking consent documentation](#set-tracking-consent-gdpr-compliance). | ||
The iOS SDK automatically tracks user sessions based on the options you provide during SDK initialization. To add GDPR compliance for your EU users (required for apps targeting European users) and configure other [initialization parameters][5], see the [Set tracking consent documentation](#set-tracking-consent-gdpr-compliance). |
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 didn't realize this GDPR section was in two places! Might be worth making a shortcode so we don't have to maintain it in two different places? Doesn't have to be now, though 🙂
What does this PR do? What is the motivation?
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