feat(attributes): Add app vitals start attributes#353
Conversation
Define the first interactive screen for app start spans so SDKs can report foreground starts and omit it for background starts without rendered UI. Co-authored-by: Cursor <cursoragent@cursor.com>
Semver Impact of This PR🟡 Minor (new features) 📋 Changelog PreviewThis is how your changes will appear in the changelog. New Features ✨Attributes
Bug Fixes 🐛
🤖 This preview updates automatically when you update the PR. |
There was a problem hiding this comment.
Pull request overview
Adds a new semantic convention attribute to represent the first interactive UI screen after an app start, enabling SDKs to distinguish foreground app starts (UI rendered) from background app starts (no UI).
Changes:
- Introduced new attribute model:
app.vitals.start.screen - Regenerated TypeScript conventions output to include the new attribute constant/types/metadata
- Regenerated Python conventions output to include the new attribute name/metadata/typing
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| model/attributes/app/app__vitals__start__screen.json | Adds the source-of-truth attribute definition for app.vitals.start.screen. |
| javascript/sentry-conventions/src/attributes.ts | Regenerated TS exports/types/metadata to include the new attribute. |
| python/src/sentry_conventions/attributes.py | Regenerated Python constants/metadata/types to include the new attribute. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Propagate the app start screen description punctuation into generated TypeScript and Python convention files so CI generation stays clean. Co-authored-by: Cursor <cursoragent@cursor.com>
Define the launch trigger reason for app start spans so mobile SDKs can report normalized platform-specific causes alongside the start screen. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the app start reason convention description focused on the trigger semantics and propagate the generated TypeScript and Python outputs. Co-authored-by: Cursor <cursoragent@cursor.com>
| }, | ||
| isInOtel: false, | ||
| example: 'push', | ||
| sdks: ['sentry.cocoa', 'sentry.java.android', 'sentry.javascript.react-native', 'sentry.dart.flutter'], |
There was a problem hiding this comment.
dunno if we need to mention maui here?
There was a problem hiding this comment.
this sdks field is not really used anywhere, only informational
added it here as well though to be correct
List sentry.dotnet.maui for app start reason and screen attributes so SDK metadata reflects MAUI support in generated packages. Co-authored-by: Cursor <cursoragent@cursor.com>
Add
app.vitals.start.screenandapp.vitals.start.reasonfor app start spans.The screen attribute records the first interactive screen after launch, while the reason attribute records the normalized launch trigger such as
push. Omitting the screen attribute indicates a background app start where no UI was rendered.Generated the TypeScript and Python convention outputs from the new attribute models.