Skip to content

Commit 869fc41

Browse files
Update docs/platforms/apple/common/tracing/instrumentation/automatic-instrumentation.mdx
Co-authored-by: Liza Mock <[email protected]>
1 parent 5a1591a commit 869fc41

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

docs/platforms/apple/common/tracing/instrumentation/automatic-instrumentation.mdx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@ The SDK creates spans to provide insight into the time consumed by each of the m
2929

3030
![`UIViewController` Transaction](./img/ui-view-controller-transaction.png)
3131

32-
For nested UIViewControllers, the SDK creates a parent-child relationship in the transaction based on which UIViewController your app loads first. The SDK starts a new UIViewController transaction and binds it to the scope when there is no active transaction on the scope yet, except for [user interaction](#user-interaction-tracing) transactions, which the SDK finishes and removes from the scope when starting a new UIViewController transaction. As long as the UIViewController transaction is on the scope, the SDK starts new UIViewController spans as child spans of the UIViewController on the scope so that you can see all UIViewControllers of a screen in one transaction. When the SDK wants to start a new UIViewController transaction, and there is already a transaction bound to the scope, which can be the case if you do that manually, the SDK doesn't bind the transaction to the scope. So, the UIViewController transaction will function normally, but it will miss other auto-generated performance spans, such as HTTP, file IO, or core data spans because the SDK adds these to the transaction bound to the scope.
32+
### Nested View Controllers
33+
34+
The SDK sets up a parent-child relationship for nested UIViewControllers, starting with the first UIViewController that your app loads. If there's no active transaction on the scope, the SDK will start a new UIViewController transaction and bind it to the scope unless there's a [user interaction](#user-interaction-tracing) transaction already on the scope, in which case this will be closed and removed first.
35+
36+
While a UIViewController transaction is active on the scope, the SDK will add any new UIViewController spans as child spans of that active transaction. This creates a unified view of all UIViewControllers on a screen in a single transaction.
37+
38+
If another transaction is already bound to the scope (if it's been set manually, for example) the SDK won't be able to bind a new UIViewController transaction to the scope. This means that the new transaction will work, but won’t capture other auto-generated spans, like HTTP, file IO, or Core Data, which can only be added to transactions that are bound to the scope.
3339

3440
To disable the `UIViewController` Tracing:
3541

0 commit comments

Comments
 (0)