@@ -80,13 +80,7 @@ def get_visible(
80
80
with sentry_sdk .start_span (op = "GroupTypeRegistry.get_visible" ) as span :
81
81
released = [gt for gt in self .all () if gt .released ]
82
82
feature_to_grouptype = {
83
- (
84
- gt .build_visible_feature_name ()
85
- if not gt .use_flagpole_for_all_features
86
- else gt .build_visible_flagpole_feature_name ()
87
- ): gt
88
- for gt in self .all ()
89
- if not gt .released
83
+ gt .build_visible_feature_name (): gt for gt in self .all () if not gt .released
90
84
}
91
85
batch_features = features .batch_has (
92
86
list (feature_to_grouptype .keys ()), actor = actor , organization = organization
@@ -188,26 +182,15 @@ class GroupType:
188
182
# Defaults to true to maintain the default workflow notification behavior as it exists for error group types.
189
183
enable_status_change_workflow_notifications : bool = True
190
184
detector_config_schema : ClassVar [dict [str , Any ]] = {}
191
- # Temporary setting so that we can slowly migrate all perf issues to use flagpole for all feature flags
192
- use_flagpole_for_all_features = False
193
185
194
186
def __init_subclass__ (cls : type [GroupType ], ** kwargs : Any ) -> None :
195
187
super ().__init_subclass__ (** kwargs )
196
188
registry .add (cls )
197
189
198
190
if not cls .released :
199
191
features .add (cls .build_visible_feature_name (), OrganizationFeature , True )
200
- features .add (cls .build_ingest_feature_name (), OrganizationFeature )
201
- features .add (cls .build_post_process_group_feature_name (), OrganizationFeature )
202
-
203
- # XXX: Temporary shim here. We can't use the existing feature flag names, because they're auto defined
204
- # as being option backed. So options automator isn't able to validate them and fails. We'll instead
205
- # move to new flag names
206
- features .add (cls .build_visible_flagpole_feature_name (), OrganizationFeature , True )
207
- features .add (cls .build_ingest_flagpole_feature_name (), OrganizationFeature , True )
208
- features .add (
209
- cls .build_post_process_group_flagpole_feature_name (), OrganizationFeature , True
210
- )
192
+ features .add (cls .build_ingest_feature_name (), OrganizationFeature , True )
193
+ features .add (cls .build_post_process_group_feature_name (), OrganizationFeature , True )
211
194
212
195
def __post_init__ (self ) -> None :
213
196
valid_categories = [category .value for category in GroupCategory ]
@@ -219,25 +202,14 @@ def allow_ingest(cls, organization: Organization) -> bool:
219
202
if cls .released :
220
203
return True
221
204
222
- flag_name = (
223
- cls .build_ingest_feature_name ()
224
- if not cls .use_flagpole_for_all_features
225
- else cls .build_ingest_flagpole_feature_name ()
226
- )
227
- return features .has (flag_name , organization )
205
+ return features .has (cls .build_ingest_feature_name (), organization )
228
206
229
207
@classmethod
230
208
def allow_post_process_group (cls , organization : Organization ) -> bool :
231
209
if cls .released :
232
210
return True
233
211
234
- flag_name = (
235
- cls .build_post_process_group_feature_name ()
236
- if not cls .use_flagpole_for_all_features
237
- else cls .build_post_process_group_flagpole_feature_name ()
238
- )
239
-
240
- return features .has (flag_name , organization )
212
+ return features .has (cls .build_post_process_group_feature_name (), organization )
241
213
242
214
@classmethod
243
215
def should_detect_escalation (cls ) -> bool :
@@ -251,34 +223,21 @@ def build_feature_name_slug(cls) -> str:
251
223
return cls .slug .replace ("_" , "-" )
252
224
253
225
@classmethod
254
- def build_base_feature_name (cls , prefix : str = "" ) -> str :
255
- return f"organizations:{ prefix } { cls .build_feature_name_slug ()} "
226
+ def build_base_feature_name (cls ) -> str :
227
+ return f"organizations:issue- { cls .build_feature_name_slug ()} "
256
228
257
229
@classmethod
258
230
def build_visible_feature_name (cls ) -> str :
259
231
return f"{ cls .build_base_feature_name ()} -visible"
260
232
261
- @classmethod
262
- def build_visible_flagpole_feature_name (cls ) -> str :
263
- # We'll rename this too so that all the feature names are consistent
264
- return f"{ cls .build_base_feature_name ("issue-" )} -visible"
265
-
266
233
@classmethod
267
234
def build_ingest_feature_name (cls ) -> str :
268
235
return f"{ cls .build_base_feature_name ()} -ingest"
269
236
270
- @classmethod
271
- def build_ingest_flagpole_feature_name (cls ) -> str :
272
- return f"{ cls .build_base_feature_name ("issue-" )} -ingest"
273
-
274
237
@classmethod
275
238
def build_post_process_group_feature_name (cls ) -> str :
276
239
return f"{ cls .build_base_feature_name ()} -post-process-group"
277
240
278
- @classmethod
279
- def build_post_process_group_flagpole_feature_name (cls ) -> str :
280
- return f"{ cls .build_base_feature_name ("issue-" )} -post-process-group"
281
-
282
241
283
242
def get_all_group_type_ids () -> set [int ]:
284
243
# TODO: Replace uses of this with the registry
@@ -600,7 +559,6 @@ class MetricIssuePOC(GroupType):
600
559
enable_auto_resolve = False
601
560
enable_escalation_detection = False
602
561
enable_status_change_workflow_notifications = False
603
- use_flagpole_for_all_features = True
604
562
605
563
606
564
def should_create_group (
0 commit comments