diff --git a/snuba/datasets/configuration/group_attributes/entities/group_attributes.yaml b/snuba/datasets/configuration/group_attributes/entities/group_attributes.yaml index 9de6e65072..8a68f73ec2 100644 --- a/snuba/datasets/configuration/group_attributes/entities/group_attributes.yaml +++ b/snuba/datasets/configuration/group_attributes/entities/group_attributes.yaml @@ -10,6 +10,7 @@ schema: { name: group_status, type: UInt, args: { size: 8 } }, { name: group_substatus, type: UInt, args: { size: 8, schema_modifiers: [ nullable ] } }, { name: group_priority, type: UInt, args: { size: 8, schema_modifiers: [ nullable ] } }, + { name: group_first_release_id, type: UUID, args: { schema_modifiers: [ nullable ] } }, { name: group_first_seen, type: DateTime }, { name: group_num_comments, type: UInt, args: { size: 64 } }, diff --git a/snuba/datasets/configuration/group_attributes/storages/group_attributes.yaml b/snuba/datasets/configuration/group_attributes/storages/group_attributes.yaml index 3c88e80b25..f1bd348320 100644 --- a/snuba/datasets/configuration/group_attributes/storages/group_attributes.yaml +++ b/snuba/datasets/configuration/group_attributes/storages/group_attributes.yaml @@ -17,6 +17,7 @@ schema: { name: group_status, type: UInt, args: { size: 8 } }, { name: group_substatus, type: UInt, args: { size: 8, schema_modifiers: [ nullable ] } }, { name: group_priority, type: UInt, args: { size: 8, schema_modifiers: [ nullable ] } }, + { name: group_first_release_id, type: UUID, args: { schema_modifiers: [ nullable ] } }, { name: group_first_seen, type: DateTime }, { name: group_num_comments, type: UInt, args: { size: 64 } }, @@ -58,6 +59,9 @@ allocation_policies: query_processors: - processor: TableRateLimit - processor: ConsistencyEnforcerProcessor + - processor: UUIDColumnProcessor + args: + columns: [group_first_release_id] mandatory_condition_checkers: - condition: ProjectIdEnforcer diff --git a/snuba/datasets/processors/group_attributes_processor.py b/snuba/datasets/processors/group_attributes_processor.py index 6ebf61b961..6861deafcf 100644 --- a/snuba/datasets/processors/group_attributes_processor.py +++ b/snuba/datasets/processors/group_attributes_processor.py @@ -26,6 +26,7 @@ def process_message( "group_status": message["status"], "group_substatus": message["substatus"], "group_priority": message.get("priority", None), + "group_first_release_id": message.get("first_release_id", None), "group_first_seen": datetime.strptime( message["first_seen"], settings.PAYLOAD_DATETIME_FORMAT ), diff --git a/tests/datasets/test_group_attributes_processor.py b/tests/datasets/test_group_attributes_processor.py index b91fd8a66f..f86bf9724a 100644 --- a/tests/datasets/test_group_attributes_processor.py +++ b/tests/datasets/test_group_attributes_processor.py @@ -1,3 +1,4 @@ +import uuid from datetime import datetime from typing import Optional @@ -14,6 +15,8 @@ from snuba.processor import ProcessedMessage from snuba.writer import WriterTableRow +RELEASE_ID = uuid.uuid4() + @pytest.fixture def group_created() -> GroupAttributesSnapshot: @@ -23,6 +26,8 @@ def group_created() -> GroupAttributesSnapshot: "group_id": 1, "status": 0, "substatus": 7, + "priority": 25, + "first_release_id": RELEASE_ID, "first_seen": "2023-02-27T15:40:12.223000Z", "num_comments": 0, "assignee_user_id": None, @@ -59,6 +64,8 @@ def test_group_created(self, group_created): "group_id": 1, "group_status": 0, "group_substatus": 7, + "group_priority": 25, + "group_first_release_id": RELEASE_ID, "group_first_seen": datetime.strptime( group_created["first_seen"], settings.PAYLOAD_DATETIME_FORMAT ),