# What this PR does This PR: - modifies the `check_escalation_finished_task` celery task to: - do stricter escalation validation based on the alert group's escalation snapshot (see the `audit_alert_group_escalation` method in `engine/apps/alerts/tasks/check_escalation_finished.py` for the validation logic) - use a read-only database for querying alert-groups if one is configured, otherwise use the "default" one - ping a configurable heartbeat (new env var `ALERT_GROUP_ESCALATION_AUDITOR_CELERY_TASK_HEARTBEAT_URL` added) - increase the task frequency from every 10 to every 13 minutes (this can be configured via an env variable) - adds public documentation on how to configure this auditor task - modifies the local celery startup command to properly take into consideration all celery related env vars (similar to the ones we use in `engine/celery_with_exporter.sh`; this made it easier to enable `celery beat` locally for testing) - removes the following code: - removes references to `AlertGroup.estimate_escalation_finish_time` and marks the model field as deprecated using the [`django-deprecate-fields` library](https://pypi.org/project/django-deprecate-fields/). This field was only used for the previous version of this validation task - `EscalationSnapshotMixin.calculate_eta_for_finish_escalation` was only used to calculate the value for `AlertGroup.estimate_escalation_finish_time` - `calculate_escalation_finish_time` celery task ## Which issue(s) this PR fixes https://github.com/grafana/oncall-private/issues/1558 ## Checklist - [x] Tests updated - [x] Documentation added - [x] `CHANGELOG.md` updated
28 lines
1.9 KiB
Python
28 lines
1.9 KiB
Python
from .acknowledge_reminder import acknowledge_reminder_task # noqa: F401
|
|
from .alert_group_web_title_cache import ( # noqa:F401
|
|
update_web_title_cache,
|
|
update_web_title_cache_for_alert_receive_channel,
|
|
)
|
|
from .call_ack_url import call_ack_url # noqa: F401
|
|
from .check_escalation_finished import check_escalation_finished_task # noqa: F401
|
|
from .create_contact_points_for_datasource import create_contact_points_for_datasource # noqa: F401
|
|
from .create_contact_points_for_datasource import schedule_create_contact_points_for_datasource # noqa: F401
|
|
from .custom_button_result import custom_button_result # noqa: F401
|
|
from .delete_alert_group import delete_alert_group # noqa: F401
|
|
from .distribute_alert import distribute_alert # noqa: F401
|
|
from .escalate_alert_group import escalate_alert_group # noqa: F401
|
|
from .invite_user_to_join_incident import invite_user_to_join_incident # noqa: F401
|
|
from .maintenance import disable_maintenance # noqa: F401
|
|
from .notify_all import notify_all_task # noqa: F401
|
|
from .notify_group import notify_group_task # noqa: F401
|
|
from .notify_ical_schedule_shift import notify_ical_schedule_shift # noqa: F401
|
|
from .notify_user import notify_user_task # noqa: F401
|
|
from .resolve_alert_group_by_source_if_needed import resolve_alert_group_by_source_if_needed # noqa: F401
|
|
from .resolve_by_last_step import resolve_by_last_step_task # noqa: F401
|
|
from .send_alert_group_signal import send_alert_group_signal # noqa: F401
|
|
from .send_update_log_report_signal import send_update_log_report_signal # noqa: F401
|
|
from .send_update_postmortem_signal import send_update_postmortem_signal # noqa: F401
|
|
from .send_update_resolution_note_signal import send_update_resolution_note_signal # noqa: F401
|
|
from .sync_grafana_alerting_contact_points import sync_grafana_alerting_contact_points # noqa: F401
|
|
from .unsilence import unsilence_task # noqa: F401
|
|
from .wipe import wipe # noqa: F401
|