Skip to content

Commit

Permalink
feat(crons): Add thresholds to monitor config (#54516)
Browse files Browse the repository at this point in the history
Adds `failure_issue_threshold` for value to create issues and
`recovery_threshold` for value to resolve issues.
  • Loading branch information
rjo100 authored Aug 10, 2023
1 parent 74bc093 commit d21b29c
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/sentry/monitors/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@
"schedule_type": {"type": "integer"},
"schedule": {"type": ["string", "array"]},
"alert_rule_id": {"type": ["integer", "null"]},
"failure_issue_threshold": {"type": ["integer", "null"]},
"recovery_threshold": {"type": ["integer", "null"]},
},
# TODO(davidenwang): Old monitors may not have timezone or schedule_type, these should be added here once we've cleaned up old data
"required": ["checkin_margin", "max_runtime", "schedule"],
Expand Down
16 changes: 16 additions & 0 deletions src/sentry/monitors/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,22 @@ class ConfigValidator(serializers.Serializer):
help_text="tz database style timezone string",
)

failure_issue_threshold = EmptyIntegerField(
required=False,
allow_null=True,
default=None,
help_text="How many consecutive missed or failed check-ins in a row before creating a new issue.",
min_value=1,
)

recovery_threshold = EmptyIntegerField(
required=False,
allow_null=True,
default=None,
help_text="How many successful check-ins in a row before resolving an issue.",
min_value=1,
)

def bind(self, *args, **kwargs):
super().bind(*args, **kwargs)
# Inherit instance data when used as a nested serializer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ def test_simple(self, mock_record):
"schedule": "0 0 * * *",
"checkin_margin": None,
"max_runtime": None,
"failure_issue_threshold": None,
"recovery_threshold": None,
}

self.project.refresh_from_db()
Expand Down

0 comments on commit d21b29c

Please sign in to comment.