Browse Source

ref(sessions): Remove sessions from incidents code (#68764)

Lyn Nagara 11 months ago
parent
commit
3ae639256a

+ 1 - 7
src/sentry/incidents/logic.py

@@ -14,7 +14,7 @@ from django.forms import ValidationError
 from django.utils import timezone as django_timezone
 from snuba_sdk import Column, Condition, Limit, Op
 
-from sentry import analytics, audit_log, features, quotas
+from sentry import analytics, audit_log, quotas
 from sentry.auth.access import SystemAccess
 from sentry.constants import CRASH_RATE_ALERT_AGGREGATE_ALIAS, ObjectStatus
 from sentry.incidents import tasks
@@ -467,7 +467,6 @@ query_datasets_to_type = {
     Dataset.Events: SnubaQuery.Type.ERROR,
     Dataset.Transactions: SnubaQuery.Type.PERFORMANCE,
     Dataset.PerformanceMetrics: SnubaQuery.Type.PERFORMANCE,
-    Dataset.Sessions: SnubaQuery.Type.CRASH_RATE,
     Dataset.Metrics: SnubaQuery.Type.CRASH_RATE,
 }
 
@@ -726,11 +725,6 @@ def update_alert_rule(
     if include_all_projects is not None:
         updated_fields["include_all_projects"] = include_all_projects
     if dataset is not None:
-        if dataset == Dataset.Sessions and features.has(
-            "organizations:alert-crash-free-metrics", alert_rule.organization, actor=user
-        ):
-            dataset = Dataset.Metrics
-
         if dataset.value != alert_rule.snuba_query.dataset:
             updated_query_fields["dataset"] = dataset
     if query_type is not None:

+ 1 - 1
src/sentry/incidents/serializers/__init__.py

@@ -32,7 +32,7 @@ QUERY_TYPE_VALID_EVENT_TYPES = {
 QUERY_TYPE_VALID_DATASETS = {
     SnubaQuery.Type.ERROR: {Dataset.Events},
     SnubaQuery.Type.PERFORMANCE: {Dataset.Transactions, Dataset.PerformanceMetrics},
-    SnubaQuery.Type.CRASH_RATE: {Dataset.Metrics, Dataset.Sessions},
+    SnubaQuery.Type.CRASH_RATE: {Dataset.Metrics},
 }
 
 # TODO(davidenwang): eventually we should pass some form of these to the event_search parser to raise an error

+ 1 - 8
src/sentry/incidents/serializers/alert_rule.py

@@ -281,13 +281,6 @@ class AlertRuleSerializer(CamelSnakeModelSerializer):
 
     def _validate_query(self, data):
         dataset = data.setdefault("dataset", Dataset.Events)
-        # If metric based crash rate alerts are enabled, coerce sessions over
-        if dataset == Dataset.Sessions and features.has(
-            "organizations:alert-crash-free-metrics",
-            self.context["organization"],
-            actor=self.context.get("user", None),
-        ):
-            dataset = data["dataset"] = Dataset.Metrics
 
         if features.has(
             "organizations:custom-metrics",
@@ -413,7 +406,7 @@ class AlertRuleSerializer(CamelSnakeModelSerializer):
 
     @staticmethod
     def _validate_time_window(dataset, time_window):
-        if dataset in [Dataset.Sessions, Dataset.Metrics]:
+        if dataset == Dataset.Metrics:
             # Validate time window
             if time_window not in CRASH_RATE_ALERTS_ALLOWED_TIME_WINDOWS:
                 raise serializers.ValidationError(

+ 1 - 3
src/sentry/incidents/subscription_processor.py

@@ -394,9 +394,7 @@ class SubscriptionProcessor:
         return aggregation_value
 
     def get_aggregation_value(self, subscription_update: QuerySubscriptionUpdate) -> float | None:
-        if self.subscription.snuba_query.dataset == Dataset.Sessions.value:
-            aggregation_value = self.get_crash_rate_alert_aggregation_value(subscription_update)
-        elif self.subscription.snuba_query.dataset == Dataset.Metrics.value:
+        if self.subscription.snuba_query.dataset == Dataset.Metrics.value:
             aggregation_value = self.get_crash_rate_alert_metrics_aggregation_value(
                 subscription_update
             )

+ 1 - 1
tests/sentry/incidents/endpoints/test_organization_alert_rule_index.py

@@ -1005,7 +1005,7 @@ class AlertRuleCreateEndpointTestCrashRateAlert(AlertRuleIndexBase):
             "projects": [self.project.slug],
             "owner": self.user.id,
             "name": "JustAValidTestRule",
-            "dataset": "sessions",
+            "dataset": "metrics",
             "eventTypes": [],
         }
 

+ 1 - 1
tests/sentry/integrations/slack/test_unfurl.py

@@ -413,7 +413,7 @@ class UnfurlTest(TestCase):
         alert_rule = self.create_alert_rule(
             query="",
             aggregate="percentage(sessions_crashed, sessions) AS _crash_rate_alert_aggregate",
-            dataset=Dataset.Sessions,
+            dataset=Dataset.Metrics,
             time_window=60,
             resolve_threshold=10,
             threshold_period=1,