def get_grouping_variants(self, force_config=None): """ This is similar to `get_hashes` but will instead return the grouping components for each variant in a dictionary. """ from sentry.grouping.api import get_grouping_variants_for_event # Forcing configs has two separate modes. One is where just the # config ID is given in which case it's merged with the stored or # default config dictionary if force_config is not None: if isinstance(force_config, six.string_types): stored_config = self.get_grouping_config() config = dict(stored_config) config['id'] = force_config else: config = force_config # Otherwise we just use the same grouping config as stored. if # this is None the `get_grouping_variants_for_event` will fill in # the default. else: config = self.data.get('grouping_config') return get_grouping_variants_for_event(self, config)
def get_grouping_variants(self, force_config=None, normalize_stacktraces=False): """ This is similar to `get_hashes` but will instead return the grouping components for each variant in a dictionary. If `normalize_stacktraces` is set to `True` then the event data will be modified for `in_app` in addition to event variants being created. This means that after calling that function the event data has been modified in place. """ from sentry.grouping.api import get_grouping_variants_for_event, load_grouping_config from sentry.stacktraces.processing import normalize_stacktraces_for_grouping # Forcing configs has two separate modes. One is where just the # config ID is given in which case it's merged with the stored or # default config dictionary if force_config is not None: if isinstance(force_config, six.string_types): stored_config = self.get_grouping_config() config = dict(stored_config) config["id"] = force_config else: config = force_config # Otherwise we just use the same grouping config as stored. if # this is None the `get_grouping_variants_for_event` will fill in # the default. else: config = self.data.get("grouping_config") config = load_grouping_config(config) if normalize_stacktraces: normalize_stacktraces_for_grouping(self.data, config) return get_grouping_variants_for_event(self, config)
def get_grouping_variants(self, force_config=None): """ This is similar to `get_hashes` but will instead return the grouping components for each variant in a dictionary. """ from sentry.grouping.api import get_grouping_variants_for_event return get_grouping_variants_for_event(self, config_name=force_config)
def get_grouping_variants(self, force_config=None): """ This is similar to `get_hashes` but will instead return the grouping components for each variant in a dictionary. """ from sentry.grouping.api import get_grouping_variants_for_event # Forcing configs has two separate modes. One is where just the # config ID is given in which case it's merged with the stored or # default config dictionary if force_config is not None: if isinstance(force_config, six.string_types): stored_config = self.get_grouping_config() config = dict(stored_config) config['id'] = force_config else: config = force_config # Otherwise we just use the same grouping config as stored. if # this is None the `get_grouping_variants_for_event` will fill in # the default. else: config = self.data.get('grouping_config') return get_grouping_variants_for_event(self, config)
def _get_grouping_variants(event): from sentry.grouping.api import get_grouping_variants_for_event, load_grouping_config from sentry.stacktraces.processing import normalize_stacktraces_for_grouping config = event.data.get("grouping_config") config = load_grouping_config(config) return get_grouping_variants_for_event(event, config)
def get_grouping_variants(self, force_config=None, normalize_stacktraces=False): """ This is similar to `get_hashes` but will instead return the grouping components for each variant in a dictionary. If `normalize_stacktraces` is set to `True` then the event data will be modified for `in_app` in addition to event variants being created. This means that after calling that function the event data has been modified in place. """ from sentry.grouping.api import get_grouping_variants_for_event, load_grouping_config # Forcing configs has two separate modes. One is where just the # config ID is given in which case it's merged with the stored or # default config dictionary if force_config is not None: if isinstance(force_config, str): stored_config = self.get_grouping_config() config = dict(stored_config) config["id"] = force_config else: config = force_config # Otherwise we just use the same grouping config as stored. if # this is None we use the project's default config. else: config = self.get_grouping_config() config = load_grouping_config(config) if normalize_stacktraces: with sentry_sdk.start_span( op="grouping.normalize_stacktraces_for_grouping") as span: span.set_tag("project", self.project_id) span.set_tag("event_id", self.event_id) self.normalize_stacktraces_for_grouping(config) with sentry_sdk.start_span( op="grouping.get_grouping_variants") as span: span.set_tag("project", self.project_id) span.set_tag("event_id", self.event_id) return get_grouping_variants_for_event(self, config)