Skip to content

Commit b94f509

Browse files
feat(apple): Explain UIViewController scope logic (#11816)
Explain how the SDK decides on the parent-child relationship for UIViewController transactions and which UIViewController transactions to put on the scope. Co-authored-by: Liza Mock <[email protected]>
1 parent cbb35e4 commit b94f509

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@ 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+
### 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.
39+
3240
To disable the `UIViewController` Tracing:
3341

3442

0 commit comments

Comments
 (0)