From 392700e0a24d40fc969f75a415dfb2b72bade741 Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 14:14:25 -0400 Subject: [PATCH 01/10] wip --- .../components/charts/screenCharts.tsx | 306 +++++++----------- 1 file changed, 125 insertions(+), 181 deletions(-) diff --git a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx index 73ae3ccf2e4b5c..de9cfd8b067151 100644 --- a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx +++ b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx @@ -9,12 +9,14 @@ import {t} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import type {Series} from 'sentry/types/echarts'; import {defined} from 'sentry/utils'; -import {tooltipFormatterUsingAggregateOutputType} from 'sentry/utils/discover/charts'; +import {EventsMetaType} from 'sentry/utils/discover/eventView'; import {MutableSearch} from 'sentry/utils/tokenizeSearch'; import {formatVersion} from 'sentry/utils/versions/formatVersion'; -import Chart, {ChartType} from 'sentry/views/insights/common/components/chart'; -import MiniChartPanel from 'sentry/views/insights/common/components/miniChartPanel'; +// TODO(release-drawer): Only used in mobile/screenload/components/ +// eslint-disable-next-line no-restricted-imports +import {InsightsLineChartWidget} from 'sentry/views/insights/common/components/insightsLineChartWidget'; import {useMetrics} from 'sentry/views/insights/common/queries/useDiscover'; +import {DiscoverSeries} from 'sentry/views/insights/common/queries/useDiscoverSeries'; import {useReleaseSelection} from 'sentry/views/insights/common/queries/useReleases'; import {useTopNMetricsMultiSeries} from 'sentry/views/insights/common/queries/useTopNDiscoverMultiSeries'; import {formatVersionAndCenterTruncate} from 'sentry/views/insights/common/utils/centerTruncate'; @@ -24,7 +26,6 @@ import useCrossPlatformProject from 'sentry/views/insights/mobile/common/queries import {ScreensBarChart} from 'sentry/views/insights/mobile/screenload/components/charts/screenBarChart'; import { CHART_TITLES, - OUTPUT_TYPE, YAXIS_COLUMNS, } from 'sentry/views/insights/mobile/screenload/constants'; import {transformDeviceClassEvents} from 'sentry/views/insights/mobile/screenload/utils'; @@ -88,6 +89,8 @@ export function ScreenCharts({additionalFilters}: Props) { useEap, ]); + const search = new MutableSearch(queryString); + const { data: releaseSeriesArray, isPending: isSeriesLoading, @@ -101,7 +104,7 @@ export function ScreenCharts({additionalFilters}: Props) { 'avg(measurements.time_to_full_display)', 'count()', ], - search: queryString, + search, }, 'api.starfish.mobile-screen-series' ); @@ -118,9 +121,22 @@ export function ScreenCharts({additionalFilters}: Props) { transformedReleaseSeries[YAXIS_COLUMNS[val]] = {}; }); - const ttidSeries: Series[] = []; - const ttfdSeries: Series[] = []; - const countSeries: Series[] = []; + const seriesMap: Record< + | 'avg(measurements.time_to_initial_display)' + | 'avg(measurements.time_to_full_display)' + | 'count()', + DiscoverSeries[] + > = { + 'avg(measurements.time_to_initial_display)': [], + 'avg(measurements.time_to_full_display)': [], + 'count()': [], + }; + + let chartAliases = {}; + const meta: EventsMetaType = { + fields: {}, + units: {}, + }; if (defined(releaseSeriesArray)) { releaseSeriesArray.forEach(release => { @@ -128,20 +144,41 @@ export function ScreenCharts({additionalFilters}: Props) { const isPrimary = releaseName === primaryRelease; const colors = theme.chart.getColorPalette(3); const color = isPrimary ? colors[0] : colors[1]; - ttidSeries.push({ - ...release.data['avg(measurements.time_to_initial_display)'], - color, - seriesName: formatVersion(releaseName, true), - }); - ttfdSeries.push({ - ...release.data['avg(measurements.time_to_full_display)'], - color, - seriesName: formatVersion(releaseName, true), - }); - countSeries.push({ - ...release.data['count()'], - color, - seriesName: formatVersion(releaseName, true), + const version = formatVersion(releaseName, true); + + const seriesNames = [ + 'avg(measurements.time_to_initial_display)', + 'avg(measurements.time_to_full_display)', + 'count()', + ] as const; + + seriesNames.forEach(seriesName => { + const releaseSeries = release.data[seriesName]; + chartAliases = { + ...chartAliases, + [`${seriesName} ${version}`]: version, + }; + + if (releaseSeries.meta?.fields[seriesName]) { + meta.fields = { + ...meta.fields, + [`${seriesName} ${version}`]: releaseSeries.meta?.fields[seriesName], + }; + } + + if (releaseSeries.meta?.units[seriesName]) { + meta.units = { + ...meta.units, + [`${seriesName} ${version}`]: releaseSeries.meta?.units[seriesName], + }; + } + + seriesMap[seriesName].push({ + data: releaseSeries.data, + meta, + color, + seriesName: `${seriesName} ${version}`, + }); }); }); } @@ -182,37 +219,16 @@ export function ScreenCharts({additionalFilters}: Props) { return ( -
- - - - - - + + - - tooltipFormatterUsingAggregateOutputType( - value, - OUTPUT_TYPE[YAxis.TTID] - ), - }} - error={seriesError} - /> - - - - - - - - - + + + + + + - - tooltipFormatterUsingAggregateOutputType( - value, - OUTPUT_TYPE[YAxis.TTFD] - ), - }} - error={seriesError} - /> - - - -
- - - - tooltipFormatterUsingAggregateOutputType( - value, - OUTPUT_TYPE[YAxis.COUNT] - ), - }} + : '', + }, + ]} + chartKey="spansChart" + chartHeight={80} + isLoading={isDeviceClassEventsLoading} + /> + + + - + + + +
@@ -364,10 +308,10 @@ export function ScreenCharts({additionalFilters}: Props) { return
{renderCharts()}
; } -const StyledRow = styled('div')` +const FourChartContainer = styled('div')` display: grid; grid-template-columns: repeat(2, 1fr); - grid-column-gap: ${space(2)}; + gap: ${space(2)}; `; const ChartsContainerItem = styled('div')` From deec82188dc0bdfe04491bc4ab8d7a3213a49c89 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Thu, 29 May 2025 11:06:58 -0700 Subject: [PATCH 02/10] ref(grouping): Switch to using split enhancements (#92180) This switches from using non-split enhancements (and sometimes also calculating split enhancements) to just using the split enhancements. In the time since the experiment was enabled, across over 150 million events, the results of the split enhancements have matched* those of the non-split ones, and the split enhancements have been running on average about 45% faster than the non-split ones. (See https://github.com/getsentry/sentry/pull/92180 for a graph comparing the average times.) * To be more precise, they have matched except in cases where the split enhancements have given different/better hints, in ways we expect: - Because the rules are split, hints about marking things in-app or out of app only include the `+/-app` part of the rule, and hints about ignoring/unignoring only include the `+/-group` part. - In cases where both an in-app and contributes change have happened, both are now included in the hint. This can be seen in the snapshot changes included in this PR. --- src/sentry/grouping/enhancer/__init__.py | 221 +++++------------- .../test_enhancer/test_basic_parsing/2.pysnap | 105 ++++++++- .../contributing_system_and_app_frames.pysnap | 4 +- .../contributing_system_and_app_frames.pysnap | 4 +- .../newstyle@2019_05_08/actix.pysnap | 4 +- .../callee_guaranteed.pysnap | 26 +-- .../contributing_system_and_app_frames.pysnap | 14 +- .../contributing_system_frames.pysnap | 12 +- .../exception_cocoa_nserror.pysnap | 4 +- ...n_groups_two_exceptions_with_frames.pysnap | 4 +- .../newstyle@2019_05_08/in_app_in_ui.pysnap | 4 +- ...javascript_xbrowser_sentryui_safari.pysnap | 4 +- ...n_grouping_enhancer_away_from_crash.pysnap | 4 +- ...hon_grouping_enhancer_towards_crash.pysnap | 8 +- .../unreal_ensure_check_fail_on_mac.pysnap | 82 +++---- .../unreal_event_capture_mac.pysnap | 32 +-- .../newstyle@2023_01_11/actix.pysnap | 6 +- .../callee_guaranteed.pysnap | 36 +-- .../cocoa_dispatch_client_callout.pysnap | 6 +- .../contributing_system_and_app_frames.pysnap | 14 +- .../contributing_system_frames.pysnap | 12 +- .../exception_cocoa_nserror.pysnap | 8 +- ...n_groups_two_exceptions_with_frames.pysnap | 4 +- .../frame_ignores_dartlang_sdk.pysnap | 6 +- .../frame_ignores_sentry_dart_packages.pysnap | 30 +-- .../frame_ignores_sentry_dart_sdk.pysnap | 6 +- .../frame_ignores_sentry_flutter_sdk.pysnap | 6 +- .../newstyle@2023_01_11/in_app_in_ui.pysnap | 10 +- .../newstyle@2023_01_11/java_chained.pysnap | 8 +- .../newstyle@2023_01_11/java_minimal.pysnap | 6 +- .../javascript_polyfills.pysnap | 14 +- ...javascript_xbrowser_sentryui_safari.pysnap | 4 +- .../node_low_level_async.pysnap | 10 +- ...n_grouping_enhancer_away_from_crash.pysnap | 4 +- ...hon_grouping_enhancer_towards_crash.pysnap | 8 +- .../unreal_assert_mac.pysnap | 4 +- ...unreal_assertion_check_fail_android.pysnap | 4 +- ...eal_assertion_check_fail_on_windows.pysnap | 14 +- .../unreal_ensure_check_fail_on_mac.pysnap | 78 +++---- ...unreal_ensure_check_fail_on_windows.pysnap | 14 +- .../unreal_event_capture_mac.pysnap | 32 +-- tests/sentry/grouping/test_enhancer.py | 21 +- .../grouping/test_grouphash_metadata.py | 37 +-- .../test_get_project_config/REGION.pysnap | 4 +- 44 files changed, 452 insertions(+), 486 deletions(-) diff --git a/src/sentry/grouping/enhancer/__init__.py b/src/sentry/grouping/enhancer/__init__.py index bce9322e0b0652..7c586d8d729cf7 100644 --- a/src/sentry/grouping/enhancer/__init__.py +++ b/src/sentry/grouping/enhancer/__init__.py @@ -121,9 +121,6 @@ def get_rust_enhancements( raise InvalidEnhancerConfig(str(e)) -EMPTY_RUST_ENHANCEMENTS = get_rust_enhancements("config_string", "") - - # TODO: Convert this into a typeddict in ophio RustExceptionData = dict[str, bytes | None] @@ -470,12 +467,6 @@ class Enhancements: # from cache. # See ``GroupingConfigLoader._get_enhancements`` in src/sentry/grouping/api.py. - # TODO: Once we switch to always using split enhancements, these can go away - classifier_rules: list[EnhancementRule] = [] - contributes_rules: list[EnhancementRule] = [] - classifier_rust_enhancements: RustEnhancements = EMPTY_RUST_ENHANCEMENTS - contributes_rust_enhancements: RustEnhancements = EMPTY_RUST_ENHANCEMENTS - def __init__( self, rules: list[EnhancementRule], @@ -493,17 +484,17 @@ def __init__( self.rust_enhancements = merge_rust_enhancements(self.bases, rust_enhancements) self.run_split_enhancements = version == 3 - if self.run_split_enhancements: - classifier_config, contributes_config = split_enhancement_configs or _split_rules(rules) - self.classifier_rules = classifier_config.rules - self.contributes_rules = contributes_config.rules - self.classifier_rust_enhancements = merge_rust_enhancements( - self.bases, classifier_config.rust_enhancements, type="classifier" - ) - self.contributes_rust_enhancements = merge_rust_enhancements( - self.bases, contributes_config.rust_enhancements, type="contributes" - ) + classifier_config, contributes_config = split_enhancement_configs or _split_rules(rules) + + self.classifier_rules = classifier_config.rules + self.contributes_rules = contributes_config.rules + self.classifier_rust_enhancements = merge_rust_enhancements( + self.bases, classifier_config.rust_enhancements, type="classifier" + ) + self.contributes_rust_enhancements = merge_rust_enhancements( + self.bases, contributes_config.rust_enhancements, type="contributes" + ) def apply_category_and_updated_in_app_to_frames( self, @@ -524,29 +515,14 @@ def apply_category_and_updated_in_app_to_frames( rust_exception_data = make_rust_exception_data(exception_data) with metrics.timer("grouping.enhancements.get_in_app") as metrics_timer_tags: - metrics_timer_tags["split"] = False - category_and_in_app_results = self.rust_enhancements.apply_modifications_to_frames( - match_frames, rust_exception_data - ) - - if self.run_split_enhancements: - with metrics.timer("grouping.enhancements.get_in_app") as metrics_timer_tags: - metrics_timer_tags["split"] = True - category_and_in_app_results_split = ( - self.classifier_rust_enhancements.apply_modifications_to_frames( - match_frames, rust_exception_data - ) + metrics_timer_tags["split"] = True + category_and_in_app_results = ( + self.classifier_rust_enhancements.apply_modifications_to_frames( + match_frames, rust_exception_data ) - split_enhancement_misses: list[Any] = [] - else: - category_and_in_app_results_split = category_and_in_app_results + ) - for i, frame, (category, in_app), (category_split, in_app_split) in zip( - range(len(frames)), - frames, - category_and_in_app_results, - category_and_in_app_results_split, - ): + for frame, (category, in_app) in zip(frames, category_and_in_app_results): if in_app is not None: # If the `in_app` value changes as a result of this call, the original value (in # integer form) will be added to `frame.data` under the key "orig_in_app" @@ -554,23 +530,6 @@ def apply_category_and_updated_in_app_to_frames( if category is not None: set_path(frame, "data", "category", value=category) - # If we're running the split enhancements experiment, track any places where the results - # are different from what we expect - if self.run_split_enhancements: - _check_split_enhancements_frame_category_and_in_app( - i, category, category_split, in_app, in_app_split, split_enhancement_misses - ) - - if self.run_split_enhancements: - logger.info( - "grouping.split_enhancements.classifier_results", - extra=( - {"outcome": "failure", "frames": frames, "misses": split_enhancement_misses} - if split_enhancement_misses - else {"outcome": "success"} - ), - ) - def assemble_stacktrace_component_legacy( self, variant_name: str, @@ -652,61 +611,40 @@ def assemble_stacktrace_component( """ with metrics.timer("grouping.enhancements.get_contributes_and_hint") as metrics_timer_tags: - metrics_timer_tags.update({"split": False, "variant": variant_name}) - - # TODO: Fix this type to list[MatchFrame] once it's fixed in ophio - match_frames: list[Any] = [create_match_frame(frame, platform) for frame in frames] + metrics_timer_tags.update({"split": True, "variant": variant_name}) - rust_frames = [RustFrame(contributes=c.contributes) for c in frame_components] rust_exception_data = make_rust_exception_data(exception_data) - # Modify the rust frames by applying +group/-group rules and getting hints for both those - # changes and the `in_app` changes applied by earlier in the ingestion process by - # `apply_category_and_updated_in_app_to_frames`. Also, get `hint` and `contributes` values - # for the overall stacktrace (returned in `rust_results`). - rust_stacktrace_results = self.rust_enhancements.assemble_stacktrace_component( - match_frames, rust_exception_data, rust_frames - ) - - if self.run_split_enhancements: - with metrics.timer( - "grouping.enhancements.get_contributes_and_hint" - ) as metrics_timer_tags: - metrics_timer_tags.update({"split": True, "variant": variant_name}) - - # Create a set of rust frames to which we can ask rust to add in-app hints. (We know all - # hints generated by classifier enhancements are in-app by definition.) - in_app_rust_frames = [EmptyRustFrame() for frame in frames] - # Only spend the time to get in-app hints if we might use them - if variant_name == "app": - self.classifier_rust_enhancements.assemble_stacktrace_component( - match_frames, rust_exception_data, in_app_rust_frames - ) - - # Do the same for contributes hints, this time using the contributes enhancements. These - # rust frames will also collect `contributes` values, along with the `contributes` and - # `hint` values for the stacktrace. - contributes_rust_frames = [ - RustFrame(contributes=c.contributes) for c in frame_components - ] - contributes_match_frames = [ - # We don't want to include `orig_in_app` here because otherwise +/-group hints can - # get clobbered by +/-app hints - {**match_frame, "orig_in_app": None} - for match_frame in match_frames - ] - rust_stacktrace_results_split = ( - self.contributes_rust_enhancements.assemble_stacktrace_component( - contributes_match_frames, rust_exception_data, contributes_rust_frames - ) + # Create a set of rust frames to which we can ask rust to add in-app hints. (We know all + # hints generated by classifier enhancements are in-app by definition.) + in_app_rust_frames = [EmptyRustFrame() for frame in frames] + # TODO: Fix this type to list[MatchFrame] once it's fixed in ophio + in_app_match_frames: list[Any] = [ + create_match_frame(frame, platform) for frame in frames + ] + # Only spend the time to get in-app hints if we might use them + if variant_name == "app": + self.classifier_rust_enhancements.assemble_stacktrace_component( + in_app_match_frames, rust_exception_data, in_app_rust_frames ) - split_enhancement_misses: list[Any] = [] - else: - # We need to give these values so the zip below will work, but we're not going to use - # them if we're not running split enhancements, so we can just reuse the regular results - in_app_rust_frames = contributes_rust_frames = rust_frames - rust_stacktrace_results_split = rust_stacktrace_results + # Do the same for contributes hints, this time using the contributes enhancements. These + # rust frames will also collect `contributes` values, along with the `contributes` and + # `hint` values for the stacktrace. + contributes_rust_frames = [ + RustFrame(contributes=c.contributes) for c in frame_components + ] + contributes_match_frames = [ + # We don't want to include `orig_in_app` here because otherwise +/-group hints can + # get clobbered by +/-app hints + {**match_frame, "orig_in_app": None} + for match_frame in in_app_match_frames + ] + rust_stacktrace_results = ( + self.contributes_rust_enhancements.assemble_stacktrace_component( + contributes_match_frames, rust_exception_data, contributes_rust_frames + ) + ) # Tally the number of each type of frame in the stacktrace. Later on, this will allow us to # both collect metrics and use the information in decisions about whether to send the event @@ -714,35 +652,31 @@ def assemble_stacktrace_component( frame_counts: Counter[str] = Counter() # Update frame components with results from rust - for i, frame, frame_component, rust_frame, in_app_rust_frame, contributes_rust_frame in zip( - range(len(frames)), - frames, - frame_components, - rust_frames, - in_app_rust_frames, - contributes_rust_frames, + for frame, frame_component, in_app_rust_frame, contributes_rust_frame in zip( + frames, frame_components, in_app_rust_frames, contributes_rust_frames ): # System frames should never contribute in the app variant, so if that's what we have, # force `contribtues=False`, regardless of the rust results if variant_name == "app" and not frame_component.in_app: contributes = False else: - contributes = rust_frame.contributes + contributes = bool( # bool-ing this to please mypy + contributes_rust_frame.contributes + ) frame_component.update(contributes=contributes) - hint = get_hint_for_frame(variant_name, frame, frame_component, rust_frame) - if self.run_split_enhancements: - split_in_app_hint = ( - get_hint_for_frame( - variant_name, frame, frame_component, in_app_rust_frame, "in-app" - ) - if variant_name == "app" - else None # In-app hints don't apply to the system stacktrace - ) - split_contributes_hint = get_hint_for_frame( - variant_name, frame, frame_component, contributes_rust_frame, "contributes" + in_app_hint = ( + get_hint_for_frame( + variant_name, frame, frame_component, in_app_rust_frame, "in-app" ) + if variant_name == "app" + else None # In-app hints don't apply to the system stacktrace + ) + contributes_hint = get_hint_for_frame( + variant_name, frame, frame_component, contributes_rust_frame, "contributes" + ) + hint = _combine_hints(variant_name, frame_component, in_app_hint, contributes_hint) frame_component.update(hint=hint) @@ -750,36 +684,6 @@ def assemble_stacktrace_component( key = f"{"in_app" if frame_component.in_app else "system"}_{"contributing" if frame_component.contributes else "non_contributing"}_frames" frame_counts[key] += 1 - if self.run_split_enhancements: - _check_split_enhancements_frame_contributes_and_hint( - i, - rust_frame, - contributes_rust_frame, - hint, - split_in_app_hint, - split_contributes_hint, - split_enhancement_misses, - ) - - if self.run_split_enhancements: - _check_split_enhancements_stacktrace_contributes_and_hint( - rust_stacktrace_results, rust_stacktrace_results_split, split_enhancement_misses - ) - - logger.info( - "grouping.split_enhancements.contributes_results", - extra=( - { - "outcome": "failure", - "variant": variant_name, - "frames": frames, - "misses": split_enhancement_misses, - } - if split_enhancement_misses - else {"outcome": "success"} - ), - ) - # Because of the special case above, in which we ignore the rust-derived `contributes` value # for certain frames, it's possible for the rust-derived `contributes` value for the overall # stacktrace to be wrong, too (if in the process of ignoring rust we turn a stacktrace with @@ -811,10 +715,7 @@ def _get_base64_bytes_from_rules(self, rules: list[EnhancementRule]) -> bytes: @cached_property def base64_string(self) -> str: """A base64 string representation of the enhancements object""" - rulesets = [self.rules] - - if self.run_split_enhancements: - rulesets.extend([self.classifier_rules, self.contributes_rules]) + rulesets = [self.rules, self.classifier_rules, self.contributes_rules] # Create a base64 bytestring for each set of rules, and join them with a character we know # can never appear in base64. We do it this way rather than combining all three sets of diff --git a/tests/sentry/grouping/snapshots/test_enhancer/test_basic_parsing/2.pysnap b/tests/sentry/grouping/snapshots/test_enhancer/test_basic_parsing/2.pysnap index b0e568ba5a68eb..3c48d23e3ce0b5 100644 --- a/tests/sentry/grouping/snapshots/test_enhancer/test_basic_parsing/2.pysnap +++ b/tests/sentry/grouping/snapshots/test_enhancer/test_basic_parsing/2.pysnap @@ -1,10 +1,113 @@ --- -created: '2024-06-06T14:41:17.725971+00:00' +created: '2025-05-23T05:23:38.419820+00:00' creator: sentry source: tests/sentry/grouping/test_enhancer.py --- bases: - common:v1 +classifier_rules: +- actions: + - flag: true + key: app + range: null + matchers: + - key: path + negated: false + pattern: '*/code/game/whatever/*' +- actions: + - flag: false + key: app + range: null + matchers: + - key: family + negated: false + pattern: native + - key: module + negated: false + pattern: std::* +- actions: + - flag: false + key: app + range: null + matchers: + - key: module + negated: false + pattern: core::* +- actions: + - flag: false + key: app + range: null + matchers: + - key: family + negated: false + pattern: javascript + - key: path + negated: false + pattern: '*/test.js' +- actions: + - flag: false + key: app + range: null + matchers: + - key: family + negated: false + pattern: javascript + - key: app + negated: false + pattern: '1' + - key: path + negated: false + pattern: '*/test.js' +contributes_rules: +- actions: + - flag: false + key: group + range: up + - flag: false + key: group + range: null + matchers: + - key: function + negated: false + pattern: panic_handler +- actions: + - flag: false + key: group + range: down + matchers: + - key: function + negated: false + pattern: ThreadStartWin32 +- actions: + - flag: false + key: group + range: down + matchers: + - key: function + negated: false + pattern: ThreadStartLinux +- actions: + - flag: false + key: group + range: down + matchers: + - key: function + negated: false + pattern: ThreadStartMac +- actions: + - value: 3 + var: max-frames + matchers: + - key: family + negated: false + pattern: native +- actions: + - value: 12 + var: max-frames + matchers: + - key: value + negated: false + pattern: '*something*' id: null rules: - actions: diff --git a/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap b/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap index 12adbf16b99b0c..66763d86f3c8ed 100644 --- a/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:31:44.258803+00:00' +created: '2025-05-12T23:50:31.833810+00:00' creator: sentry source: tests/sentry/grouping/test_grouphash_metadata.py --- @@ -30,7 +30,7 @@ contributing variants: app* exception* stacktrace* - frame* (marked in-app by stack trace rule (function:playFetch +app +group)) + frame* (marked in-app by stack trace rule (function:playFetch +app)) filename* "dogpark.js" function* diff --git a/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap b/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap index 7fdde8281dcdec..7ebc4c179ae11d 100644 --- a/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_grouphash_metadata/test_metadata_from_variants/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:32:03.705182+00:00' +created: '2025-05-12T23:51:31.432361+00:00' creator: sentry source: tests/sentry/grouping/test_grouphash_metadata.py --- @@ -30,7 +30,7 @@ contributing variants: app* exception* stacktrace* - frame* (marked in-app by stack trace rule (function:playFetch +app +group)) + frame* (marked in-app by stack trace rule (function:playFetch +app)) filename* "dogpark.js" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/actix.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/actix.pysnap index b36f6c262af96b..90aa962c2cebcf 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/actix.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/actix.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:16.434462+00:00' +created: '2025-05-12T23:41:31.498731+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -291,7 +291,7 @@ app: "either.rs" function* "futures::future::either::Either::poll" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "either.rs" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/callee_guaranteed.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/callee_guaranteed.pysnap index a44fbb9301b835..58d0c6c780de4d 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/callee_guaranteed.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/callee_guaranteed.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:17.384014+00:00' +created: '2025-05-12T23:41:33.339417+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -51,10 +51,10 @@ app: frame* (marked in-app by the client) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" frame* (marked in-app by the client) @@ -62,7 +62,7 @@ app: "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* @@ -78,7 +78,7 @@ app: frame* (marked in-app by the client) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" frame* (marked in-app by the client) @@ -86,22 +86,22 @@ app: "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* @@ -109,16 +109,16 @@ app: frame* (marked in-app by the client) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" type* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap index e2aab38b59182f..f5e34bf7bb6c11 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_and_app_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:33:18.156712+00:00' +created: '2025-05-12T23:41:34.360106+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,28 +10,28 @@ app: app* exception* stacktrace* - frame (marked out of app by stack trace rule (function:runApp -app -group)) + frame (marked out of app by stack trace rule (function:runApp -app)) filename* "app.js" function* "runApp" context-line* "return server.serve(port);" - frame (non app frame) + frame (marked out of app by stack trace rule (function:handleRequest -app)) filename* "router.js" function* "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (marked in-app by stack trace rule (function:recordMetrics +app) but ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* "recordMetrics" context-line* "return withMetrics(handler, metricName, tags);" - frame* (marked in-app by stack trace rule (function:playFetch +app +group)) + frame* (marked in-app by stack trace rule (function:playFetch +app)) filename* "dogpark.js" function* @@ -50,7 +50,7 @@ system: system* exception* stacktrace* - frame (ignored by stack trace rule (function:runApp -app -group)) + frame (ignored by stack trace rule (function:runApp -group)) filename* "app.js" function* @@ -64,7 +64,7 @@ system: "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_frames.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_frames.pysnap index b7b893d7b6ea66..78cbaae8d046f1 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/contributing_system_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:33:18.251634+00:00' +created: '2025-05-12T23:41:34.480642+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,21 +10,21 @@ app: app (exception of system takes precedence) exception (ignored because this variant does not have a contributing stacktrace, but the system variant does) stacktrace (ignored because it contains no contributing frames) - frame (marked out of app by stack trace rule (function:runApp -app -group)) + frame (marked out of app by stack trace rule (function:runApp -app)) filename* "app.js" function* "runApp" context-line* "return server.serve(port);" - frame (non app frame) + frame (marked out of app by stack trace rule (function:handleRequest -app)) filename* "router.js" function* "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (marked in-app by stack trace rule (function:recordMetrics +app) but ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* @@ -43,7 +43,7 @@ system: system* exception* stacktrace* - frame (ignored by stack trace rule (function:runApp -app -group)) + frame (ignored by stack trace rule (function:runApp -group)) filename* "app.js" function* @@ -57,7 +57,7 @@ system: "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_cocoa_nserror.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_cocoa_nserror.pysnap index d61e96ab1f557e..a5abab179fd55d 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_cocoa_nserror.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_cocoa_nserror.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:23.643626+00:00' +created: '2025-05-12T23:41:36.333796+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -84,7 +84,7 @@ app: frame* (marked in-app by the client) function* "ViewController.captureError" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "ViewController.captureError" -------------------------------------------------------------------------- diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_groups_two_exceptions_with_frames.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_groups_two_exceptions_with_frames.pysnap index 1f28ed7825ebeb..12ab387e2cd33d 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_groups_two_exceptions_with_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/exception_groups_two_exceptions_with_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:26.725358+00:00' +created: '2025-05-12T23:41:38.246185+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -32,7 +32,7 @@ app: "dostuff" function* "do_other_stuff" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) module* "dostuff" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/in_app_in_ui.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/in_app_in_ui.pysnap index c84d39aeda8387..6f3858a4ce9d61 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/in_app_in_ui.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/in_app_in_ui.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:36.661991+00:00' +created: '2025-05-12T23:41:49.479426+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -79,7 +79,7 @@ app: "" function* "AnyTableViewController.tableView" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/javascript_xbrowser_sentryui_safari.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/javascript_xbrowser_sentryui_safari.pysnap index dd1744be4e7837..23f3d9ffa9159a 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/javascript_xbrowser_sentryui_safari.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/javascript_xbrowser_sentryui_safari.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:39.148367+00:00' +created: '2025-05-12T23:41:53.678647+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,7 +10,7 @@ app: app* exception* stacktrace* - frame (marked in-app by the client) + frame (marked in-app by the client but ignored low quality javascript frame) filename (native code indicated by filename) "[native code]" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_away_from_crash.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_away_from_crash.pysnap index b3e3e37b79bd39..6d8422ad877061 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_away_from_crash.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_away_from_crash.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:42.923669+00:00' +created: '2025-05-12T23:41:58.488962+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -55,7 +55,7 @@ app: "bound_func" context-line* "return func(self, *args2, **kwargs2)" - frame (ignored by stack trace rule (path:**/release_webhook.py v-group)) + frame (marked in-app by the client but ignored by stack trace rule (path:**/release_webhook.py v-group)) module* "sentry.web.frontend.release_webhook" filename (module takes precedence) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_towards_crash.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_towards_crash.pysnap index 3c6c943bf0bc64..80b0d38b91fcd6 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_towards_crash.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/python_grouping_enhancer_towards_crash.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:43.195177+00:00' +created: '2025-05-12T23:41:58.687227+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -55,7 +55,7 @@ app: "bound_func" context-line* "return func(self, *args2, **kwargs2)" - frame (ignored by stack trace rule (function:wrapped_view ^-group -group)) + frame (marked in-app by the client but ignored by stack trace rule (function:wrapped_view ^-group -group)) module* "sentry.web.frontend.release_webhook" filename (module takes precedence) @@ -73,7 +73,7 @@ app: "dispatch" context-line* "return handler(request, *args, **kwargs)" - frame (ignored by stack trace rule (function:wrapped_view ^-group -group)) + frame (marked in-app by the client but ignored by stack trace rule (function:wrapped_view ^-group -group)) module* "sentry.web.frontend.release_webhook" filename (module takes precedence) @@ -82,7 +82,7 @@ app: "post" context-line* "hook.handle(request)" - frame (ignored by stack trace rule (function:wrapped_view ^-group -group)) + frame (marked in-app by the client but ignored by stack trace rule (function:wrapped_view ^-group -group)) module* "sentry_plugins.heroku.plugin" filename (module takes precedence) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_ensure_check_fail_on_mac.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_ensure_check_fail_on_mac.pysnap index b9230baaf1ebb0..2dec0463af5fbf 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_ensure_check_fail_on_mac.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_ensure_check_fail_on_mac.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-28T13:16:31.544805+00:00' +created: '2025-05-12T23:42:02.917624+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -92,8 +92,8 @@ app: function* "UObject::execCallMathFunction" frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) frame* (marked in-app by stack trace rule (family:native package:/Users/** +app)) function* "UE::Assert::Private::ExecCheckImplInternal" @@ -107,30 +107,30 @@ app: function* "TMulticastDelegateBase::Broadcast" frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryHub captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" type* @@ -221,8 +221,8 @@ app: function* "UObject::execCallMathFunction" frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) frame* (marked in-app by stack trace rule (family:native package:/Users/** +app)) function* "UE::Assert::Private::ExecCheckImplInternal" @@ -236,30 +236,30 @@ app: function* "TMulticastDelegateBase::Broadcast" frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryHub captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" -------------------------------------------------------------------------- @@ -369,28 +369,28 @@ system: frame frame (ignored due to recursion) frame (ignored due to recursion) - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryHub captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" type* @@ -498,27 +498,27 @@ system: frame frame (ignored due to recursion) frame (ignored due to recursion) - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryHub captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_event_capture_mac.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_event_capture_mac.pysnap index 2f1ca57510f225..6ccbad2820df4a 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_event_capture_mac.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2019_05_08/unreal_event_capture_mac.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:33:37.189690+00:00' +created: '2025-05-12T23:42:03.279030+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -106,31 +106,31 @@ app: frame* (marked in-app by stack trace rule (family:native package:/Users/** +app)) function* "USentrySubsystem::CaptureEventWithScope" - frame (marked in-app by stack trace rule (family:native package:/Users/** +app)) + frame (marked in-app by stack trace rule (family:native package:/Users/** +app) but ignored due to recursion) function* "USentrySubsystem::CaptureEventWithScope" frame* (marked in-app by stack trace rule (family:native package:/Users/** +app)) function* "SentrySubsystemApple::CaptureEventWithScope" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureEvent:withScopeBlock:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureEvent:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryHub captureEvent:withScope:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" -------------------------------------------------------------------------- @@ -251,24 +251,24 @@ system: frame* function* "SentrySubsystemApple::CaptureEventWithScope" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureEvent:withScopeBlock:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureEvent:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryHub captureEvent:withScope:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/actix.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/actix.pysnap index 0d0165d5e1de6d..b21f9a5df68914 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/actix.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/actix.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:21:47.453623+00:00' +created: '2025-05-12T23:40:57.034736+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,7 +10,7 @@ app: app* exception* stacktrace* - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by the client but ignored by stack trace rule (category:threadbase -group v-group)) function* "__pthread_start" frame* (marked in-app by the client) @@ -291,7 +291,7 @@ app: "either.rs" function* "futures::future::either::Either::poll" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "either.rs" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/callee_guaranteed.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/callee_guaranteed.pysnap index 91d4bf1bf25fc7..c49bcf5a613283 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/callee_guaranteed.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/callee_guaranteed.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:21:48.505427+00:00' +created: '2025-05-12T23:40:58.067213+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -13,7 +13,7 @@ app: frame (marked out of app by the client) function* "start" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by the client but ignored by stack trace rule (category:threadbase -group v-group)) function* "stripped_application_code" frame (marked out of app by the client) @@ -43,7 +43,7 @@ app: frame (marked out of app by the client) function* "_dispatch_call_block_and_release" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by the client but ignored by stack trace rule (category:internals -group)) filename* "" function* @@ -51,18 +51,18 @@ app: frame* (marked in-app by the client) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by the client but ignored by stack trace rule (category:internals -group)) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* @@ -70,7 +70,7 @@ app: frame (non app frame) function* "stripped_application_code" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by the client but ignored by stack trace rule (category:internals -group)) filename* "" function* @@ -78,30 +78,30 @@ app: frame* (marked in-app by the client) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by the client but ignored by stack trace rule (category:internals -group)) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* "@callee_guaranteed" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* @@ -109,16 +109,16 @@ app: frame* (marked in-app by the client) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "stripped_application_code" type* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/cocoa_dispatch_client_callout.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/cocoa_dispatch_client_callout.pysnap index 7061d8d1544648..27664beab05742 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/cocoa_dispatch_client_callout.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/cocoa_dispatch_client_callout.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:21:48.840944+00:00' +created: '2025-05-12T23:40:58.548136+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -40,7 +40,7 @@ app: frame* (marked in-app by stack trace rule (family:native package:**/Containers/Bundle/Application/** +app)) function* "FudgeLogTaggedError" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by stack trace rule (family:native package:**/Containers/Bundle/Application/** +app) but ignored by stack trace rule (category:internals -group)) function* "closure" frame* (marked in-app by stack trace rule (family:native package:**/Containers/Bundle/Application/** +app)) @@ -52,7 +52,7 @@ app: frame (marked out of app by the client) function* "_dispatch_client_callout" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by stack trace rule (family:native package:**/Containers/Bundle/Application/** +app) but ignored by stack trace rule (category:internals -group)) function* "closure" -------------------------------------------------------------------------- diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap index 3c685c28bd2670..a5c4cf8b2199ab 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_and_app_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:33:57.553210+00:00' +created: '2025-05-12T23:40:58.821209+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,28 +10,28 @@ app: app* exception* stacktrace* - frame (marked out of app by stack trace rule (function:runApp -app -group)) + frame (marked out of app by stack trace rule (function:runApp -app)) filename* "app.js" function* "runApp" context-line* "return server.serve(port);" - frame (non app frame) + frame (marked out of app by stack trace rule (function:handleRequest -app)) filename* "router.js" function* "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (marked in-app by stack trace rule (function:recordMetrics +app) but ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* "recordMetrics" context-line* "return withMetrics(handler, metricName, tags);" - frame* (marked in-app by stack trace rule (function:playFetch +app +group)) + frame* (marked in-app by stack trace rule (function:playFetch +app)) filename* "dogpark.js" function* @@ -50,7 +50,7 @@ system: system* exception* stacktrace* - frame (ignored by stack trace rule (function:runApp -app -group)) + frame (ignored by stack trace rule (function:runApp -group)) filename* "app.js" function* @@ -64,7 +64,7 @@ system: "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_frames.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_frames.pysnap index 9b2b06c268c4a8..799ce8b2dac43d 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/contributing_system_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:33:57.645767+00:00' +created: '2025-05-12T23:40:58.941841+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,21 +10,21 @@ app: app (exception of system takes precedence) exception (ignored because this variant does not have a contributing stacktrace, but the system variant does) stacktrace (ignored because it contains no contributing frames) - frame (marked out of app by stack trace rule (function:runApp -app -group)) + frame (marked out of app by stack trace rule (function:runApp -app)) filename* "app.js" function* "runApp" context-line* "return server.serve(port);" - frame (non app frame) + frame (marked out of app by stack trace rule (function:handleRequest -app)) filename* "router.js" function* "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (marked in-app by stack trace rule (function:recordMetrics +app) but ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* @@ -43,7 +43,7 @@ system: system* exception* stacktrace* - frame (ignored by stack trace rule (function:runApp -app -group)) + frame (ignored by stack trace rule (function:runApp -group)) filename* "app.js" function* @@ -57,7 +57,7 @@ system: "handleRequest" context-line* "return handler(request);" - frame (ignored by stack trace rule (function:recordMetrics +app -group)) + frame (ignored by stack trace rule (function:recordMetrics -group)) filename* "metrics.js" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_cocoa_nserror.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_cocoa_nserror.pysnap index 0593b8f730ad8a..6ad408e8db9b5e 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_cocoa_nserror.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_cocoa_nserror.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:21:51.210373+00:00' +created: '2025-05-12T23:41:00.802468+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -21,7 +21,7 @@ app: frame (marked out of app by the client) function* "start" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by the client but ignored by stack trace rule (category:threadbase -group v-group)) function* "main" frame (marked out of app by the client) @@ -84,7 +84,7 @@ app: frame* (marked in-app by the client) function* "ViewController.captureError" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) function* "ViewController.captureError" -------------------------------------------------------------------------- @@ -152,7 +152,7 @@ system: frame (ignored by stack trace rule (category:internals -group)) function* "-[UIControl sendAction:to:forEvent:]" - frame (ignored by stack trace rule (family:native function:__*[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:__*[[]Sentry* -group)) function* "__44-[SentryBreadcrumbTracker swizzleSendAction]_block_invoke_2" frame (ignored by stack trace rule (category:internals -group)) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_groups_two_exceptions_with_frames.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_groups_two_exceptions_with_frames.pysnap index 7c2d50345e0b77..3d2fa9fd36a477 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_groups_two_exceptions_with_frames.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/exception_groups_two_exceptions_with_frames.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:21:53.163918+00:00' +created: '2025-05-12T23:41:02.990228+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -32,7 +32,7 @@ app: "dostuff" function* "do_other_stuff" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) module* "dostuff" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_dartlang_sdk.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_dartlang_sdk.pysnap index feeb864775fcba..06634d3781d043 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_dartlang_sdk.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_dartlang_sdk.pysnap @@ -1,5 +1,5 @@ --- -created: '2024-12-17T22:47:11.627784+00:00' +created: '2025-05-12T23:41:05.183677+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -9,7 +9,7 @@ app: component: app stacktrace (ignored because it contains no in-app frames) - frame (marked out of app by stack trace rule (family:javascript path:org-dartlang-sdk:///** -app -group)) + frame (marked out of app by stack trace rule (family:javascript path:org-dartlang-sdk:///** -app)) filename* "async_patch.dart" function* @@ -24,7 +24,7 @@ system: component: system stacktrace (ignored because it contains no contributing frames) - frame (ignored by stack trace rule (family:javascript path:org-dartlang-sdk:///** -app -group)) + frame (ignored by stack trace rule (family:javascript path:org-dartlang-sdk:///** -group)) filename* "async_patch.dart" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_packages.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_packages.pysnap index 3828bab27b48ae..1bda5f35b51e74 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_packages.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_packages.pysnap @@ -1,5 +1,5 @@ --- -created: '2024-12-17T22:47:12.658226+00:00' +created: '2025-05-12T23:41:07.871940+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -9,37 +9,37 @@ app: component: app stacktrace (ignored because it contains no in-app frames) - frame (marked out of app by stack trace rule (path:package:sentry_logging/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_logging/** -app)) filename* "sentry_logging.dart" function* "SentryLogging.log" - frame (marked out of app by stack trace rule (path:package:sentry_dio/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_dio/** -app)) filename* "sentry_dio.dart" function* "SentryDio.dio" - frame (marked out of app by stack trace rule (path:package:sentry_file/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_file/** -app)) filename* "sentry_file.dart" function* "SentryFile.file" - frame (marked out of app by stack trace rule (path:package:sentry_hive/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_hive/** -app)) filename* "sentry_hive.dart" function* "SentryHive.hive" - frame (marked out of app by stack trace rule (path:package:sentry_isar/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_isar/** -app)) filename* "sentry_isar.dart" function* "SentryIsar.isar" - frame (marked out of app by stack trace rule (path:package:sentry_sqflite/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_sqflite/** -app)) filename* "sentry_sqflite.dart" function* "SentrySqflite.sqflite" - frame (marked out of app by stack trace rule (path:package:sentry_drift/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_drift/** -app)) filename* "sentry_drift.dart" function* @@ -54,37 +54,37 @@ system: component: system stacktrace (ignored because it contains no contributing frames) - frame (ignored by stack trace rule (path:package:sentry_logging/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_logging/** -group)) filename* "sentry_logging.dart" function* "SentryLogging.log" - frame (ignored by stack trace rule (path:package:sentry_dio/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_dio/** -group)) filename* "sentry_dio.dart" function* "SentryDio.dio" - frame (ignored by stack trace rule (path:package:sentry_file/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_file/** -group)) filename* "sentry_file.dart" function* "SentryFile.file" - frame (ignored by stack trace rule (path:package:sentry_hive/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_hive/** -group)) filename* "sentry_hive.dart" function* "SentryHive.hive" - frame (ignored by stack trace rule (path:package:sentry_isar/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_isar/** -group)) filename* "sentry_isar.dart" function* "SentryIsar.isar" - frame (ignored by stack trace rule (path:package:sentry_sqflite/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_sqflite/** -group)) filename* "sentry_sqflite.dart" function* "SentrySqflite.sqflite" - frame (ignored by stack trace rule (path:package:sentry_drift/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_drift/** -group)) filename* "sentry_drift.dart" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_sdk.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_sdk.pysnap index 8674f9a73453f9..d87397f5f73357 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_sdk.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_dart_sdk.pysnap @@ -1,5 +1,5 @@ --- -created: '2024-12-17T22:47:12.711238+00:00' +created: '2025-05-12T23:41:08.021063+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -9,7 +9,7 @@ app: component: app stacktrace (ignored because it contains no in-app frames) - frame (marked out of app by stack trace rule (path:package:sentry/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry/** -app)) filename* "sentry_exception_factory.dart" function* @@ -24,7 +24,7 @@ system: component: system stacktrace (ignored because it contains no contributing frames) - frame (ignored by stack trace rule (path:package:sentry/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry/** -group)) filename* "sentry_exception_factory.dart" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_flutter_sdk.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_flutter_sdk.pysnap index c64af1f870ddb5..5205c07811c8a3 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_flutter_sdk.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/frame_ignores_sentry_flutter_sdk.pysnap @@ -1,5 +1,5 @@ --- -created: '2024-12-17T22:47:12.761915+00:00' +created: '2025-05-12T23:41:08.168621+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -9,7 +9,7 @@ app: component: app stacktrace (ignored because it contains no in-app frames) - frame (marked out of app by stack trace rule (path:package:sentry_flutter/** -app -group)) + frame (marked out of app by stack trace rule (path:package:sentry_flutter/** -app)) filename* "sentry_exception_factory.dart" function* @@ -24,7 +24,7 @@ system: component: system stacktrace (ignored because it contains no contributing frames) - frame (ignored by stack trace rule (path:package:sentry_flutter/** -app -group)) + frame (ignored by stack trace rule (path:package:sentry_flutter/** -group)) filename* "sentry_exception_factory.dart" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/in_app_in_ui.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/in_app_in_ui.pysnap index 15321bda8d40c0..73c01d9457c360 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/in_app_in_ui.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/in_app_in_ui.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:07.744470+00:00' +created: '2025-05-12T23:41:14.019436+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -13,7 +13,7 @@ app: frame (marked out of app by the client) function* "start" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by the client but ignored by stack trace rule (category:threadbase -group v-group)) filename* "main.m" function* @@ -79,7 +79,7 @@ app: "" function* "AnyTableViewController.tableView" - frame (marked in-app by the client) + frame (marked in-app by the client but ignored due to recursion) filename* "" function* @@ -89,7 +89,7 @@ app: "anytableviewcontroller.swift" function* "AnyTableViewController.tableView" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by the client but ignored by stack trace rule (category:internals -group)) filename* "" function* @@ -114,7 +114,7 @@ app: "" function* "Sequence.compactMap" - frame (ignored by stack trace rule (category:internals -group)) + frame (marked in-app by the client but ignored by stack trace rule (category:internals -group)) filename* "" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_chained.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_chained.pysnap index a1c31f7476583e..223a22d1765c2d 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_chained.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_chained.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:07.867238+00:00' +created: '2025-05-12T23:41:14.420857+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -408,7 +408,7 @@ system: chained-exception* exception* stacktrace* - frame + frame (ignored by stack trace rule (module:io.sentry.* -group)) module* "io.sentry.example.Application" filename (module takes precedence) @@ -575,7 +575,7 @@ system: "Address already in use" exception* stacktrace* - frame + frame (ignored by stack trace rule (module:io.sentry.* -group)) module* "io.sentry.example.Application" filename (module takes precedence) @@ -686,7 +686,7 @@ system: "service.getName(): \"Tomcat\"; Protocol handler start failed" exception* stacktrace* - frame + frame (ignored by stack trace rule (module:io.sentry.* -group)) module* "io.sentry.example.Application" filename (module takes precedence) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_minimal.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_minimal.pysnap index 128420d6b7e264..4ab7a0d88bd524 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_minimal.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/java_minimal.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:07.989953+00:00' +created: '2025-05-12T23:41:14.689837+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -422,7 +422,7 @@ system: "thread.java" function* "run" - frame + frame (ignored by stack trace rule (category:threadbase -group v-group)) module* "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable" filename (module takes precedence) @@ -793,7 +793,7 @@ system: "nativemethodaccessorimpl.java" function* "invoke0" - frame + frame (ignored by stack trace rule (module:io.sentry.* -group)) module* "io.sentry.example.Application" filename (module takes precedence) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_polyfills.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_polyfills.pysnap index 22ca826b29c8af..43a63cfcf4ec98 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_polyfills.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_polyfills.pysnap @@ -1,5 +1,5 @@ --- -created: '2024-12-17T22:47:15.459981+00:00' +created: '2025-05-12T23:41:15.722000+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,17 +10,17 @@ app: app* exception* stacktrace (ignored because it contains no in-app frames) - frame (marked out of app by stack trace rule (module:@babel/** -app -group)) + frame (marked out of app by stack trace rule (module:@babel/** -app)) module* "@babel/runtime/helpers/asyncToGenerator" function (ignored unknown function name) "" - frame (marked out of app by stack trace rule (module:core-js/** -app -group)) + frame (marked out of app by stack trace rule (module:core-js/** -app)) module* "core-js/internals/task" function* "listener" - frame (marked out of app by stack trace rule (module:tslib/** -app -group)) + frame (marked out of app by stack trace rule (module:tslib/** -app)) module* "tslib/tslib.es6" function* (trimmed javascript function) @@ -37,17 +37,17 @@ system: system (exception of app takes precedence) exception (ignored because hash matches app variant) stacktrace (ignored because it contains no contributing frames) - frame (ignored by stack trace rule (module:@babel/** -app -group)) + frame (ignored by stack trace rule (module:@babel/** -group)) module* "@babel/runtime/helpers/asyncToGenerator" function (ignored unknown function name) "" - frame (ignored by stack trace rule (module:core-js/** -app -group)) + frame (ignored by stack trace rule (module:core-js/** -group)) module* "core-js/internals/task" function* "listener" - frame (ignored by stack trace rule (module:tslib/** -app -group)) + frame (ignored by stack trace rule (module:tslib/** -group)) module* "tslib/tslib.es6" function* (trimmed javascript function) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_xbrowser_sentryui_safari.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_xbrowser_sentryui_safari.pysnap index 16e05d9f486e11..0f9061b98fb881 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_xbrowser_sentryui_safari.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/javascript_xbrowser_sentryui_safari.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:09.858005+00:00' +created: '2025-05-12T23:41:17.287905+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,7 +10,7 @@ app: app* exception* stacktrace* - frame (marked in-app by the client) + frame (marked in-app by the client but ignored low quality javascript frame) filename (native code indicated by filename) "[native code]" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/node_low_level_async.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/node_low_level_async.pysnap index cf58b925885215..bdeca78c912fec 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/node_low_level_async.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/node_low_level_async.pysnap @@ -1,5 +1,5 @@ --- -created: '2024-12-17T22:47:17.761024+00:00' +created: '2025-05-12T23:41:21.896373+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,14 +10,14 @@ app: app* exception* stacktrace (ignored because it contains no in-app frames) - frame (marked out of app by stack trace rule (function:processTicksAndRejections -app -group)) + frame (marked out of app by stack trace rule (function:processTicksAndRejections -app)) module* "task_queues" filename (module takes precedence) "task_queues" function* "processTicksAndRejections" - frame (marked out of app by stack trace rule (function:runMicrotasks -app -group)) + frame (marked out of app by stack trace rule (function:runMicrotasks -app)) filename* "axiosinterceptor.js" function* @@ -34,14 +34,14 @@ system: system (exception of app takes precedence) exception (ignored because hash matches app variant) stacktrace (ignored because it contains no contributing frames) - frame (ignored by stack trace rule (function:processTicksAndRejections -app -group)) + frame (ignored by stack trace rule (function:processTicksAndRejections -group)) module* "task_queues" filename (module takes precedence) "task_queues" function* "processTicksAndRejections" - frame (ignored by stack trace rule (function:runMicrotasks -app -group)) + frame (ignored by stack trace rule (function:runMicrotasks -group)) filename* "axiosinterceptor.js" function* diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_away_from_crash.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_away_from_crash.pysnap index 7fee4594500e30..78a0db200d5fb4 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_away_from_crash.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_away_from_crash.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:13.058609+00:00' +created: '2025-05-12T23:41:22.419019+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -55,7 +55,7 @@ app: "bound_func" context-line* "return func(self, *args2, **kwargs2)" - frame (ignored by stack trace rule (path:**/release_webhook.py v-group)) + frame (marked in-app by the client but ignored by stack trace rule (path:**/release_webhook.py v-group)) module* "sentry.web.frontend.release_webhook" filename (module takes precedence) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_towards_crash.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_towards_crash.pysnap index 584c5c678363d7..23540de52b32a9 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_towards_crash.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/python_grouping_enhancer_towards_crash.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-25T21:22:13.177400+00:00' +created: '2025-05-12T23:41:22.757354+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -55,7 +55,7 @@ app: "bound_func" context-line* "return func(self, *args2, **kwargs2)" - frame (ignored by stack trace rule (function:wrapped_view ^-group -group)) + frame (marked in-app by the client but ignored by stack trace rule (function:wrapped_view ^-group -group)) module* "sentry.web.frontend.release_webhook" filename (module takes precedence) @@ -73,7 +73,7 @@ app: "dispatch" context-line* "return handler(request, *args, **kwargs)" - frame (ignored by stack trace rule (function:wrapped_view ^-group -group)) + frame (marked in-app by the client but ignored by stack trace rule (function:wrapped_view ^-group -group)) module* "sentry.web.frontend.release_webhook" filename (module takes precedence) @@ -82,7 +82,7 @@ app: "post" context-line* "hook.handle(request)" - frame (ignored by stack trace rule (function:wrapped_view ^-group -group)) + frame (marked in-app by the client but ignored by stack trace rule (function:wrapped_view ^-group -group)) module* "sentry_plugins.heroku.plugin" filename (module takes precedence) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assert_mac.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assert_mac.pysnap index e3cd6efa1f944c..ac44631d9aeeaf 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assert_mac.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assert_mac.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-04-23T19:09:01.325342+00:00' +created: '2025-05-12T23:41:29.503478+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -76,7 +76,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) function* "ProcessLocalFunction" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "ProcessLocalFunction::lambda::operator()" frame* (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_android.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_android.pysnap index 813a3fda38d201..73274e04266fe5 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_android.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_android.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:34:16.297561+00:00' +created: '2025-05-12T23:41:29.747451+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -13,7 +13,7 @@ app: frame (marked out of app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) function* "__start_thread" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) function* "__pthread_start" frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_on_windows.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_on_windows.pysnap index 8ecb9c53d39ad4..a65b1d2b652e1e 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_on_windows.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_assertion_check_fail_on_windows.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:34:16.413488+00:00' +created: '2025-05-12T23:41:30.148944+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,18 +10,18 @@ app: app* exception* stacktrace* - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) function* "RtlUserThreadStart" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) function* "BaseThreadInitThunk" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) filename* "exe_common.inl" function* "__scrt_common_main_seh" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) filename* "exe_common.inl" function* @@ -74,7 +74,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) function* "SharedPointerInternals::NewIntrusiveReferenceController" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "`TArray::Remove'::`2'::::operator()" frame* (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) @@ -107,7 +107,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) function* "ProcessLocalFunction" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "`TThreadSingleton::Get'::`2'::::operator()" frame* (marked in-app by stack trace rule (family:native function:FDebug::CheckVerifyFailedImpl* v+app -app ^-app)) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_mac.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_mac.pysnap index 0ad7dd7c9d2342..29c97fe59891cb 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_mac.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_mac.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-28T13:16:32.836103+00:00' +created: '2025-05-12T23:41:30.548327+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -79,7 +79,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) function* "ProcessLocalFunction" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "ProcessLocalFunction::lambda::operator()" frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) @@ -92,8 +92,8 @@ app: function* "UObject::execCallMathFunction" frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) - frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) - frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored due to recursion) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored due to recursion) frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) function* "UE::Assert::Private::ExecCheckImplInternal" @@ -109,28 +109,28 @@ app: frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryHub captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" type* @@ -208,7 +208,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) function* "ProcessLocalFunction" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "ProcessLocalFunction::lambda::operator()" frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) @@ -221,8 +221,8 @@ app: function* "UObject::execCallMathFunction" frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) - frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) - frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored due to recursion) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored due to recursion) frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) function* "UE::Assert::Private::ExecCheckImplInternal" @@ -238,28 +238,28 @@ app: frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) frame (marked out of app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryHub captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient captureException:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" -------------------------------------------------------------------------- @@ -369,28 +369,28 @@ system: frame frame (ignored due to recursion) frame (ignored due to recursion) - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryHub captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" type* @@ -498,27 +498,27 @@ system: frame frame (ignored due to recursion) frame (ignored due to recursion) - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryHub captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient captureException:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_windows.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_windows.pysnap index d48c04e38d2507..3b3d2d3f9f3f5e 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_windows.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_ensure_check_fail_on_windows.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-28T13:16:33.202850+00:00' +created: '2025-05-12T23:41:30.796928+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -10,18 +10,18 @@ app: app* exception* stacktrace* - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) function* "RtlUserThreadStart" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) function* "BaseThreadInitThunk" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) filename* "exe_common.inl" function* "__scrt_common_main_seh" - frame (ignored by stack trace rule (category:threadbase -group v-group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:threadbase -group v-group)) filename* "exe_common.inl" function* @@ -74,7 +74,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) function* "SharedPointerInternals::NewIntrusiveReferenceController" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "`TArray::Remove'::`2'::::operator()" frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) @@ -107,7 +107,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) function* "ProcessLocalFunction" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "`TThreadSingleton::Get'::`2'::::operator()" frame* (marked in-app by stack trace rule (family:native function:UE::Assert::Private::ExecCheckImplInternal* v+app -app ^-app)) diff --git a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_event_capture_mac.pysnap b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_event_capture_mac.pysnap index cadcc2eb05c932..5ea056e7c8c993 100644 --- a/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_event_capture_mac.pysnap +++ b/tests/sentry/grouping/snapshots/test_variants/test_event_hash_variant/newstyle@2023_01_11/unreal_event_capture_mac.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-02-26T00:34:16.642847+00:00' +created: '2025-05-12T23:41:31.153786+00:00' creator: sentry source: tests/sentry/grouping/test_variants.py --- @@ -79,7 +79,7 @@ app: frame* (marked in-app by stack trace rule (family:native function:USentrySubsystem::*execCapture* v+app -app ^-app)) function* "ProcessLocalFunction" - frame (ignored by stack trace rule (category:indirection -group)) + frame (marked in-app by stack trace rule (family:native function:USentrySubsystem::*execCapture* v+app -app ^-app) but ignored by stack trace rule (category:indirection -group)) function* "ProcessLocalFunction::lambda::operator()" frame* (marked in-app by stack trace rule (family:native function:USentrySubsystem::*execCapture* v+app -app ^-app)) @@ -112,25 +112,25 @@ app: frame (marked out of app by stack trace rule (family:native function:USentrySubsystem::*execCapture* v+app -app ^-app)) function* "SentrySubsystemApple::CaptureEventWithScope" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureEvent:withScopeBlock:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "+[SentrySDK captureEvent:withScope:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryHub captureEvent:withScope:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (marked out of app by stack trace rule (family:native function:?[[]Sentry* -app)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" -------------------------------------------------------------------------- @@ -251,24 +251,24 @@ system: frame* function* "SentrySubsystemApple::CaptureEventWithScope" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureEvent:withScopeBlock:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "+[SentrySDK captureEvent:withScope:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryHub captureEvent:withScope:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient sendEvent:withScope:alwaysAttachStacktrace:isCrashEvent:additionalEnvelopeItems:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryClient prepareEvent:withScope:alwaysAttachStacktrace:isCrashEvent:]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryThreadInspector getCurrentThreads]" - frame (ignored by stack trace rule (family:native function:?[[]Sentry* -app -group)) + frame (ignored by stack trace rule (family:native function:?[[]Sentry* -group)) function* "-[SentryStacktraceBuilder buildStacktraceForCurrentThread]" diff --git a/tests/sentry/grouping/test_enhancer.py b/tests/sentry/grouping/test_enhancer.py index 3883345b3319e1..45bff845f34c73 100644 --- a/tests/sentry/grouping/test_enhancer.py +++ b/tests/sentry/grouping/test_enhancer.py @@ -601,19 +601,6 @@ def test_splits_rules_correctly(self): "function:kangaroo -group", # Split of `function:kangaroo -app -group` ] - def test_obeys_version_for_splitting_choice(self): - enhancements = Enhancements.from_rules_text(self.rules_text) - assert enhancements.classifier_rules == [] - assert enhancements.contributes_rules == [] - - enhancements = Enhancements.from_rules_text(self.rules_text, version=2) - assert enhancements.classifier_rules == [] - assert enhancements.contributes_rules == [] - - enhancements = Enhancements.from_rules_text(self.rules_text, version=3) - assert len(enhancements.classifier_rules) > 0 - assert len(enhancements.contributes_rules) > 0 - def test_adds_split_rules_to_base_enhancements(self): for base in ENHANCEMENT_BASES.values(): # Make these sets so checking in them is faster @@ -884,7 +871,9 @@ def test_marks_app_stacktrace_non_contributing_if_no_in_app_frames(self): # In this case, even after we force the system frame not to contribute, we'll still have # another contributing frame, so we'll use rust's `contributing: True` for the stacktrace # component. - with mock.patch.object(enhancements1, "rust_enhancements", mock_rust_enhancements1): + with mock.patch.object( + enhancements1, "contributes_rust_enhancements", mock_rust_enhancements1 + ): stacktrace_component1 = enhancements1.assemble_stacktrace_component( variant_name="app", frame_components=frame_components, @@ -902,7 +891,9 @@ def test_marks_app_stacktrace_non_contributing_if_no_in_app_frames(self): # In this case, once we force the system frame not to contribute, we won't have any # contributing frames, so we'll force `contributing: False` for the stacktrace component. - with mock.patch.object(enhancements2, "rust_enhancements", mock_rust_enhancements2): + with mock.patch.object( + enhancements2, "contributes_rust_enhancements", mock_rust_enhancements2 + ): stacktrace_component2 = enhancements2.assemble_stacktrace_component( variant_name="app", frame_components=frame_components, diff --git a/tests/sentry/grouping/test_grouphash_metadata.py b/tests/sentry/grouping/test_grouphash_metadata.py index 4cb0006fba0b21..adaef00796e95d 100644 --- a/tests/sentry/grouping/test_grouphash_metadata.py +++ b/tests/sentry/grouping/test_grouphash_metadata.py @@ -1,7 +1,7 @@ from __future__ import annotations from typing import Any -from unittest.mock import MagicMock, Mock, patch +from unittest.mock import Mock, patch import pytest @@ -43,9 +43,7 @@ set(CONFIGURATIONS.keys()) - {DEFAULT_GROUPING_CONFIG}, ids=lambda config_name: config_name.replace("-", "_"), ) -@patch("sentry.grouping.enhancer.logger.info") def test_hash_basis_with_legacy_configs( - mock_logger_info: MagicMock, config_name: str, grouping_input: GroupingInput, insta_snapshot: InstaSnapshotter, @@ -63,9 +61,7 @@ def test_hash_basis_with_legacy_configs( # This ensures we won't try to touch the DB when getting event variants event.project = dummy_project - _assert_and_snapshot_results( - event, config_name, grouping_input.filename, mock_logger_info, insta_snapshot - ) + _assert_and_snapshot_results(event, config_name, grouping_input.filename, insta_snapshot) @django_db_all @@ -78,9 +74,7 @@ def test_hash_basis_with_legacy_configs( {DEFAULT_GROUPING_CONFIG}, ids=lambda config_name: config_name.replace("-", "_"), ) -@patch("sentry.grouping.enhancer.logger.info") def test_hash_basis_with_current_default_config( - mock_logger_info: MagicMock, config_name: str, grouping_input: GroupingInput, insta_snapshot: InstaSnapshotter, @@ -99,9 +93,7 @@ def test_hash_basis_with_current_default_config( config_name, use_full_ingest_pipeline=True, project=default_project ) - _assert_and_snapshot_results( - event, config_name, grouping_input.filename, mock_logger_info, insta_snapshot - ) + _assert_and_snapshot_results(event, config_name, grouping_input.filename, insta_snapshot) @django_db_all @@ -110,9 +102,7 @@ def test_hash_basis_with_current_default_config( CONFIGURATIONS.keys(), ids=lambda config_name: config_name.replace("-", "_"), ) -@patch("sentry.grouping.enhancer.logger.info") def test_unknown_hash_basis( - mock_logger_info: MagicMock, config_name: str, insta_snapshot: InstaSnapshotter, default_project: Project, @@ -138,16 +128,13 @@ def test_unknown_hash_basis( ): # Overrride the input filename since there isn't a real input which will generate the mock # variants above, but we still want the snapshot. - _assert_and_snapshot_results( - event, config_name, "unknown_variant.json", mock_logger_info, insta_snapshot - ) + _assert_and_snapshot_results(event, config_name, "unknown_variant.json", insta_snapshot) def _assert_and_snapshot_results( event: Event, config_name: str, input_file: str, - mock_logger_info: MagicMock, insta_snapshot: InstaSnapshotter, project: Project = dummy_project, ) -> None: @@ -181,22 +168,6 @@ def _assert_and_snapshot_results( ) assert metric_names == expected_metric_names - # Ensure the split enhancements didn't give back any unexpected results - if hash_basis == HashBasis.STACKTRACE and not config_name.startswith("legacy"): - split_enhancement_check_outcomes = [ - mock_call.kwargs["extra"]["outcome"] - for mock_call in filter( - lambda mock_call: mock_call.args[0] - == "grouping.split_enhancements.classifier_results" - or mock_call.args[0] == "grouping.split_enhancements.contributes_results", - mock_logger_info.mock_calls, - ) - ] - - assert len(split_enhancement_check_outcomes) >= 3 - assert "success" in split_enhancement_check_outcomes - assert "failure" not in split_enhancement_check_outcomes - # Convert any fingerprint value from json to a string before jsonifying the entire metadata dict # below to avoid a bunch of escaping which would be caused by double jsonification _hashing_metadata: Any = hashing_metadata # Alias for typing purposes diff --git a/tests/sentry/relay/snapshots/test_config/test_get_project_config/REGION.pysnap b/tests/sentry/relay/snapshots/test_config/test_get_project_config/REGION.pysnap index 75406286961003..a4319a20b14d29 100644 --- a/tests/sentry/relay/snapshots/test_config/test_get_project_config/REGION.pysnap +++ b/tests/sentry/relay/snapshots/test_config/test_get_project_config/REGION.pysnap @@ -1,5 +1,5 @@ --- -created: '2025-03-13T12:25:04.085418+00:00' +created: '2025-05-23T05:31:14.868491+00:00' creator: sentry source: tests/sentry/relay/test_config.py --- @@ -154,7 +154,7 @@ config: - '*/ping{/,}' - '*/up{/,}' groupingConfig: - enhancements: KLUv_SAYwQAAkwKRs25ld3N0eWxlOjIwMjMtMDEtMTGQ + enhancements: KLUv_SAYwQAAkwKRs25ld3N0eWxlOjIwMjMtMDEtMTGQ#KLUv_SAYwQAAkwKRs25ld3N0eWxlOjIwMjMtMDEtMTGQ#KLUv_SAYwQAAkwKRs25ld3N0eWxlOjIwMjMtMDEtMTGQ id: newstyle:2023-01-11 metrics: cardinalityLimits: From 293685dff999a1bd83dd37fe50a9391486941e32 Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki <44422760+DominikB2014@users.noreply.github.com> Date: Thu, 29 May 2025 14:13:18 -0400 Subject: [PATCH 03/10] feat(insights): convert app starts "average cold start" widget to widget library (#92484) 1. convert app starts "average cold start" widget to use the standard widget, this makes it easy to add open in explore functionality directly from the chart, and has benefits like full screen mode image 2. Add a `none` option to the `showReleaseAs` prop in the widget. Release bubbles aren't supported in mobile because the data is explicitly filtered by two releases, therefore it doesn't make sense to overlay all releases. 3. Add `always` option to `showLegend`. Originally the legend would hide when there is only one series, but there is a case where you select two releases and we only have series data for one. We wouldn't want to hide the legend in this case because you won't know which data the release pertains to. --- .../timeSeriesWidgetVisualization.tsx | 55 +++++++++--------- .../components/insightsTimeSeriesWidget.tsx | 6 +- .../common/components/widgets/types.tsx | 2 +- .../components/startDurationWidget.spec.tsx | 4 +- .../components/startDurationWidget.tsx | 58 +++++-------------- .../mobile/appStarts/components/widgets.tsx | 7 +-- 6 files changed, 54 insertions(+), 78 deletions(-) diff --git a/static/app/views/dashboards/widgets/timeSeriesWidget/timeSeriesWidgetVisualization.tsx b/static/app/views/dashboards/widgets/timeSeriesWidget/timeSeriesWidgetVisualization.tsx index 4ac6a6803002b5..3383c022b27fad 100644 --- a/static/app/views/dashboards/widgets/timeSeriesWidget/timeSeriesWidgetVisualization.tsx +++ b/static/app/views/dashboards/widgets/timeSeriesWidget/timeSeriesWidgetVisualization.tsx @@ -111,7 +111,7 @@ export interface TimeSeriesWidgetVisualizationProps * * Default: `auto` */ - showLegend?: 'auto' | 'never'; + showLegend?: 'auto' | 'never' | 'always'; /** * Defines the X axis visibility. Note that hiding the X axis also hides release bubbles. @@ -145,6 +145,7 @@ export function TimeSeriesWidgetVisualization(props: TimeSeriesWidgetVisualizati const navigate = useNavigate(); const location = useLocation(); const hasReleaseBubbles = + props.showReleaseAs !== 'none' && organization.features.includes('release-bubbles-ui') && props.showReleaseAs === 'bubble'; @@ -401,33 +402,34 @@ export function TimeSeriesWidgetVisualization(props: TimeSeriesWidgetVisualizati yAxes.push(releaseBubbleYAxis); } - const releaseSeries = props.releases - ? hasReleaseBubbles - ? releaseBubbleSeries - : ReleaseSeries( - theme, - props.releases, - function onReleaseClick(release: Release) { - if (organization.features.includes('release-bubbles-ui')) { + const releaseSeries = + props.releases && props.showReleaseAs !== 'none' + ? hasReleaseBubbles + ? releaseBubbleSeries + : ReleaseSeries( + theme, + props.releases, + function onReleaseClick(release: Release) { + if (organization.features.includes('release-bubbles-ui')) { + navigate( + makeReleaseDrawerPathname({ + location, + release: release.version, + source: 'time-series-widget', + }) + ); + return; + } navigate( - makeReleaseDrawerPathname({ - location, - release: release.version, - source: 'time-series-widget', + makeReleasesPathname({ + organization, + path: `/${encodeURIComponent(release.version)}/`, }) ); - return; - } - navigate( - makeReleasesPathname({ - organization, - path: `/${encodeURIComponent(release.version)}/`, - }) - ); - }, - utc ?? false - ) - : null; + }, + utc ?? false + ) + : null; const hasReleaseBubblesSeries = hasReleaseBubbles && releaseSeries; @@ -490,7 +492,8 @@ export function TimeSeriesWidgetVisualization(props: TimeSeriesWidgetVisualizati } const showLegendProp = props.showLegend ?? 'auto'; - const showLegend = showLegendProp !== 'never' && visibleSeriesCount > 1; + const showLegend = + (showLegendProp !== 'never' && visibleSeriesCount > 1) || showLegendProp === 'always'; // Keep track of which `Series[]` indexes correspond to which `Plottable` so // we can look up the types in the tooltip. We need this so we can find the diff --git a/static/app/views/insights/common/components/insightsTimeSeriesWidget.tsx b/static/app/views/insights/common/components/insightsTimeSeriesWidget.tsx index 45995e8e39ede3..34caf8272d0d52 100644 --- a/static/app/views/insights/common/components/insightsTimeSeriesWidget.tsx +++ b/static/app/views/insights/common/components/insightsTimeSeriesWidget.tsx @@ -58,7 +58,7 @@ export interface InsightsTimeSeriesWidgetProps samples?: Samples; search?: MutableSearch; showLegend?: TimeSeriesWidgetVisualizationProps['showLegend']; - showReleaseAs?: 'line' | 'bubble'; + showReleaseAs?: 'line' | 'bubble' | 'none'; stacked?: boolean; } @@ -68,7 +68,9 @@ export function InsightsTimeSeriesWidget(props: InsightsTimeSeriesWidgetProps) { const organization = useOrganization(); const pageFilters = usePageFilters(); const pageFiltersSelection = props.pageFilters || pageFilters.selection; - const {releases: releasesWithDate} = useReleaseStats(pageFiltersSelection); + const {releases: releasesWithDate} = useReleaseStats(pageFiltersSelection, { + enabled: props.showReleaseAs !== 'none', + }); const releases = releasesWithDate?.map(({date, version}) => ({ timestamp: date, diff --git a/static/app/views/insights/common/components/widgets/types.tsx b/static/app/views/insights/common/components/widgets/types.tsx index dedd73bc41ea32..6d4959f7610f6e 100644 --- a/static/app/views/insights/common/components/widgets/types.tsx +++ b/static/app/views/insights/common/components/widgets/types.tsx @@ -48,5 +48,5 @@ export interface LoadableChartWidgetProps { /** * Show releases as either lines per release or a bubble for a group of releases. */ - showReleaseAs?: 'bubble' | 'line'; + showReleaseAs?: 'bubble' | 'line' | 'none'; } diff --git a/static/app/views/insights/mobile/appStarts/components/startDurationWidget.spec.tsx b/static/app/views/insights/mobile/appStarts/components/startDurationWidget.spec.tsx index e4a13dfdb6597f..b5af4107de6d2f 100644 --- a/static/app/views/insights/mobile/appStarts/components/startDurationWidget.spec.tsx +++ b/static/app/views/insights/mobile/appStarts/components/startDurationWidget.spec.tsx @@ -80,7 +80,7 @@ describe('StartDurationWidget', () => { }, } as Location); - render(); + render(); expect(await screen.findByText('Average Cold Start')).toBeInTheDocument(); }); @@ -92,7 +92,7 @@ describe('StartDurationWidget', () => { }, } as Location); - render(); + render(); expect(await screen.findByText('Average Warm Start')).toBeInTheDocument(); }); diff --git a/static/app/views/insights/mobile/appStarts/components/startDurationWidget.tsx b/static/app/views/insights/mobile/appStarts/components/startDurationWidget.tsx index 34fd85e8430fa1..d4d870367956bc 100644 --- a/static/app/views/insights/mobile/appStarts/components/startDurationWidget.tsx +++ b/static/app/views/insights/mobile/appStarts/components/startDurationWidget.tsx @@ -1,22 +1,19 @@ import {t} from 'sentry/locale'; -import {space} from 'sentry/styles/space'; import type {Series, SeriesDataUnit} from 'sentry/types/echarts'; import type {MultiSeriesEventsStats} from 'sentry/types/organization'; import {defined} from 'sentry/utils'; -import {tooltipFormatterUsingAggregateOutputType} from 'sentry/utils/discover/charts'; import {decodeScalar} from 'sentry/utils/queryString'; import {MutableSearch} from 'sentry/utils/tokenizeSearch'; import {useLocation} from 'sentry/utils/useLocation'; -import {formatVersion} from 'sentry/utils/versions/formatVersion'; import { PRIMARY_RELEASE_COLOR, SECONDARY_RELEASE_COLOR, } from 'sentry/views/insights/colors'; -import Chart, {ChartType} from 'sentry/views/insights/common/components/chart'; -import MiniChartPanel from 'sentry/views/insights/common/components/miniChartPanel'; +// TODO(release-drawer): Only used in mobile/appStarts/components/ +// eslint-disable-next-line no-restricted-imports +import {InsightsLineChartWidget} from 'sentry/views/insights/common/components/insightsLineChartWidget'; import {useReleaseSelection} from 'sentry/views/insights/common/queries/useReleases'; import {useTopNSpanMetricsSeries} from 'sentry/views/insights/common/queries/useTopNDiscoverSeries'; -import {formatVersionAndCenterTruncate} from 'sentry/views/insights/common/utils/centerTruncate'; import {appendReleaseFilters} from 'sentry/views/insights/common/utils/releaseComparison'; import {COLD_START_TYPE} from 'sentry/views/insights/mobile/appStarts/components/startTypeSelector'; import useCrossPlatformProject from 'sentry/views/insights/mobile/common/queries/useCrossPlatformProject'; @@ -58,11 +55,10 @@ export function transformData(data?: MultiSeriesEventsStats, primaryRelease?: st } interface Props { - chartHeight: number; additionalFilters?: string[]; } -function StartDurationWidget({additionalFilters, chartHeight}: Props) { +function StartDurationWidget({additionalFilters}: Props) { const location = useLocation(); const { primaryRelease, @@ -84,6 +80,7 @@ function StartDurationWidget({additionalFilters, chartHeight}: Props) { } const queryString = appendReleaseFilters(query, primaryRelease, secondaryRelease); + const search = new MutableSearch(queryString); const { data, @@ -94,7 +91,7 @@ function StartDurationWidget({additionalFilters, chartHeight}: Props) { yAxis: ['avg(span.duration)'], fields: ['release', 'avg(span.duration)'], topN: 2, - search: queryString, + search, enabled: !isReleasesLoading, }, 'api.starfish.mobile-startup-series' @@ -106,43 +103,18 @@ function StartDurationWidget({additionalFilters, chartHeight}: Props) { ); return ( - - - tooltipFormatterUsingAggregateOutputType(value, 'duration'), - nameFormatter: value => formatVersion(value), - }} - legendFormatter={value => formatVersion(value)} - error={seriesError} - /> - + series={sortedSeries} + isLoading={isSeriesLoading} + error={seriesError} + search={search} + showReleaseAs="none" + showLegend="always" + height={'100%'} + /> ); } diff --git a/static/app/views/insights/mobile/appStarts/components/widgets.tsx b/static/app/views/insights/mobile/appStarts/components/widgets.tsx index f970f8751e0439..674663c17f95c7 100644 --- a/static/app/views/insights/mobile/appStarts/components/widgets.tsx +++ b/static/app/views/insights/mobile/appStarts/components/widgets.tsx @@ -9,12 +9,12 @@ function SummaryWidgets({additionalFilters}: any) { return (
- +
@@ -25,9 +25,8 @@ export default SummaryWidgets; const WidgetLayout = styled('div')` display: grid; - grid-template-rows: 200px; grid-template-columns: 1fr 1fr; - gap: ${space(1.5)}; + gap: ${space(2)}; ${Panel} { height: 100%; From c7374deebf1ff8da7c8c45dfaf39baf0872040cc Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 14:35:13 -0400 Subject: [PATCH 04/10] convert screen load charts to widget platform --- .../common/components/miniChartPanel.tsx | 8 ++++-- .../components/charts/screenCharts.tsx | 25 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/static/app/views/insights/common/components/miniChartPanel.tsx b/static/app/views/insights/common/components/miniChartPanel.tsx index ace145a68bea98..8465b97fefc89e 100644 --- a/static/app/views/insights/common/components/miniChartPanel.tsx +++ b/static/app/views/insights/common/components/miniChartPanel.tsx @@ -13,7 +13,7 @@ type Props = { export default function MiniChartPanel({title, children, button, subtitle}: Props) { return ( - + {(title || button || subtitle) && ( @@ -26,10 +26,14 @@ export default function MiniChartPanel({title, children, button, subtitle}: Prop )} {children} - + ); } +const StyledPanel = styled(Panel)` + margin-bottom: 0; +`; + const ChartLabel = styled('p')` /* @TODO(jonasbadalic) This should be a title component and not a p */ font-size: 1rem; diff --git a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx index de9cfd8b067151..c348e84621686d 100644 --- a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx +++ b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx @@ -220,7 +220,7 @@ export function ScreenCharts({additionalFilters}: Props) { - + - + - + - + @@ -297,6 +303,8 @@ export function ScreenCharts({additionalFilters}: Props) { isLoading={isSeriesLoading} error={seriesError} aliases={chartAliases} + showReleaseAs="none" + showLegend="always" height={'100%'} /> @@ -314,12 +322,11 @@ const FourChartContainer = styled('div')` gap: ${space(2)}; `; -const ChartsContainerItem = styled('div')` - flex: 1; -`; +const ChartsContainerItem = styled('div')``; const Container = styled('div')` display: grid; grid-template-columns: 2fr 1fr; grid-column-gap: ${space(2)}; + padding-bottom: ${space(2)}; `; From cad1f157e1b38581d39659263e80f5d30193534c Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 14:44:36 -0400 Subject: [PATCH 05/10] fix styling --- static/app/views/dashboards/widgets/widget/widget.tsx | 2 +- .../insights/common/components/miniChartPanel.tsx | 10 +++++----- .../insights/mobile/appStarts/components/widgets.tsx | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/static/app/views/dashboards/widgets/widget/widget.tsx b/static/app/views/dashboards/widgets/widget/widget.tsx index 6de7cfb57dc78d..ae04ea6d5d063a 100644 --- a/static/app/views/dashboards/widgets/widget/widget.tsx +++ b/static/app/views/dashboards/widgets/widget/widget.tsx @@ -129,7 +129,7 @@ const TitleHoverItems = styled('div')` transition: opacity 0.1s; `; -const Frame = styled('div')<{ +export const Frame = styled('div')<{ borderless?: boolean; height?: number; revealActions?: 'always' | 'hover'; diff --git a/static/app/views/insights/common/components/miniChartPanel.tsx b/static/app/views/insights/common/components/miniChartPanel.tsx index 8465b97fefc89e..cc93893a8595d5 100644 --- a/static/app/views/insights/common/components/miniChartPanel.tsx +++ b/static/app/views/insights/common/components/miniChartPanel.tsx @@ -1,8 +1,8 @@ import styled from '@emotion/styled'; -import Panel from 'sentry/components/panels/panel'; import {space} from 'sentry/styles/space'; import textStyles from 'sentry/styles/text'; +import {Frame} from 'sentry/views/insights/common/components/spanDescription'; type Props = { children: React.ReactNode; @@ -13,7 +13,7 @@ type Props = { export default function MiniChartPanel({title, children, button, subtitle}: Props) { return ( - + {(title || button || subtitle) && ( @@ -26,12 +26,12 @@ export default function MiniChartPanel({title, children, button, subtitle}: Prop )} {children} - + ); } -const StyledPanel = styled(Panel)` - margin-bottom: 0; +const StyledFrame = styled(Frame)` + height: 100%; `; const ChartLabel = styled('p')` diff --git a/static/app/views/insights/mobile/appStarts/components/widgets.tsx b/static/app/views/insights/mobile/appStarts/components/widgets.tsx index 674663c17f95c7..57017673ce180b 100644 --- a/static/app/views/insights/mobile/appStarts/components/widgets.tsx +++ b/static/app/views/insights/mobile/appStarts/components/widgets.tsx @@ -14,7 +14,7 @@ function SummaryWidgets({additionalFilters}: any) {
From 421607df6d1a11682ed3e14b0154d0914ec5e38d Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 14:47:59 -0400 Subject: [PATCH 06/10] update --- .../views/insights/mobile/appStarts/components/widgets.tsx | 2 +- .../mobile/screenload/components/charts/screenCharts.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/static/app/views/insights/mobile/appStarts/components/widgets.tsx b/static/app/views/insights/mobile/appStarts/components/widgets.tsx index 57017673ce180b..9d4678fe9e03a0 100644 --- a/static/app/views/insights/mobile/appStarts/components/widgets.tsx +++ b/static/app/views/insights/mobile/appStarts/components/widgets.tsx @@ -14,7 +14,7 @@ function SummaryWidgets({additionalFilters}: any) {
diff --git a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx index c348e84621686d..572d4c346241cd 100644 --- a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx +++ b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx @@ -240,7 +240,7 @@ export function ScreenCharts({additionalFilters}: Props) { }, ]} chartKey="spansChart" - chartHeight={160} + chartHeight={150} isLoading={isDeviceClassEventsLoading} /> @@ -277,7 +277,7 @@ export function ScreenCharts({additionalFilters}: Props) { }, ]} chartKey="spansChart" - chartHeight={160} + chartHeight={150} isLoading={isDeviceClassEventsLoading} /> From b5e2e1d57722feabe3b557e2ab8f72a5b2bd15aa Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 14:55:12 -0400 Subject: [PATCH 07/10] update imports --- .../insights/common/components/miniChartPanel.tsx | 2 +- .../views/insights/mobile/screenload/constants.ts | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/static/app/views/insights/common/components/miniChartPanel.tsx b/static/app/views/insights/common/components/miniChartPanel.tsx index cc93893a8595d5..5d9afb0200adf9 100644 --- a/static/app/views/insights/common/components/miniChartPanel.tsx +++ b/static/app/views/insights/common/components/miniChartPanel.tsx @@ -2,7 +2,7 @@ import styled from '@emotion/styled'; import {space} from 'sentry/styles/space'; import textStyles from 'sentry/styles/text'; -import {Frame} from 'sentry/views/insights/common/components/spanDescription'; +import {Frame} from 'sentry/views/dashboards/widgets/widget/widget'; type Props = { children: React.ReactNode; diff --git a/static/app/views/insights/mobile/screenload/constants.ts b/static/app/views/insights/mobile/screenload/constants.ts index 9e527f111a367b..61b34e8d381cfd 100644 --- a/static/app/views/insights/mobile/screenload/constants.ts +++ b/static/app/views/insights/mobile/screenload/constants.ts @@ -1,5 +1,4 @@ import {t} from 'sentry/locale'; -import type {AggregationOutputType} from 'sentry/utils/discover/fields'; import type {MetricsProperty, SpanMetricsProperty} from 'sentry/views/insights/types'; export enum MobileCursors { @@ -59,17 +58,3 @@ export const CHART_TITLES: Readonly> = { [YAxis.FROZEN_FRAMES]: t('Frozen Frames'), [YAxis.FRAMES_DELAY]: t('Frames Delay'), }; - -export const OUTPUT_TYPE: Readonly> = { - [YAxis.WARM_START]: 'duration', - [YAxis.COLD_START]: 'duration', - [YAxis.TTID]: 'duration', - [YAxis.TTFD]: 'duration', - [YAxis.SLOW_FRAME_RATE]: 'percentage', - [YAxis.FROZEN_FRAME_RATE]: 'percentage', - [YAxis.THROUGHPUT]: 'number', - [YAxis.COUNT]: 'number', - [YAxis.SLOW_FRAMES]: 'number', - [YAxis.FROZEN_FRAMES]: 'number', - [YAxis.FRAMES_DELAY]: 'duration', -}; From 56522a76749afab67a601cad229b18d42cc02d9e Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 15:09:04 -0400 Subject: [PATCH 08/10] import aas type --- .../mobile/screenload/components/charts/screenCharts.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx index 572d4c346241cd..fc1c5dde73afe1 100644 --- a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx +++ b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx @@ -9,14 +9,14 @@ import {t} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import type {Series} from 'sentry/types/echarts'; import {defined} from 'sentry/utils'; -import {EventsMetaType} from 'sentry/utils/discover/eventView'; +import {type EventsMetaType} from 'sentry/utils/discover/eventView'; import {MutableSearch} from 'sentry/utils/tokenizeSearch'; import {formatVersion} from 'sentry/utils/versions/formatVersion'; // TODO(release-drawer): Only used in mobile/screenload/components/ // eslint-disable-next-line no-restricted-imports import {InsightsLineChartWidget} from 'sentry/views/insights/common/components/insightsLineChartWidget'; import {useMetrics} from 'sentry/views/insights/common/queries/useDiscover'; -import {DiscoverSeries} from 'sentry/views/insights/common/queries/useDiscoverSeries'; +import {type DiscoverSeries} from 'sentry/views/insights/common/queries/useDiscoverSeries'; import {useReleaseSelection} from 'sentry/views/insights/common/queries/useReleases'; import {useTopNMetricsMultiSeries} from 'sentry/views/insights/common/queries/useTopNDiscoverMultiSeries'; import {formatVersionAndCenterTruncate} from 'sentry/views/insights/common/utils/centerTruncate'; From 9070295dc69e6d6c9c6d548ec0b01c55eaccc80f Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 15:11:16 -0400 Subject: [PATCH 09/10] update --- .../screenload/components/charts/screenCharts.tsx | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx index fc1c5dde73afe1..e058398be8158c 100644 --- a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx +++ b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx @@ -154,30 +154,25 @@ export function ScreenCharts({additionalFilters}: Props) { seriesNames.forEach(seriesName => { const releaseSeries = release.data[seriesName]; + const newSeriesName = `${seriesName} ${version}`; chartAliases = { ...chartAliases, - [`${seriesName} ${version}`]: version, + [newSeriesName]: version, }; if (releaseSeries.meta?.fields[seriesName]) { - meta.fields = { - ...meta.fields, - [`${seriesName} ${version}`]: releaseSeries.meta?.fields[seriesName], - }; + meta.fields[newSeriesName] = releaseSeries.meta?.fields[seriesName]; } if (releaseSeries.meta?.units[seriesName]) { - meta.units = { - ...meta.units, - [`${seriesName} ${version}`]: releaseSeries.meta?.units[seriesName], - }; + meta.units[newSeriesName] = releaseSeries.meta?.units[seriesName]; } seriesMap[seriesName].push({ data: releaseSeries.data, meta, color, - seriesName: `${seriesName} ${version}`, + seriesName: newSeriesName, }); }); }); From 487218a00484b0c39ed81e2e2f9eb4a9ce9f2172 Mon Sep 17 00:00:00 2001 From: Dominik Buszowiecki Date: Thu, 29 May 2025 15:19:14 -0400 Subject: [PATCH 10/10] update layout --- .../components/charts/screenCharts.tsx | 182 ++++++++---------- 1 file changed, 81 insertions(+), 101 deletions(-) diff --git a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx index e058398be8158c..fd3deee3f33644 100644 --- a/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx +++ b/static/app/views/insights/mobile/screenload/components/charts/screenCharts.tsx @@ -213,97 +213,85 @@ export function ScreenCharts({additionalFilters}: Props) { function renderCharts() { return ( - - - - - - - - - - - - - - - - - - - + + + + + + + ); } @@ -311,17 +299,9 @@ export function ScreenCharts({additionalFilters}: Props) { return
{renderCharts()}
; } -const FourChartContainer = styled('div')` +const ChartContainer = styled('div')` display: grid; - grid-template-columns: repeat(2, 1fr); + grid-template-columns: repeat(3, 1fr); gap: ${space(2)}; -`; - -const ChartsContainerItem = styled('div')``; - -const Container = styled('div')` - display: grid; - grid-template-columns: 2fr 1fr; - grid-column-gap: ${space(2)}; padding-bottom: ${space(2)}; `;