-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add index on started_at column in alert groups #2516
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
joeyorlando
commented
Jul 13, 2023
Comment on lines
-99
to
-114
def get_auditable_alert_groups_started_at_range() -> typing.Tuple[datetime.datetime, datetime.datetime]: | ||
""" | ||
NOTE: this started_at__range is a bit of a hack.. | ||
we wanted to avoid performing a migration on the alerts_alertgroup table to update | ||
alert groups where raw_escalation_snapshot was None. raw_escalation_snapshot being None is a legitimate case, | ||
where the alert group's integration does not have an escalation chain associated with it. | ||
|
||
However, we wanted a way to be able to differentiate between "actually None" and "there was an error writing to | ||
raw_escalation_snapshot" (as this is performed async by a celery task). | ||
|
||
This field was updated, in the commit that added this comment, to no longer be set to None by default. | ||
As part of this celery task we do a check that this field is in fact not None, so if we were to check older | ||
alert groups, whose integration did not have an escalation chain at the time the alert group was created | ||
we would raise errors | ||
""" | ||
return (datetime.datetime(2023, 3, 25, tzinfo=pytz.UTC), timezone.now() - datetime.timedelta(days=2)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is no longer relevant and is safe to remove. We are only looking at alert groups for the past 2 days. It has been ~4 months since the release where raw_escalation_snapshot
is no longer being set to None
.
Konstantinov-Innokentii
approved these changes
Jul 13, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does
Adds an index on the
started_at
column in thealerts_alertgroup
table. For the alert groups query used by thecheck_escalation_finished_task
, this resulted in a huge performance boost, taking the query time from 89mins to 4secs (on our largest production dataset).Which issue(s) this PR fixes
closes #724
closes https://github.com/grafana/oncall-private/issues/1713
Checklist
pr:no public docs
PR label added if not required)CHANGELOG.md
updated (orpr:no changelog
PR label added if not required)