commit
ae0ecf3fcf
2 changed files with 35 additions and 5 deletions
|
|
@ -13,6 +13,7 @@ from apps.alerts.constants import TASK_DELAY_SECONDS
|
|||
from apps.alerts.incident_appearance.templaters import TemplateLoader
|
||||
from apps.alerts.tasks import distribute_alert, send_alert_group_signal
|
||||
from common.jinja_templater import apply_jinja_template
|
||||
from common.jinja_templater.apply_jinja_template import JinjaTemplateError, JinjaTemplateWarning
|
||||
from common.public_primary_keys import generate_public_primary_key, increase_public_primary_key_length
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -189,12 +190,23 @@ class Alert(models.Model):
|
|||
# set web_title_cache to web title to allow alert group searching based on web_title_cache
|
||||
web_title_template = template_manager.get_attr_template("title", alert_receive_channel, render_for="web")
|
||||
if web_title_template:
|
||||
web_title_cache = apply_jinja_template(web_title_template, raw_request_data)
|
||||
try:
|
||||
web_title_cache = apply_jinja_template(web_title_template, raw_request_data)
|
||||
except (JinjaTemplateError, JinjaTemplateWarning) as e:
|
||||
web_title_cache = e.fallback_message
|
||||
logger.warning(
|
||||
f"web_title_cache error on channel={alert_receive_channel.public_primary_key}: {e.fallback_message}"
|
||||
)
|
||||
else:
|
||||
web_title_cache = None
|
||||
|
||||
if grouping_id_template is not None:
|
||||
group_distinction = apply_jinja_template(grouping_id_template, raw_request_data)
|
||||
try:
|
||||
group_distinction = apply_jinja_template(grouping_id_template, raw_request_data)
|
||||
except (JinjaTemplateError, JinjaTemplateWarning) as e:
|
||||
logger.warning(
|
||||
f"grouping_id_template error on channel={alert_receive_channel.public_primary_key}: {e.fallback_message}"
|
||||
)
|
||||
|
||||
# Insert random uuid to prevent grouping of demo alerts or alerts with group_distinction=None
|
||||
if is_demo or not group_distinction:
|
||||
|
|
@ -204,13 +216,25 @@ class Alert(models.Model):
|
|||
group_distinction = hashlib.md5(str(group_distinction).encode()).hexdigest()
|
||||
|
||||
if resolve_condition_template is not None:
|
||||
is_resolve_signal = apply_jinja_template(resolve_condition_template, payload=raw_request_data)
|
||||
try:
|
||||
is_resolve_signal = apply_jinja_template(resolve_condition_template, payload=raw_request_data)
|
||||
except (JinjaTemplateError, JinjaTemplateWarning) as e:
|
||||
logger.warning(
|
||||
f"resolve_condition_template error on channel={alert_receive_channel.public_primary_key}: {e.fallback_message}"
|
||||
)
|
||||
|
||||
if isinstance(is_resolve_signal, str):
|
||||
is_resolve_signal = is_resolve_signal.strip().lower() in ["1", "true", "ok"]
|
||||
else:
|
||||
is_resolve_signal = False
|
||||
if acknowledge_condition_template is not None:
|
||||
is_acknowledge_signal = apply_jinja_template(acknowledge_condition_template, payload=raw_request_data)
|
||||
try:
|
||||
is_acknowledge_signal = apply_jinja_template(acknowledge_condition_template, payload=raw_request_data)
|
||||
except (JinjaTemplateError, JinjaTemplateWarning) as e:
|
||||
logger.warning(
|
||||
f"acknowledge_condition_template error on channel={alert_receive_channel.public_primary_key}: {e.fallback_message}"
|
||||
)
|
||||
|
||||
if isinstance(is_acknowledge_signal, str):
|
||||
is_acknowledge_signal = is_acknowledge_signal.strip().lower() in ["1", "true", "ok"]
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -467,7 +467,13 @@ def post_or_update_log_report_message_task(alert_group_pk, slack_team_identity_p
|
|||
)
|
||||
def post_slack_rate_limit_message(integration_id):
|
||||
AlertReceiveChannel = apps.get_model("alerts", "AlertReceiveChannel")
|
||||
integration = AlertReceiveChannel.objects.get(pk=integration_id)
|
||||
|
||||
try:
|
||||
integration = AlertReceiveChannel.objects.get(pk=integration_id)
|
||||
except AlertReceiveChannel.DoesNotExist:
|
||||
logger.warning(f"AlertReceiveChannel {integration_id} doesn't exist")
|
||||
return
|
||||
|
||||
if not compare_escalations(post_slack_rate_limit_message.request.id, integration.rate_limit_message_task_id):
|
||||
logger.info(
|
||||
f"post_slack_rate_limit_message. integration {integration_id}. ID mismatch. "
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue