From 70d559cafae112453ecaa87cb249417b68d3451a Mon Sep 17 00:00:00 2001 From: Giovanni Silva Date: Sat, 18 Nov 2023 01:11:51 -0300 Subject: [PATCH] integrations: Update New Relic integration. Newrelic has introduced a new update. This commit updates the exisiting integration by adding support for new types of payloads and cleaning up legacy codes and fixtures. Fixes #29729. Co-authored-by: Pieter CK Co-authored-by: Lauryn Menard --- .../integrations/bot_avatars/newrelic.png | Bin 4366 -> 3130 bytes static/images/integrations/logos/newrelic.svg | Bin 774 -> 356 bytes static/images/integrations/newrelic/001.png | Bin 47740 -> 73023 bytes static/images/integrations/newrelic/002.png | Bin 36908 -> 0 bytes static/images/integrations/newrelic/003.png | Bin 34015 -> 0 bytes .../images/integrations/newrelic/newrelic.png | Bin 18056 -> 0 bytes zerver/lib/integrations.py | 6 +- zerver/webhooks/newrelic/doc.md | 75 ++- .../essential_fields_default_payload.json | 11 + ...incident_acknowledged_default_payload.json | 25 + .../fixtures/incident_acknowledged_new.json | 11 - .../fixtures/incident_acknowledged_old.json | 11 - ...nt_acknowledged_provided_base_payload.json | 19 + ...ncident_activated_new_default_payload.json | 25 + ...t_activated_new_provided_base_payload.json | 20 + .../fixtures/incident_active_new.json | 11 - .../incident_closed_default_payload.json | 17 + .../fixtures/incident_closed_new.json | 11 - .../fixtures/incident_closed_old.json | 11 - ...incident_closed_provided_base_payload.json | 20 + .../incident_created_default_payload.json | 25 + .../fixtures/incident_created_new.json | 11 - ...ncident_created_provided_base_payload.json | 15 + ...default_base_with_zulip_custom_fields.json | 33 ++ .../fixtures/incident_default_fields_new.json | 5 - .../fixtures/incident_default_fields_old.json | 4 - .../incident_malformatted_time_new.json | 11 - .../incident_malformatted_time_old.json | 11 - .../incident_malformed_timestamp.json | 12 + .../incident_missing_current_state_old.json | 10 - .../fixtures/incident_missing_state_new.json | 10 - .../incident_missing_timestamp_new.json | 10 - .../incident_missing_timestamp_old.json | 10 - .../fixtures/incident_opened_old.json | 11 - ...rovided_base_with_zulip_custom_fields.json | 19 + .../incident_state_not_recognized_new.json | 11 - .../incident_state_not_recognized_old.json | 11 - .../fixtures/incident_time_too_large.json | 17 + .../fixtures/incident_time_too_large_new.json | 11 - .../fixtures/incident_time_too_large_old.json | 11 - ...dent_with_invalid_zulip_custom_fields.json | 23 + ...sing_essential_fields_default_payload.json | 11 + zerver/webhooks/newrelic/tests.py | 534 +++++++++++------- zerver/webhooks/newrelic/view.py | 278 ++++----- 44 files changed, 828 insertions(+), 549 deletions(-) delete mode 100644 static/images/integrations/newrelic/002.png delete mode 100644 static/images/integrations/newrelic/003.png delete mode 100644 static/images/integrations/newrelic/newrelic.png create mode 100644 zerver/webhooks/newrelic/fixtures/essential_fields_default_payload.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_acknowledged_default_payload.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_acknowledged_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_acknowledged_old.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_acknowledged_provided_base_payload.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_activated_new_default_payload.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_activated_new_provided_base_payload.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_active_new.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_closed_default_payload.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_closed_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_closed_old.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_closed_provided_base_payload.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_created_default_payload.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_created_new.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_created_provided_base_payload.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_default_base_with_zulip_custom_fields.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_default_fields_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_default_fields_old.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_malformatted_time_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_malformatted_time_old.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_malformed_timestamp.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_missing_current_state_old.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_missing_state_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_old.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_opened_old.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_provided_base_with_zulip_custom_fields.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_old.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_time_too_large.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_time_too_large_new.json delete mode 100644 zerver/webhooks/newrelic/fixtures/incident_time_too_large_old.json create mode 100644 zerver/webhooks/newrelic/fixtures/incident_with_invalid_zulip_custom_fields.json create mode 100644 zerver/webhooks/newrelic/fixtures/missing_essential_fields_default_payload.json diff --git a/static/images/integrations/bot_avatars/newrelic.png b/static/images/integrations/bot_avatars/newrelic.png index 1c6f41a24528c1f9be06b16458f3941d602bf572..91708e7138a1076150f2c69c3afe4620d5a407ef 100644 GIT binary patch delta 3105 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 diff --git a/static/images/integrations/logos/newrelic.svg b/static/images/integrations/logos/newrelic.svg index 65bec606a6fcb03010196919647b303edc362a0c..c94bda6fc9a7268d4ea6b978400e37ddb6edc308 100644 GIT binary patch literal 356 zcmY+=yKciU3x+kn~xjbH`+`p6cFrjwut&n30LEh8-R zkdBvoBM1nbWOU%QMctcVih1$PCL+8$#ZBMzttMt*Q;Gl6JCIBZmy-2eqAu4&ziecTz}~B@&F>$SP%dJ literal 774 zcmYk4O;X%I427?va@H-kq*nh>m_=BoI6#(;nE+KYK=6d2IDOReOofHr*3;AH_G@3S z?+@^C*gvn+@OV7FUXA1Fbi$M1%iF`qF~-px1KiKYIXusY-89_Z{rmv|)<1vex7`5m zPrK9imyc!KYq+_7osW-jKMi-R35kJXM6I+0VvI2dRiqY5wR;P-VAdQc6|5?u zFe=HdWXvRx1eqvMG>kZh#dugNkWmuV#hDD9Su=EKE#OcEho%M&WylS4=0IjmMx%^k z+hC;J*{N5=1tqo5Lm-J*4Asm%t%SN`n_t%xr0e(O2_tWq###ZJyj9+4=6m4$;(ok5JkQ$a`J8cnT z0c#4=x#*InwQB;s$mENC=a)i)59!ttpUt#HCrkFOB$stt%4X8klPjpn&L?A%?7?xe zFAo+!O9_^1Yxz>SsMfWBSS**`^`@U!ALtfd`<;^aYwJhZD{n0ke3%_w$yHIGJ9|X` Q2dKZ6yevJy{(Im217fkL%m4rY diff --git a/static/images/integrations/newrelic/001.png b/static/images/integrations/newrelic/001.png index cd108e1f8c79384f1aa96effe73481f73e8bade1..ac030ff0e4cad21602e389672c9762a2b56dd53b 100644 GIT binary patch literal 73023 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 AsQ>@~ literal 47740 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[W<21bx5 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 KuTXs&`TqbA#g1kG diff --git a/zerver/lib/integrations.py b/zerver/lib/integrations.py index 00f53293a1..60ca86ece1 100644 --- a/zerver/lib/integrations.py +++ b/zerver/lib/integrations.py @@ -793,11 +793,7 @@ DOC_SCREENSHOT_CONFIG: dict[str, list[BaseScreenshotConfig]] = { "mention": [ScreenshotConfig("webfeeds.json")], "nagios": [BaseScreenshotConfig("service_notify.json")], "netlify": [ScreenshotConfig("deploy_building.json")], - "newrelic": [ - ScreenshotConfig("incident_active_new.json", "001.png"), - ScreenshotConfig("incident_acknowledged_new.json", "002.png"), - ScreenshotConfig("incident_closed_new.json", "003.png"), - ], + "newrelic": [ScreenshotConfig("incident_activated_new_default_payload.json", "001.png")], "opencollective": [ScreenshotConfig("one_time_donation.json")], "opsgenie": [ScreenshotConfig("addrecipient.json", image_name="000.png")], "pagerduty": [ScreenshotConfig("trigger_v2.json")], diff --git a/zerver/webhooks/newrelic/doc.md b/zerver/webhooks/newrelic/doc.md index 9d1d100f38..4f02c30ef1 100644 --- a/zerver/webhooks/newrelic/doc.md +++ b/zerver/webhooks/newrelic/doc.md @@ -1,27 +1,78 @@ -New Relic can send messages to a Zulip channel for incidents. +# Zulip New Relic integration + +Get Zulip notification for New Relic incidents. + +{start_tabs} 1. {!create-channel.md!} 1. {!create-an-incoming-webhook.md!} -1. {!generate-integration-url.md!} +1. {!generate-webhook-url-basic.md!} -1. On [New Relic](https://one.newrelic.com), - select **Alerts & AI**. +1. In New Relic, go to the **Alerts** menu, and select **Destinations**. + Choose **Webhook** in the **Add a destination** section. -1. Navigate to **Notification channels**. +1. Set a **Webhook name**, such as `Zulip`. Set the **Endpoint URL** to + the URL generated above. Click **Save destination**. -1. Create a new notification channel. Select channel type of **Webhook**, choose a name (e.g., "Zulip"), enter the webhook url created earlier as **Base Url**. +1. In the **Alerts** menu, select **Workflows**. Click on + **+ Add a Workflow**. -1. It should look like: - ![](/static/images/integrations/newrelic/newrelic.png) +1. Set your workflow name, and filter the trigger conditions. In the + **Notify** section, choose **Webhook**. In the **Edit notification + message** menu, select the destination for Zulip created above. -1. The webhook works with the default payload, click **Create channel**. +1. In the **Payload** section, you can configure the payload for this + workflow. The default payload template is sufficient to get the + integration working, but using the message template below will enable + the integration to notify you of any **acknowledged** New Relic + incidents. To include additional custom fields, refer to + [configuration options](#configuration-options): -1. After creating the channel send a test notification to make sure it works. + { + {% raw %} + "id": {{ json issueId }}, + "issueUrl": {{ json issuePageUrl }}, + "title": {{ json annotations.title.[0] }}, + "priority": {{ json priority }}, + "totalIncidents": {{json totalIncidents}}, + "state": {{ json state }}, + "createdAt": {{ createdAt }}, + "updatedAt": {{ updatedAt }}, + "alertPolicyNames": {{ json accumulations.policyName }}, + "alertConditionNames": {{ json accumulations.conditionName }}, + "owner": {{ json owner }}, + "zulipCustomFields": {} + {% endraw %} + } + +1. Click **Send test notification** to receive a test notification. Select + **Save message**, and click **Activate Workflow**. + +{end_tabs} {!congrats.md!} ![](/static/images/integrations/newrelic/001.png) -![](/static/images/integrations/newrelic/002.png) -![](/static/images/integrations/newrelic/003.png) + +### Configuration options + +* With New Relic's [custom payload feature][1], you can include custom + fields in your Zulip notifications by configuring a `zulipCustomFields` + dictionary in your notification payload template. The keys of + `zulipCustomFields` will be displayed in the Zulip notification + message, so we recommend that they be human-readable and descriptive. + The values of the dictionary can be strings, integers, booleans, or + lists of the those same data types. + +### Related documentation + +* [**New Relic webhook integration**][2] + +* [**New Relic message templates**][1] + +{!webhooks-url-specification.md!} + +[1]: https://docs.newrelic.com/docs/alerts-applied-intelligence/notifications/message-templates/ +[2]: https://docs.newrelic.com/docs/alerts/get-notified/notification-integrations/#webhook diff --git a/zerver/webhooks/newrelic/fixtures/essential_fields_default_payload.json b/zerver/webhooks/newrelic/fixtures/essential_fields_default_payload.json new file mode 100644 index 0000000000..c796742fce --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/essential_fields_default_payload.json @@ -0,0 +1,11 @@ +{ + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "PIETER-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "totalIncidents": 1, + "state": "CREATED", + "createdAt": 1713592289021, + "updatedAt": 1713592289021, + "alertPolicyNames": ["Golden Signals"], + "alertConditionNames": ["High CPU"] +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_acknowledged_default_payload.json b/zerver/webhooks/newrelic/fixtures/incident_acknowledged_default_payload.json new file mode 100644 index 0000000000..8eb52b1f6e --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_acknowledged_default_payload.json @@ -0,0 +1,25 @@ +{ + "id": "13bbcdca-f0b6-470d-b0be-b34583c58869", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK", + "title": "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'", + "priority": "HIGH", + "impactedEntities": [ + "PIETER-UBUNTU" + ], + "totalIncidents": 1, + "state": "ACTIVATED", + "trigger": "USER_ACTION", + "isCorrelated": "false", + "createdAt": 1713769949493, + "updatedAt": 1713770077412, + "sources": [ + "newrelic" + ], + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Storage on Host Exceeded Threshold" + ], + "workflowName": "issue workflow" + } diff --git a/zerver/webhooks/newrelic/fixtures/incident_acknowledged_new.json b/zerver/webhooks/newrelic/fixtures/incident_acknowledged_new.json deleted file mode 100644 index 8623aa73a8..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_acknowledged_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "3576f543-dc3c-4d97-9f16-5c81f35195cb", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 1605133931151, - "state": "acknowledged", - "owner": "Alice", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_acknowledged_old.json b/zerver/webhooks/newrelic/fixtures/incident_acknowledged_old.json deleted file mode 100644 index b29fae57d8..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_acknowledged_old.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": 1605133931151, - "current_state": "acknowledged", - "owner": "Alice", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_acknowledged_provided_base_payload.json b/zerver/webhooks/newrelic/fixtures/incident_acknowledged_provided_base_payload.json new file mode 100644 index 0000000000..51e8091d87 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_acknowledged_provided_base_payload.json @@ -0,0 +1,19 @@ +{ + "id": "13bbcdca-f0b6-470d-b0be-b34583c58869", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK", + "title": "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'", + "priority": "HIGH", + "totalIncidents": 1, + "state": "ACTIVATED", + "createdAt": 1713769949493, + "updatedAt": 1713770077412, + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Storage on Host Exceeded Threshold" + ], + "owner": "Pieter Cardillo Kwok", + "zulipCustomFields": { + } + } diff --git a/zerver/webhooks/newrelic/fixtures/incident_activated_new_default_payload.json b/zerver/webhooks/newrelic/fixtures/incident_activated_new_default_payload.json new file mode 100644 index 0000000000..f8fc058f16 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_activated_new_default_payload.json @@ -0,0 +1,25 @@ +{ + "id": "c5faa7e6-7b54-402d-af79-f99601e0278c", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/c5faa7e6-7b54-402d-af79-f99601e0278c?notifier=WEBHOOK", + "title": "zulip_app query result is > 1.0 for 1 minutes on 'Zulip Server Low Storage'", + "priority": "CRITICAL", + "impactedEntities": [ + "zulip_app" + ], + "totalIncidents": 1, + "state": "ACTIVATED", + "trigger": "STATE_CHANGE", + "isCorrelated": false, + "createdAt": 1713755131352, + "updatedAt": 1713769708699, + "sources": [ + "newrelic" + ], + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Zulip Server Low Storage" + ], + "workflowName": "testWorkflow" + } diff --git a/zerver/webhooks/newrelic/fixtures/incident_activated_new_provided_base_payload.json b/zerver/webhooks/newrelic/fixtures/incident_activated_new_provided_base_payload.json new file mode 100644 index 0000000000..2373e29d3c --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_activated_new_provided_base_payload.json @@ -0,0 +1,20 @@ +{ + "id": "13bbcdca-f0b6-470d-b0be-b34583c58869", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK", + "title": "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'", + "priority": "HIGH", + "totalIncidents": 1, + "state": "ACTIVATED", + "createdAt": 1713769949493, + "updatedAt": 1713769949494, + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Storage on Host Exceeded Threshold" + ], + "owner": "N/A", + "zulipCustomFields": { + "Your custom payload": "somedata123" + } + } diff --git a/zerver/webhooks/newrelic/fixtures/incident_active_new.json b/zerver/webhooks/newrelic/fixtures/incident_active_new.json deleted file mode 100644 index 8d05043569..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_active_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "8ceed342-f305-4bfa-adb8-97ba93f5dd26", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 1605133931151, - "state": "activated", - "owner": "", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_closed_default_payload.json b/zerver/webhooks/newrelic/fixtures/incident_closed_default_payload.json new file mode 100644 index 0000000000..9a2591df71 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_closed_default_payload.json @@ -0,0 +1,17 @@ +{ + "id": "95a9344a-2590-48ce-8d83-07e28b6d22c6", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "main_app-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "impactedEntities": ["main_app-UBUNTU"], + "totalIncidents": 1, + "state": "CLOSED", + "trigger": "INCIDENT_CLOSED", + "isCorrelated": false, + "createdAt": 1713766590228, + "updatedAt": 1713766657383, + "sources": ["newrelic"], + "alertPolicyNames": ["Golden Signals"], + "alertConditionNames": ["High CPU"], + "workflowName": "DBA Team workflow" +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_closed_new.json b/zerver/webhooks/newrelic/fixtures/incident_closed_new.json deleted file mode 100644 index 224cbfab4c..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_closed_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "f0d98b28-bf9d-49e7-b9d0-ac7cbb52e73a", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 1605133931151, - "state": "closed", - "owner": "", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_closed_old.json b/zerver/webhooks/newrelic/fixtures/incident_closed_old.json deleted file mode 100644 index ac57a18c63..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_closed_old.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": 1605133931151, - "current_state": "closed", - "owner": "", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_closed_provided_base_payload.json b/zerver/webhooks/newrelic/fixtures/incident_closed_provided_base_payload.json new file mode 100644 index 0000000000..9d32d16f8b --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_closed_provided_base_payload.json @@ -0,0 +1,20 @@ +{ + "id": "13bbcdca-f0b6-470d-b0be-b34583c58869", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK", + "title": "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'", + "priority": "HIGH", + "totalIncidents": 1, + "state": "CLOSED", + "createdAt": 1713769949493, + "updatedAt": 1713770135419, + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Storage on Host Exceeded Threshold" + ], + "owner": "Pieter Cardillo Kwok", + "zulipCustomFields": { + "Your custom payload": "somedata123" + } + } diff --git a/zerver/webhooks/newrelic/fixtures/incident_created_default_payload.json b/zerver/webhooks/newrelic/fixtures/incident_created_default_payload.json new file mode 100644 index 0000000000..3f5e9059a0 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_created_default_payload.json @@ -0,0 +1,25 @@ +{ + "id": "208c5e92-f250-40be-b7c2-50508c268c15", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "MAIN-APP-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "impactedEntities": [ + "MAIN-APP-UBUNTU" + ], + "totalIncidents": 1, + "state": "CREATED", + "trigger": "INCIDENT_ADDED", + "isCorrelated": false, + "createdAt": 1713767789495, + "updatedAt": 1713767789495, + "sources": [ + "newrelic" + ], + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "High CPU" + ], + "workflowName": "DBA Team workflow" +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_created_new.json b/zerver/webhooks/newrelic/fixtures/incident_created_new.json deleted file mode 100644 index 27933f0ed3..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_created_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "8114ada3-572e-4550-a310-12375371669e", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 1605133931151, - "state": "created", - "owner": "", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_created_provided_base_payload.json b/zerver/webhooks/newrelic/fixtures/incident_created_provided_base_payload.json new file mode 100644 index 0000000000..8886fcf0fd --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_created_provided_base_payload.json @@ -0,0 +1,15 @@ +{ + "id": "208c5e92-f250-40be-b7c2-50508c268c15", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "PIETER-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "totalIncidents": 1, + "state": "CREATED", + "createdAt": 1713767789495, + "updatedAt": 1713767789495, + "alertPolicyNames": ["Golden Signals"], + "alertConditionNames": ["High CPU"], + "owner": "John Doe", + "zulipCustomFields":{ + } +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_default_base_with_zulip_custom_fields.json b/zerver/webhooks/newrelic/fixtures/incident_default_base_with_zulip_custom_fields.json new file mode 100644 index 0000000000..8d91a8b6d1 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_default_base_with_zulip_custom_fields.json @@ -0,0 +1,33 @@ +{ + "id": "13bbcdca-f0b6-470d-b0be-b34583c58869", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK", + "title": "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'", + "priority": "HIGH", + "impactedEntities": [ + "PIETER-UBUNTU" + ], + "totalIncidents": 1, + "state": "ACTIVATED", + "trigger": "STATE_CHANGE", + "isCorrelated": "false", + "createdAt": 1713769949493, + "updatedAt": 1713769949494, + "sources": [ + "newrelic" + ], + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Storage on Host Exceeded Threshold" + ], + "workflowName": "issue workflow", + "owner": "N/A", + "zulipCustomFields": { + "Your custom payload": "somedata123", + "custom status 1": true, + "Custom list 1": ["SSD", 2000, false, null, 13.33], + "Custom field 1": null, + "Custom field 2": 9000 + } + } diff --git a/zerver/webhooks/newrelic/fixtures/incident_default_fields_new.json b/zerver/webhooks/newrelic/fixtures/incident_default_fields_new.json deleted file mode 100644 index b6e258c7e4..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_default_fields_new.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "e04156e4-4cac-4f39-9d27-75d361e40a6d", - "createdAt": 1605133931151, - "state": "activated" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_default_fields_old.json b/zerver/webhooks/newrelic/fixtures/incident_default_fields_old.json deleted file mode 100644 index 4f0f54724c..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_default_fields_old.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "timestamp": 1605133931151, - "current_state": "open" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_malformatted_time_new.json b/zerver/webhooks/newrelic/fixtures/incident_malformatted_time_new.json deleted file mode 100644 index 6190ac0027..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_malformatted_time_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "3881eb6c-6d57-447e-beaf-b2f610f014b0", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": "1969-12-31 23:59:55", - "state": "acknowledged", - "owner": "", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_malformatted_time_old.json b/zerver/webhooks/newrelic/fixtures/incident_malformatted_time_old.json deleted file mode 100644 index 9daf9c276d..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_malformatted_time_old.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": "1969-12-31 23:59:55", - "current_state": "open", - "owner": "", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_malformed_timestamp.json b/zerver/webhooks/newrelic/fixtures/incident_malformed_timestamp.json new file mode 100644 index 0000000000..bc66740d8e --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_malformed_timestamp.json @@ -0,0 +1,12 @@ +{ + "id": "95a9344a-2590-48ce-8d83-07e28b6d22c6", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "main_app-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "totalIncidents": 1, + "state": "CLOSED", + "createdAt": "1713766657asdasd383", + "updatedAt": "1713766657383", + "alertPolicyNames": ["Golden Signals"], + "alertConditionNames": ["High CPU"] +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_missing_current_state_old.json b/zerver/webhooks/newrelic/fixtures/incident_missing_current_state_old.json deleted file mode 100644 index af8d9eba5e..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_missing_current_state_old.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": 1605133931151, - "owner": "Alice", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_missing_state_new.json b/zerver/webhooks/newrelic/fixtures/incident_missing_state_new.json deleted file mode 100644 index f6de013941..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_missing_state_new.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "279751d5-8ad8-41d4-adb8-9e895c58b606", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 1605133931151, - "owner": "Alice", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_new.json b/zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_new.json deleted file mode 100644 index 23536d633b..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_new.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "6eba9b54-898f-43eb-8892-e41ddca4a10f", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "state": "acknowledged", - "owner": "", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_old.json b/zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_old.json deleted file mode 100644 index 35cbd81af2..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_missing_timestamp_old.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "current_state": "open", - "owner": "", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_opened_old.json b/zerver/webhooks/newrelic/fixtures/incident_opened_old.json deleted file mode 100644 index 097fcf508a..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_opened_old.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": 1605133931151, - "current_state": "open", - "owner": "", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_provided_base_with_zulip_custom_fields.json b/zerver/webhooks/newrelic/fixtures/incident_provided_base_with_zulip_custom_fields.json new file mode 100644 index 0000000000..0ec5ac2e7c --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_provided_base_with_zulip_custom_fields.json @@ -0,0 +1,19 @@ +{ + "id": "95a9344a-2590-48ce-8d83-07e28b6d22c6", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "main_app-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "totalIncidents": 1, + "state": "CLOSED", + "createdAt": 1713766590228, + "updatedAt": 1713766657383, + "alertPolicyNames": ["Golden Signals"], + "alertConditionNames": ["High CPU"], + "zulipCustomFields": { + "Your custom payload": "somedata123", + "custom status 1": true, + "Custom list 1": ["SSD", 2000, false, null, 13.33], + "Custom field 1": null, + "Custom field 2": 9000 + } +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_new.json b/zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_new.json deleted file mode 100644 index f72e9abb4d..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "1d1fff5c-c723-4bf6-8458-bc63b253279e", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 1605133931151, - "state": "hello world", - "owner": "Alice", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_old.json b/zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_old.json deleted file mode 100644 index 0d6674fe7d..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_state_not_recognized_old.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": 1605133931151, - "current_state": "hello world", - "owner": "Alice", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_time_too_large.json b/zerver/webhooks/newrelic/fixtures/incident_time_too_large.json new file mode 100644 index 0000000000..520c820f6c --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_time_too_large.json @@ -0,0 +1,17 @@ +{ + "id": "95a9344a-2590-48ce-8d83-07e28b6d22c6", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "title": "main_app-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "priority": "CRITICAL", + "impactedEntities": ["main_app-UBUNTU"], + "totalIncidents": 1, + "state": "CLOSED", + "trigger": "INCIDENT_CLOSED", + "isCorrelated": false, + "createdAt": 1713766590228, + "updatedAt": "123123123129312381923", + "sources": ["newrelic"], + "alertPolicyNames": ["Golden Signals"], + "alertConditionNames": ["High CPU"], + "workflowName": "DBA Team workflow" +} diff --git a/zerver/webhooks/newrelic/fixtures/incident_time_too_large_new.json b/zerver/webhooks/newrelic/fixtures/incident_time_too_large_new.json deleted file mode 100644 index 5719ff27da..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_time_too_large_new.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "id": "37d07862-e156-480f-86f9-7e8e9b7ed4f4", - "details": "Violation description test.", - "alertPolicyNames": ["Test policy name"], - "condition_name": "Server Down", - "createdAt": 160513393115100000, - "state": "open", - "owner": "", - "issueUrl": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_time_too_large_old.json b/zerver/webhooks/newrelic/fixtures/incident_time_too_large_old.json deleted file mode 100644 index ea715265fb..0000000000 --- a/zerver/webhooks/newrelic/fixtures/incident_time_too_large_old.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "incident_acknowledge_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234/acknowledge", - "incident_id": 1234, - "details": "Violation description test.", - "policy_name": "Test policy name", - "condition_name": "Server Down", - "timestamp": 160513393115100000, - "current_state": "open", - "owner": "", - "incident_url": "https://alerts.newrelic.com/accounts/2941966/incidents/1234" -} diff --git a/zerver/webhooks/newrelic/fixtures/incident_with_invalid_zulip_custom_fields.json b/zerver/webhooks/newrelic/fixtures/incident_with_invalid_zulip_custom_fields.json new file mode 100644 index 0000000000..7891977824 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/incident_with_invalid_zulip_custom_fields.json @@ -0,0 +1,23 @@ +{ + "id": "13bbcdca-f0b6-470d-b0be-b34583c58869", + "issueUrl": "https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK", + "title": "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'", + "priority": "HIGH", + "totalIncidents": 1, + "state": "ACTIVATED", + "trigger": "STATE_CHANGE", + "createdAt": 1713769949493, + "updatedAt": 1713769949494, + "alertPolicyNames": [ + "Golden Signals" + ], + "alertConditionNames": [ + "Storage on Host Exceeded Threshold" + ], + "owner": "N/A", + "zulipCustomFields": { + "Invalid fields 1": ["SSD", 2000, false, null, {}], + "Invalid field 2": {}, + "Is valid": true + } + } diff --git a/zerver/webhooks/newrelic/fixtures/missing_essential_fields_default_payload.json b/zerver/webhooks/newrelic/fixtures/missing_essential_fields_default_payload.json new file mode 100644 index 0000000000..7c7c29d1f7 --- /dev/null +++ b/zerver/webhooks/newrelic/fixtures/missing_essential_fields_default_payload.json @@ -0,0 +1,11 @@ +{ + "unrecognized1": "https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK", + "unrecognized2": "PIETER-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'", + "unrecognized3": "CRITICAL", + "updatedField1": 1, + "updatedField2": "CREATED", + "updatedField3": 1713592289021, + "changedField1": 1713592289021, + "changedField2": ["Golden Signals"], + "changedField3": ["High CPU"] +} diff --git a/zerver/webhooks/newrelic/tests.py b/zerver/webhooks/newrelic/tests.py index 98a9c03327..a1f63cef75 100644 --- a/zerver/webhooks/newrelic/tests.py +++ b/zerver/webhooks/newrelic/tests.py @@ -6,253 +6,371 @@ class NewRelicHookTests(WebhookTestCase): URL_TEMPLATE = "/api/v1/external/newrelic?stream={stream}&api_key={api_key}" WEBHOOK_DIR_NAME = "newrelic" - # The following 9 unit tests are for the old format - # corresponding json fixtures were renamed to have the "_old" trailing - # These tests and fixtures are to be deleted when old notifications EOLed - - def test_open_old(self) -> None: - expected_topic_name = "Test policy name (1234)" + def test_incident_activated_new_default_payload(self) -> None: + expected_topic_name = "zulip_app query result is > 1.0 for 1 minutes on 'Zulip S..." expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **opened** for condition: **Server Down** at -``` quote -Violation description test. +:red_circle: **[zulip_app query result is > 1.0 for 1 minutes on 'Zulip Server Low Storage'](https://radar-api.service.newrelic.com/accounts/4420147/issues/c5faa7e6-7b54-402d-af79-f99601e0278c?notifier=WEBHOOK)** + +```quote +**Priority**: CRITICAL +**State**: ACTIVATED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `Zulip Server Low Storage` +- **Total incidents**: 1 +- **Incident created at**: + ``` """.strip() self.check_webhook( - "incident_opened_old", + "incident_activated_new_default_payload", expected_topic_name, expected_message, content_type="application/json", ) - def test_closed_old(self) -> None: - expected_topic_name = "Test policy name (1234)" + def test_incident_activated_new_provided_base_payload(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Sto..." expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **closed** for condition: **Server Down** -""".strip() +:orange_circle: **[PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'](https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK)** - self.check_webhook( - "incident_closed_old", - expected_topic_name, - expected_message, - content_type="application/json", - ) +```quote +**Priority**: HIGH +**State**: ACTIVATED +**Updated at**: - def test_acknowledged_old(self) -> None: - expected_topic_name = "Test policy name (1234)" - expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **acknowledged** by **Alice** for condition: **Server Down** -""".strip() +``` - self.check_webhook( - "incident_acknowledged_old", - expected_topic_name, - expected_message, - content_type="application/json", - ) +```spoiler :file: Incident details - def test_not_recognized_old(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_state_not_recognized_old", - "", - "", - content_type="application/json", - ) - self.assertIn( - "The newrelic webhook requires current_state be in [open|acknowledged|closed]", - e.exception.args[0], - ) +- **Alert policies**: `Golden Signals` +- **Conditions**: `Storage on Host Exceeded Threshold` +- **Total incidents**: 1 +- **Incident created at**: +- **Your custom payload**: somedata123 - def test_missing_fields_old(self) -> None: - expected_topic_name = "Unknown Policy (Unknown ID)" - expected_message = """ -[Incident](https://alerts.newrelic.com) **opened** for condition: **Unknown condition** at -``` quote -No details. ``` """.strip() self.check_webhook( - "incident_default_fields_old", + "incident_activated_new_provided_base_payload", expected_topic_name, expected_message, content_type="application/json", ) - def test_missing_current_state_old(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_missing_current_state_old", - "", - "", - content_type="application/json", - ) - self.assertIn( - "The newrelic webhook requires current_state be in [open|acknowledged|closed]", - e.exception.args[0], + def test_incident_closed_default_payload(self) -> None: + expected_topic_name = "main_app-UBUNTU query result is > 2.0 for 1 minutes on 'H..." + expected_message = """ +:red_circle: **[main_app-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'](https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK)** + +```quote +**Priority**: CRITICAL +**State**: CLOSED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `High CPU` +- **Total incidents**: 1 +- **Incident created at**: + +``` +""".strip() + + self.check_webhook( + "incident_closed_default_payload", + expected_topic_name, + expected_message, + content_type="application/json", ) - def test_missing_timestamp_old(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_missing_timestamp_old", - "", - "", - content_type="application/json", - ) - self.assertIn( - "The newrelic webhook requires timestamp in milliseconds", e.exception.args[0] + def test_incident_closed_provided_base_payload(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Sto..." + expected_message = """ +:orange_circle: **[PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'](https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK)** + +```quote +**Priority**: HIGH +**State**: CLOSED +**Updated at**: +**Acknowledged by**: Pieter Cardillo Kwok +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `Storage on Host Exceeded Threshold` +- **Total incidents**: 1 +- **Incident created at**: +- **Your custom payload**: somedata123 + +``` +""".strip() + + self.check_webhook( + "incident_closed_provided_base_payload", + expected_topic_name, + expected_message, + content_type="application/json", ) - def test_malformatted_time_old(self) -> None: + def test_incident_acknowledged_default_payload(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Sto..." + expected_message = """ +:orange_circle: **[PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'](https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK)** + +```quote +**Priority**: HIGH +**State**: ACTIVATED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `Storage on Host Exceeded Threshold` +- **Total incidents**: 1 +- **Incident created at**: + +``` +""".strip() + + self.check_webhook( + "incident_acknowledged_default_payload", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_incident_acknowledged_provided_base_payload(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Sto..." + expected_message = """ +:orange_circle: **[PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'](https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK)** + +```quote +**Priority**: HIGH +**State**: ACTIVATED +**Updated at**: +**Acknowledged by**: Pieter Cardillo Kwok +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `Storage on Host Exceeded Threshold` +- **Total incidents**: 1 +- **Incident created at**: + +``` +""".strip() + + self.check_webhook( + "incident_acknowledged_provided_base_payload", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_incident_created_default_payload(self) -> None: + expected_topic_name = "MAIN-APP-UBUNTU query result is > 2.0 for 1 minutes on 'H..." + expected_message = """ +:red_circle: **[MAIN-APP-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'](https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK)** + +```quote +**Priority**: CRITICAL +**State**: CREATED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `High CPU` +- **Total incidents**: 1 +- **Incident created at**: + +``` +""".strip() + + self.check_webhook( + "incident_created_default_payload", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_incident_created_provided_base_payload(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 2.0 for 1 minutes on 'Hig..." + expected_message = """ +:red_circle: **[PIETER-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'](https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK)** + +```quote +**Priority**: CRITICAL +**State**: CREATED +**Updated at**: +**Acknowledged by**: John Doe +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `High CPU` +- **Total incidents**: 1 +- **Incident created at**: + +``` +""".strip() + + self.check_webhook( + "incident_created_provided_base_payload", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_incident_default_base_with_zulip_custom_fields(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Sto..." + expected_message = """ +:orange_circle: **[PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'](https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK)** + +```quote +**Priority**: HIGH +**State**: ACTIVATED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `Storage on Host Exceeded Threshold` +- **Total incidents**: 1 +- **Incident created at**: +- **Your custom payload**: somedata123 +- **Custom status 1**: True +- **Custom list 1**: SSD, 2000, False, None, 13.33 +- **Custom field 1**: None +- **Custom field 2**: 9000 + +``` +""".strip() + + self.check_webhook( + "incident_default_base_with_zulip_custom_fields", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_incident_provided_base_with_zulip_custom_fields(self) -> None: + expected_topic_name = "main_app-UBUNTU query result is > 2.0 for 1 minutes on 'H..." + expected_message = """ +:red_circle: **[main_app-UBUNTU query result is > 2.0 for 1 minutes on 'High CPU'](https://radar-api.service.newrelic.com/accounts/1/issues/0ea2df1c-adab-45d2-aae0-042b609d2322?notifier=SLACK)** + +```quote +**Priority**: CRITICAL +**State**: CLOSED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `High CPU` +- **Total incidents**: 1 +- **Incident created at**: +- **Your custom payload**: somedata123 +- **Custom status 1**: True +- **Custom list 1**: SSD, 2000, False, None, 13.33 +- **Custom field 1**: None +- **Custom field 2**: 9000 + +``` +""".strip() + + self.check_webhook( + "incident_provided_base_with_zulip_custom_fields", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_incident_with_invalid_zulip_custom_fields(self) -> None: + expected_topic_name = "PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Sto..." + expected_message = """ +:orange_circle: **[PIETER-UBUNTU query result is > 1.0 for 5 minutes on 'Storage on Host Exceeded Threshold'](https://radar-api.service.newrelic.com/accounts/4420147/issues/13bbcdca-f0b6-470d-b0be-b34583c58869?notifier=WEBHOOK)** + +```quote +**Priority**: HIGH +**State**: ACTIVATED +**Updated at**: + +``` + +```spoiler :file: Incident details + +- **Alert policies**: `Golden Signals` +- **Conditions**: `Storage on Host Exceeded Threshold` +- **Total incidents**: 1 +- **Incident created at**: +- **Invalid fields 1**: *Value is not a supported data type* +- **Invalid field 2**: *Value is not a supported data type* +- **Is valid**: True + +``` +""".strip() + + self.check_webhook( + "incident_with_invalid_zulip_custom_fields", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_missing_essential_fields_default_payload(self) -> None: + expected_topic_name = "New Relic incident alerts" + expected_message = """ +:danger: A New Relic [incident](https://one.newrelic.com/alerts-ai) updated + +**Warning**: Unable to use the default notification format because at least one expected field was missing from the incident payload. See [New Relic integration documentation](/integrations/doc/newrelic). + +**Missing fields**: `issueUrl`, `title`, `priority`, `totalIncidents`, `state`, `createdAt`, `updatedAt`, `alertPolicyNames`, `alertConditionNames` +""".strip() + + self.check_webhook( + "missing_essential_fields_default_payload", + expected_topic_name, + expected_message, + content_type="application/json", + ) + + def test_malformatted_time(self) -> None: with self.assertRaises(AssertionError) as e: self.check_webhook( - "incident_malformatted_time_old", + "incident_malformed_timestamp", "", "", content_type="application/json", ) self.assertIn("The newrelic webhook expects time in milliseconds.", e.exception.args[0]) - def test_time_too_large_old(self) -> None: + def test_time_too_large(self) -> None: with self.assertRaises(AssertionError) as e: self.check_webhook( - "incident_time_too_large_old", - "", - "", - content_type="application/json", - ) - self.assertIn("The newrelic webhook expects time in milliseconds.", e.exception.args[0]) - - # The following 10 unit tests are for the new format - # One more test than the old format as we have 4 states instead of 3 in the old - # corresponding json fixtures have "_new" trailing in the name - - def test_activated_new(self) -> None: - expected_topic_name = "Test policy name (8ceed342-f305-4bfa-adb8-97ba93f5dd26)" - expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **active** for condition: **Server Down** at -``` quote -Violation description test. -``` -""".strip() - - self.check_webhook( - "incident_active_new", - expected_topic_name, - expected_message, - content_type="application/json", - ) - - def test_created_new(self) -> None: - expected_topic_name = "Test policy name (8114ada3-572e-4550-a310-12375371669e)" - expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **created** for condition: **Server Down** -""".strip() - - self.check_webhook( - "incident_created_new", - expected_topic_name, - expected_message, - content_type="application/json", - ) - - def test_closed_new(self) -> None: - expected_topic_name = "Test policy name (f0d98b28-bf9d-49e7-b9d0-ac7cbb52e73a)" - expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **closed** for condition: **Server Down** -""".strip() - - self.check_webhook( - "incident_closed_new", - expected_topic_name, - expected_message, - content_type="application/json", - ) - - def test_acknowledged_new(self) -> None: - expected_topic_name = "Test policy name (3576f543-dc3c-4d97-9f16-5c81f35195cb)" - expected_message = """ -[Incident](https://alerts.newrelic.com/accounts/2941966/incidents/1234) **acknowledged** by **Alice** for condition: **Server Down** -""".strip() - - self.check_webhook( - "incident_acknowledged_new", - expected_topic_name, - expected_message, - content_type="application/json", - ) - - def test_not_recognized_new(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_state_not_recognized_new", - "", - "", - content_type="application/json", - ) - self.assertIn( - "The newrelic webhook requires state be in [created|activated|acknowledged|closed]", - e.exception.args[0], - ) - - def test_missing_fields_new(self) -> None: - expected_topic_name = "Unknown Policy (e04156e4-4cac-4f39-9d27-75d361e40a6d)" - expected_message = """ -[Incident](https://alerts.newrelic.com) **active** for condition: **Unknown condition** at -``` quote -No details. -``` -""".strip() - - self.check_webhook( - "incident_default_fields_new", - expected_topic_name, - expected_message, - content_type="application/json", - ) - - def test_missing_state_new(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_missing_state_new", - "", - "", - content_type="application/json", - ) - self.assertIn( - "The newrelic webhook requires state be in [created|activated|acknowledged|closed]", - e.exception.args[0], - ) - - def test_missing_timestamp_new(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_missing_timestamp_new", - "", - "", - content_type="application/json", - ) - self.assertIn( - "The newrelic webhook requires timestamp in milliseconds", e.exception.args[0] - ) - - def test_malformatted_time_new(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_malformatted_time_new", - "", - "", - content_type="application/json", - ) - self.assertIn("The newrelic webhook expects time in milliseconds.", e.exception.args[0]) - - def test_time_too_large_new(self) -> None: - with self.assertRaises(AssertionError) as e: - self.check_webhook( - "incident_time_too_large_new", + "incident_time_too_large", "", "", content_type="application/json", diff --git a/zerver/webhooks/newrelic/view.py b/zerver/webhooks/newrelic/view.py index 24d201a161..188fb93dcf 100644 --- a/zerver/webhooks/newrelic/view.py +++ b/zerver/webhooks/newrelic/view.py @@ -1,53 +1,158 @@ # Webhooks for external integrations. + +from django.core.exceptions import ValidationError from django.http import HttpRequest, HttpResponse -from django.utils.translation import gettext as _ from zerver.decorator import webhook_view -from zerver.lib.exceptions import JsonableError from zerver.lib.response import json_success from zerver.lib.typed_endpoint import JsonBodyPayload, typed_endpoint from zerver.lib.validator import ( WildValue, + check_float, check_int, check_list, check_none_or, check_string, - check_string_fixed_length, + check_string_in, check_union, ) from zerver.lib.webhooks.common import check_send_webhook_message, unix_milliseconds_to_timestamp from zerver.models import UserProfile -# Newrelic planned to upgrade Alert Notification Channels to Workflows and Destinations -# https://discuss.newrelic.com/t/plan-to-upgrade-alert-notification-channels-to-workflows-and-destinations/188205 -# This view will handle both old and new format but will keep it easy to delete the old code -# once it is EOLed by the end of June, 2023 +MISSING_FIELDS_NOTIFICATION = """ +:danger: A New Relic [incident]({url}) updated -# Once old is EOLed, delete the OPEN_TEMPLATE -OPEN_TEMPLATE = """ -[Incident]({incident_url}) **opened** for condition: **{condition_name}** at -``` quote +**Warning**: Unable to use the default notification format because at least one expected field was missing from the incident payload. See [New Relic integration documentation](/integrations/doc/newrelic). + +**Missing fields**: {formatted_missing_fields} +""" + +NOTIFICATION_TEMPLATE = """ +{priority_symbol} **[{title}]({incident_url})** + +```quote +**Priority**: {priority} +**State**: {state} +**Updated at**: {time_updated} +{owner} +``` + +```spoiler :file: Incident details {details} ``` -""".strip() +""" -ACTIVE_TEMPLATE = """ -[Incident]({incident_url}) **active** for condition: **{condition_name}** at -``` quote -{details} -``` -""".strip() +NOTIFICATION_DETAILS = """ +- **Alert policies**: {alert_policy} +- **Conditions**: {conditions} +- **Total incidents**: {total_incidents} +- **Incident created at**: {time_created} +""" -DEFAULT_TEMPLATE = ( - """[Incident]({incident_url}) **{status}** {owner}for condition: **{condition_name}**""".strip() -) +ALL_EVENT_TYPES = ["CREATED", "ACTIVATED", "CLOSED"] -TOPIC_TEMPLATE = """{policy_name} ({incident_id})""".strip() +PRIORITIES = { + "CRITICAL": ":red_circle:", + "HIGH": ":orange_circle:", + "MEDIUM": ":yellow:", + "LOW": ":blue_circle:", +} -# Once old is EOLed, delete old and keep new -OLD_EVENT_TYPES = ["closed", "acknowledged", "open"] -NEW_EVENT_TYPES = ["created", "activated", "acknowledged", "closed"] -ALL_EVENT_TYPES = list(set(OLD_EVENT_TYPES).union(set(NEW_EVENT_TYPES))) +DEFAULT_NEWRELIC_URL = "https://one.newrelic.com/alerts-ai" + + +EXPECTED_FIELDS = [ + "issueUrl", + "title", + "priority", + "totalIncidents", + "state", + "createdAt", + "updatedAt", + "alertPolicyNames", + "alertConditionNames", +] + + +def get_timestamp_string(payload: WildValue, event_type: str) -> str: + # This function is intended to be used only for the "updatedAt" + # and "createdAt" fields. Theoretically, neither field can be + # None at any time. + unix_time = payload[event_type].tame(check_union([check_int, check_string])) + timestamp = str(unix_milliseconds_to_timestamp(unix_time, "newrelic")) + return f"" + + +def parse_payload(payload: WildValue) -> dict[str, str]: + priority = payload["priority"].tame(check_string_in(PRIORITIES.keys())) + priority_symbol = PRIORITIES.get(priority, ":alert:") + conditions_list = payload.get("alertConditionNames", ["Unknown condition"]).tame( + check_list(check_string) + ) + conditions = ", ".join([f"`{c}`" for c in conditions_list]) + policy_list = payload.get("alertPolicyNames", ["Unknown policy"]).tame(check_list(check_string)) + alert_policy = ", ".join([f"`{p}`" for p in policy_list]) + + owner = payload.get("owner").tame(check_none_or(check_string)) + acknowledged = "" + if owner and owner != "N/A": + acknowledged = f"**Acknowledged by**: {owner}" + + message_context: dict[str, str] = { + "title": payload["title"].tame(check_string), + "incident_url": payload.get("issueUrl", DEFAULT_NEWRELIC_URL).tame(check_string), + "total_incidents": str(payload["totalIncidents"].tame(check_int)), + "state": payload["state"].tame(check_string_in(ALL_EVENT_TYPES)), + "time_created": get_timestamp_string(payload, "createdAt"), + "time_updated": get_timestamp_string(payload, "updatedAt"), + "priority": priority, + "priority_symbol": priority_symbol, + "conditions": conditions, + "alert_policy": alert_policy, + "owner": acknowledged, + } + + return message_context + + +def format_zulip_custom_fields(payload: WildValue) -> str: + body_custom_field_detail: str = "" + zulip_custom_fields = payload.get("zulipCustomFields", {}) + + for key, value in zulip_custom_fields.items(): + custom_field_name = key.capitalize() + try: + details = value.tame( + check_none_or( + check_union( + [ + check_int, + check_float, + check_string, + check_list( + check_none_or(check_union([check_int, check_float, check_string])) + ), + ] + ) + ) + ) + if isinstance(details, list): + custom_field_detail = ", ".join([f"{detail}" for detail in details]) + else: + custom_field_detail = f"{details}" + + custom_field_message = f"- **{custom_field_name}**: {custom_field_detail}\n" + body_custom_field_detail += custom_field_message + except ValidationError: + invalid_field_message = ( + f"- **{custom_field_name}**: *Value is not a supported data type*\n" + ) + body_custom_field_detail += invalid_field_message + return body_custom_field_detail + + +def check_for_expected_fields(payload: WildValue) -> list[str]: + return [key for key in EXPECTED_FIELDS if key not in payload] @webhook_view("NewRelic", all_event_types=ALL_EVENT_TYPES) @@ -58,112 +163,21 @@ def api_newrelic_webhook( *, payload: JsonBodyPayload[WildValue], ) -> HttpResponse: - # Handle old format - # Once old is EOLed, delete if block and keep else block - if not payload.get("id").tame(check_none_or(check_string_fixed_length(36))): - info = { - "condition_name": payload.get("condition_name", "Unknown condition").tame(check_string), - "details": payload.get("details", "No details.").tame(check_string), - "incident_url": payload.get("incident_url", "https://alerts.newrelic.com").tame( - check_string - ), - "incident_acknowledge_url": payload.get( - "incident_acknowledge_url", "https://alerts.newrelic.com" - ).tame(check_string), - "status": payload.get("current_state", "None").tame(check_string), - "iso_timestamp": "", - "owner": payload.get("owner", "").tame(check_string), - } - - unix_time = payload.get("timestamp").tame( - check_none_or(check_union([check_string, check_int])) + missing_fields = check_for_expected_fields(payload) + if missing_fields: + formatted_missing_fields = ", ".join([f"`{fields}`" for fields in missing_fields]) + content = MISSING_FIELDS_NOTIFICATION.format( + url=DEFAULT_NEWRELIC_URL, + formatted_missing_fields=formatted_missing_fields, ) - if unix_time is None: - raise JsonableError(_("The newrelic webhook requires timestamp in milliseconds")) - - info["iso_timestamp"] = str(unix_milliseconds_to_timestamp(unix_time, "newrelic")) - - # Add formatting to the owner field if owner is present - if info["owner"] != "": - info["owner"] = "by **{}** ".format(info["owner"]) - - # These are the three promised current_state values - if info["status"].lower() == "open": - content = OPEN_TEMPLATE.format(**info) - elif info["status"].lower() == "acknowledged": - content = DEFAULT_TEMPLATE.format(**info) - elif info["status"].lower() == "closed": - content = DEFAULT_TEMPLATE.format(**info) - else: - raise JsonableError( - _("The newrelic webhook requires current_state be in [open|acknowledged|closed]") - ) - - topic_info = { - "policy_name": payload.get("policy_name", "Unknown Policy").tame(check_string), - "incident_id": payload.get("incident_id", "Unknown ID").tame( - check_union([check_string, check_int]) - ), - } - topic_name = TOPIC_TEMPLATE.format(**topic_info) - - check_send_webhook_message(request, user_profile, topic_name, content, info["status"]) + topic = "New Relic incident alerts" + check_send_webhook_message(request, user_profile, topic, content) return json_success(request) - # Handle new format - else: - info = { - "condition_name": payload.get("condition_name", "Unknown condition").tame(check_string), - "details": payload.get("details", "No details.").tame(check_string), - "incident_url": payload.get("issueUrl", "https://alerts.newrelic.com").tame( - check_string - ), - "incident_acknowledge_url": payload.get( - "incident_acknowledge_url", "https://alerts.newrelic.com" - ).tame(check_string), - "status": payload.get("state", "None").tame(check_string), - "iso_timestamp": "", - "owner": payload.get("owner", "").tame(check_string), - } - - unix_time = payload.get("createdAt").tame( - check_none_or(check_union([check_string, check_int])) - ) - if unix_time is None: - raise JsonableError(_("The newrelic webhook requires timestamp in milliseconds")) - - info["iso_timestamp"] = str(unix_milliseconds_to_timestamp(unix_time, "newrelic")) - - # Add formatting to the owner field if owner is present - if info["owner"] != "": - info["owner"] = "by **{}** ".format(info["owner"]) - - # These are the three promised state values - if info["status"].lower() == "activated": - content = ACTIVE_TEMPLATE.format(**info) - elif info["status"].lower() == "acknowledged": - content = DEFAULT_TEMPLATE.format(**info) - elif info["status"].lower() == "closed": - content = DEFAULT_TEMPLATE.format(**info) - elif info["status"].lower() == "created": - content = DEFAULT_TEMPLATE.format(**info) - else: - raise JsonableError( - _( - "The newrelic webhook requires state be in [created|activated|acknowledged|closed]" - ) - ) - - policy_names_list = payload.get("alertPolicyNames", []).tame(check_list(check_string)) - if policy_names_list: - policy_names_str = ",".join(policy_names_list) - else: - policy_names_str = "Unknown Policy" - topic_info = { - "policy_name": policy_names_str, - "incident_id": payload.get("id", "Unknown ID").tame(check_string), - } - topic_name = TOPIC_TEMPLATE.format(**topic_info) - - check_send_webhook_message(request, user_profile, topic_name, content, info["status"]) - return json_success(request) + message_context = parse_payload(payload) + incident_details = NOTIFICATION_DETAILS.format(**message_context) + incident_details += format_zulip_custom_fields(payload) + content = NOTIFICATION_TEMPLATE.format(details=incident_details, **message_context) + topic = message_context["title"] + check_send_webhook_message(request, user_profile, topic, content, message_context["state"]) + return json_success(request)