feat(chunk): Add version dispatch for Android trace profiles - #672
Merged
Conversation
Relay will soon tag legacy Android trace profiles with version "2.android-trace" instead of omitting the version field. Commit updates UnmarshalJSON to route this new version to AndroidChunk rather than misrouting it to SampleChunk via the default case. Adds a Version field to AndroidChunk so the version string survives JSON round-trips through the read path (e.g. getRawChunk). Legacy chunks without a version are unaffected thanks to omitempty. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
manessaraj
approved these changes
Jul 3, 2026
markushi
added a commit
to getsentry/sentry
that referenced
this pull request
Jul 13, 2026
The Android SDK can now emit **sample v2** profiles in addition to the legacy android trace format. This wires the profiling pipeline to be able to process both. The whole pipeline previously always assumed that `platform="android"` provided a profile in the Android trace format - regardless if `version="2"` was set or not. `platform: "java"` profiles (aka profiles from backend services) are intentionally not deobfuscated for now, but support could be easily added. Also removes `get_data_category`, dead code since #81481. > [!NOTE] > `vroom` and `vroomrs` need to be updated as well to support the sample v2 Android format. > See getsentry/vroom#672 (was automatically deployed earlier this week) > and getsentry/vroomrs#93 (landed in `0.1.22`, which is bumped in this PR as well) ### Testing - Unit tests for the classifiers, frame conversion and the sample v2 merge/stack-remap (inline expansion + native passthrough). - Symbolicator integration tests for sample v2 (basic + inline) plus a full `process_profile_task` run. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0xadam-brown
added a commit
to getsentry/sentry-java
that referenced
this pull request
Jul 24, 2026
Commit updates the platform used with ANR profiles from Java to Android so that we can properly bill ANR profiling under UI Profile Hours rather than Continuous Profile Hours. Depends on the updates made in [Relay #6183](getsentry/relay#6183), [getsentry #118849](getsentry/sentry#118849), [vroomrs #93](getsentry/vroomrs#93), and [vroom #672](getsentry/vroom#672).
Merged
12 tasks
0xadam-brown
added a commit
to getsentry/sentry-java
that referenced
this pull request
Jul 28, 2026
Commit updates the platform used with ANR profiles from Java to Android so that we can properly bill ANR profiling under UI Profile Hours rather than Continuous Profile Hours. Depends on the updates made in [Relay #6183](getsentry/relay#6183), [getsentry #118849](getsentry/sentry#118849), [vroomrs #93](getsentry/vroomrs#93), and [vroom #672](getsentry/vroom#672). # Conflicts: # CHANGELOG.md
0xadam-brown
added a commit
to getsentry/sentry-java
that referenced
this pull request
Jul 28, 2026
Commit updates the platform used with ANR profiles from Java to Android so that we can properly bill ANR profiling under UI Profile Hours rather than Continuous Profile Hours. Depends on the updates made in [Relay #6183](getsentry/relay#6183), [getsentry #118849](getsentry/sentry#118849), [vroomrs #93](getsentry/vroomrs#93), and [vroom #672](getsentry/vroom#672). # Conflicts: # CHANGELOG.md
0xadam-brown
added a commit
to getsentry/sentry-java
that referenced
this pull request
Jul 29, 2026
#5836) Commit updates the platform used with ANR profiles from Java to Android so that we can properly bill ANR profiling under UI Profile Hours rather than Continuous Profile Hours. Depends on the updates made in [Relay #6183](getsentry/relay#6183), [getsentry #118849](getsentry/sentry#118849), [vroomrs #93](getsentry/vroomrs#93), and [vroom #672](getsentry/vroom#672). Co-authored-by: Markus Hintersteiner <markus.hintersteiner@sentry.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Relay will soon tag Android trace profiles with version
2.android-traceinstead of omitting the version field. I've updated UnmarshalJSON so that any profiles with the new version will continue to be routed to AndroidChunk. The existing no-version path has been preserved for backward compatibility.I've also added a Version field to AndroidChunk so the version string survives JSON round-trips through the read path (e.g. getRawChunk). Legacy chunks without a version are unaffected thanks to omitempty.
Legal Boilerplate
Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.
#skip-changelog