def test(self): stat_keys = build_alert_rule_stat_keys(AlertRule(id=1), QuerySubscription(project_id=2)) assert stat_keys == [ "{alert_rule:1:project:2}:last_update", "{alert_rule:1:project:2}:resolve_triggered", ]
def test(self): stat_keys = build_trigger_stat_keys( AlertRule(id=1), QuerySubscription(project_id=2), [AlertRuleTrigger(id=3), AlertRuleTrigger(id=4)], ) assert stat_keys == [ "{alert_rule:1:project:2}:trigger:3:alert_triggered", "{alert_rule:1:project:2}:trigger:4:alert_triggered", ]
def test(self): alert_rule = AlertRule(id=1) sub = QuerySubscription(project_id=2) date = datetime.utcnow().replace(tzinfo=pytz.utc) update_alert_rule_stats(alert_rule, sub, date, {3: 20, 4: 3}, 15) client = get_redis_client() results = map( int, client.mget([ "{alert_rule:1:project:2}:last_update", "{alert_rule:1:project:2}:trigger:3:alert_triggered", "{alert_rule:1:project:2}:trigger:4:alert_triggered", "{alert_rule:1:project:2}:resolve_triggered", ]), ) assert results == [int(to_timestamp(date)), 20, 3, 15]
def test(self): alert_rule = AlertRule(id=1) sub = QuerySubscription(project_id=2) update_alert_rule_stats(alert_rule, sub, 1234, {3: 20, 4: 3}, {3: 10, 4: 15}) client = get_redis_client() results = map( int, client.mget( [ "{alert_rule:1:project:2}:last_update", "{alert_rule:1:project:2}:trigger:3:alert_triggered", "{alert_rule:1:project:2}:trigger:3:resolve_triggered", "{alert_rule:1:project:2}:trigger:4:alert_triggered", "{alert_rule:1:project:2}:trigger:4:resolve_triggered", ] ), ) assert results == [1234, 20, 10, 3, 15]
def test(self): alert_rule = AlertRule(id=1) sub = QuerySubscription(project_id=2) triggers = [AlertRuleTrigger(id=3), AlertRuleTrigger(id=4)] client = get_redis_client() pipeline = client.pipeline() timestamp = datetime.now().replace(tzinfo=pytz.utc, microsecond=0) pipeline.set("{alert_rule:1:project:2}:last_update", int(to_timestamp(timestamp))) pipeline.set("{alert_rule:1:project:2}:resolve_triggered", 20) for key, value in [ ("{alert_rule:1:project:2}:trigger:3:alert_triggered", 1), ("{alert_rule:1:project:2}:trigger:4:alert_triggered", 3), ]: pipeline.set(key, value) pipeline.execute() last_update, alert_counts, resolve_counts = get_alert_rule_stats(alert_rule, sub, triggers) assert last_update == timestamp assert alert_counts == {3: 1, 4: 3} assert resolve_counts == 20
def test(self): alert_rule = AlertRule(id=1) sub = QuerySubscription(project_id=2) triggers = [AlertRuleTrigger(id=3), AlertRuleTrigger(id=4)] client = get_redis_client() pipeline = client.pipeline() pipeline.set("{alert_rule:1:project:2}:last_update", 1234) for key, value in [ ("{alert_rule:1:project:2}:trigger:3:alert_triggered", 1), ("{alert_rule:1:project:2}:trigger:3:resolve_triggered", 2), ("{alert_rule:1:project:2}:trigger:4:alert_triggered", 3), ("{alert_rule:1:project:2}:trigger:4:resolve_triggered", 4), ]: pipeline.set(key, value) pipeline.execute() last_update, alert_counts, resolve_counts = get_alert_rule_stats(alert_rule, sub, triggers) assert last_update == 1234 assert alert_counts == {3: 1, 4: 3} assert resolve_counts == {3: 2, 4: 4}