Skip to content

Commit

Permalink
ELE-1008 alert tags are always null (#916)
Browse files Browse the repository at this point in the history
* ELE-1008 alert tags are always null

* make tags extraction safer
  • Loading branch information
IDoneShaveIt committed Jun 4, 2023
1 parent 9dd07ed commit 66edfa0
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 3 deletions.
4 changes: 2 additions & 2 deletions elementary/monitor/alerts/alert.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def __init__(
alert_suppression_interval: int = 0,
alert_fields: Optional[list] = None,
timezone: Optional[str] = None,
meta: Optional[dict] = None,
test_meta: Optional[dict] = None,
model_meta: Optional[str] = None,
alerts_table: Optional[str] = None,
slack_group_alerts_by: Optional[str] = None,
Expand Down Expand Up @@ -61,7 +61,7 @@ def __init__(
self.schema_name = schema_name
self.owners = owners
self.tags = tags
self.meta = meta
self.meta = test_meta
self.model_meta = try_load_json(model_meta) or {}
self.status = status
self.subscribers = subscribers
Expand Down
2 changes: 1 addition & 1 deletion elementary/monitor/fetchers/alerts/normalized_alert.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def _normalize_alert(self):
self._get_alert_meta_attrs("owner")
)
normalized_alert[TAGS_FIELD] = unpack_and_flatten_and_dedup_list_of_strings(
self._get_alert_meta_attrs(TAGS_FIELD)
normalized_alert.get(TAGS_FIELD)
)

normalized_alert["slack_channel"] = self._get_alert_channel()
Expand Down
22 changes: 22 additions & 0 deletions tests/unit/monitor/alerts/test_normalized_alert.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
OWNERS_FIELD,
SUBSCRIBERS_KEY,
TABLE_FIELD,
TAGS_FIELD,
TEST_META_KEY,
NormalizedAlert,
)
Expand Down Expand Up @@ -279,3 +280,24 @@ def test_get_alert_fields():
)
normalized_alert = NormalizedAlert(alert)
assert normalized_alert._get_alert_fields() == DEFAULT_ALERT_FIELDS


def test_normalized_alert_tags():
tags = ["first", "second"]

alert = dict(tags=json.dumps(tags))
normalized_alert = NormalizedAlert(alert).get_normalized_alert()
assert json.dumps(normalized_alert.get(TAGS_FIELD).sort()) == json.dumps(
tags.sort()
)

alert = dict(tags=tags)
normalized_alert = NormalizedAlert(alert).get_normalized_alert()
assert json.dumps(normalized_alert.get(TAGS_FIELD).sort()) == json.dumps(
tags.sort()
)

# No tags return empty list
alert = dict()
normalized_alert = NormalizedAlert(alert).get_normalized_alert()
assert normalized_alert.get(TAGS_FIELD) == []

0 comments on commit 66edfa0

Please sign in to comment.