Skip to content

feat(tracing): Track appLoaded and extendAppStart adoption#6426

Merged
antonis merged 2 commits into
mainfrom
feat/track-app-loaded-and-extended-app-start-adoption
Jul 10, 2026
Merged

feat(tracing): Track appLoaded and extendAppStart adoption#6426
antonis merged 2 commits into
mainfrom
feat/track-app-loaded-and-extended-app-start-adoption

Conversation

@antonis

@antonis antonis commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Type of change

  • Bugfix
  • New feature
  • Enhancement (feature-adoption telemetry)
  • Refactoring

Description

Registers no-op AppLoaded and ExtendedAppStart integrations on first call so the names flow through to event.sdk.integrations. ExtendedAppStart covers all three extend API entry points: extendAppStart, getExtendedAppStartSpan, and finishExtendedAppStart.

Bundled together because both markers live in packages/core/src/js/tracing/integrations/appStart.ts — splitting them into separate PRs would produce mechanical merge conflicts on the shared imports.

Motivation and Context

Part of #6415.

  • Sentry.appLoaded() explicitly signals app-start end but leaves no distinctive event fingerprint today.
  • Sentry.extendAppStart() / getExtendedAppStartSpan() / finishExtendedAppStart() are new experimental APIs that produce standalone app-start transactions indistinguishable from auto-captured ones.

How did you test it?

  • New tests in test/tracing/integrations/appStart.test.ts: an AppLoaded marker test in the existing appLoaded() API describe block and a parameterized it.each for the three ExtendedAppStart entry points.
  • Existing app-start tests continue to pass.
  • Full local suite green.

Note on semantics

ExtendedAppStart fires even if the underlying integration no-ops (e.g., user called extendAppStart without enabling _experiments.enableStandaloneAppStartTracing). This is intentional — measures API adoption, not just successful use.

Checklist

Base

Stacked on top of #6421. When #6421 merges, GitHub will automatically retarget this PR to main.

Refs: #6415

antonis added 2 commits July 9, 2026 08:47
Register a no-op `GlobalErrorBoundary` integration when the
component mounts so the name flows through to
`event.sdk.integrations` — the same channel used for feature-
adoption signals like `MobileFeedback` and `AppStart`.

Also introduces a shared `registerFeatureMarker` helper.
Subsequent markers for other opt-in features
(NavigationContainer, ExpoRouter error boundary, AppLoaded, ...)
will use this helper — see #6415.

Refs: #6415
Register no-op `AppLoaded` and `ExtendedAppStart` integrations on
first call so the names flow through to
`event.sdk.integrations`. `ExtendedAppStart` covers all three
extend API entry points: `extendAppStart`,
`getExtendedAppStartSpan`, and `finishExtendedAppStart`.

Refs: #6415
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • feat(tracing): Track appLoaded and extendAppStart adoption by antonis in #6426
  • feat(core): Track GlobalErrorBoundary adoption by antonis in #6421

🤖 This preview updates automatically when you update the PR.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 1ccef8e

@antonis antonis marked this pull request as ready for review July 9, 2026 06:59

@lucas-zimerman lucas-zimerman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@lucas-zimerman lucas-zimerman added the ready-to-merge Triggers the full CI test suite label Jul 9, 2026
@sentry

sentry Bot commented Jul 10, 2026

Copy link
Copy Markdown

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
Sentry RN io.sentry.reactnative.sample 8.17.2 (97) Release

⚙️ sentry-react-native Build Distribution Settings

@github-actions

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3829.80 ms 1224.42 ms -2605.38 ms
Size 4.98 MiB 6.53 MiB 1.55 MiB

Baseline results on branch: feat/track-global-error-boundary-adoption

Startup times

Revision Plain With Sentry Diff
5204779+dirty 3842.28 ms 1219.11 ms -2623.17 ms

App size

Revision Plain With Sentry Diff
5204779+dirty 4.98 MiB 6.53 MiB 1.55 MiB

Base automatically changed from feat/track-global-error-boundary-adoption to main July 10, 2026 06:08
@antonis antonis merged commit 993bd3b into main Jul 10, 2026
131 of 145 checks passed
@antonis antonis deleted the feat/track-app-loaded-and-extended-app-start-adoption branch July 10, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite skip-changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants