From 8ab6c7edfb24c95a7b2067406c8fbdaaf83010d1 Mon Sep 17 00:00:00 2001
From: Nadia <98525884+Nadia-JSch@users.noreply.github.com>
Date: Tue, 9 Apr 2024 15:00:38 +0200
Subject: [PATCH 01/14] DOCS-327 update screenshots,
setup-alerts-and-notifications
---
.../reports/setup-alerts-and-notifications.md | 132 ++++++++++++------
.../acknowledged-and-cleared-alerts-dark.png | Bin 0 -> 45568 bytes
.../acknowledged-and-cleared-alerts-light.png | Bin 0 -> 45413 bytes
.../add-alert-escalation-profile-dark.png | Bin 0 -> 75074 bytes
.../add-alert-escalation-profile-light.png | Bin 0 -> 87671 bytes
.../alerts-menu-and-add-button-dark.png | Bin 0 -> 71466 bytes
.../alerts-menu-and-add-button-light.png | Bin 0 -> 71526 bytes
...anner-and-dashboard-notifications-dark.png | Bin 0 -> 104438 bytes
...nner-and-dashboard-notifications-light.png | Bin 0 -> 103239 bytes
.../constructed-alert-example-dark.png | Bin 0 -> 58350 bytes
.../constructed-alert-example-light.png | Bin 0 -> 56223 bytes
.../notification-page-actions-dark.png | Bin 0 -> 85490 bytes
.../notification-page-actions-light.png | Bin 0 -> 83761 bytes
...priority-and-notification-options-dark.png | Bin 0 -> 27030 bytes
...riority-and-notification-options-light.png | Bin 0 -> 26054 bytes
.../save-options-dark.png | Bin 0 -> 24011 bytes
.../save-options-light.png | Bin 0 -> 24244 bytes
17 files changed, 89 insertions(+), 43 deletions(-)
create mode 100644 static/assets/images/setup-alerts-and-notifications/acknowledged-and-cleared-alerts-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/acknowledged-and-cleared-alerts-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/add-alert-escalation-profile-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/add-alert-escalation-profile-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/alerts-menu-and-add-button-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/alerts-menu-and-add-button-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/banner-and-dashboard-notifications-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/banner-and-dashboard-notifications-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/constructed-alert-example-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/constructed-alert-example-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/notification-page-actions-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/notification-page-actions-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/priority-and-notification-options-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/priority-and-notification-options-light.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/save-options-dark.png
create mode 100644 static/assets/images/setup-alerts-and-notifications/save-options-light.png
diff --git a/docs/reports/reports/setup-alerts-and-notifications.md b/docs/reports/reports/setup-alerts-and-notifications.md
index 140f81dd..f126bdd5 100644
--- a/docs/reports/reports/setup-alerts-and-notifications.md
+++ b/docs/reports/reports/setup-alerts-and-notifications.md
@@ -3,47 +3,78 @@ title: "Setup Alerts and Notifications"
sidebar_position: 16
---
-## Alerts and Notifications
+import ThemedImage from '@theme/ThemedImage'
+import useBaseUrl from '@docusaurus/useBaseUrl'
-You can set up Device42 Alerts to notify you about application, asset, software, discovery, and other conditions that affect your IT environment. Alerts can generate notifications within the Device42 UI or be integrated with external systems such as PagerDuty, Opsgenie, etc.
+## Alerts and Notifications
-As of v16.14.00, Device42 has refined and improved its Alerts functionality.
+You can set up Device42 alerts to notify you about any Business Application, Discovery, OS, Part Model, Software, Subnet, or System changes that affect your IT environment. Alerts can generate notifications within the Device42 UI or be integrated with external systems such as PagerDuty, Opsgenie, etc.
## Set Up Alerts
-To create an alert, select _Analytics > Setup Alerts_ from the Device42 menu bar and then click _Add Alert_ on the Select Alert to view page.
-
-![](/assets/images/WEB-219_Alerts_Add-Alert-page.jpg)
-
-- Enter a **Name** for the alert, and then select the **Rule Type** for the alert. Each Rule Type has associated Triggers, which define the conditions that will generate an alert.
+
+
+To create an alert, navigate to **Analytics > Setup Alerts** from the Device42 menu bar and click **Add Alert** from the list page.
+
+
+
+- Enter a **Name** for the alert, and then select the **Rule Type** for the alert. Each Rule Type has associated Triggers that define the conditions that will generate an alert.
- Select the **Trigger** you want for the Rule Type you selected.
- Select the **Alert Type**.
- - If you select **D42 Notification**, select or add the **Escalation Profile** to use for the alert. You use Escalation Profiles to set up email notification escalation tiers. Select _Tools > Admins & Permissions > Escalation Profiles_ to add or edit escalation profiles.
- - If you select **Alert Integration**, select or add the alert integration (for example, PagerDuty, Opsgenie, etc.) to use for the alert. Select _Tools > Integrations > External Integrations_ to view or add external integrations. Also see [https://www.device42.com/integrations/](https://www.device42.com/integrations/) for more information about Device42 integrations.
-
-As you construct your alert, Device42 displays the alert definition based on the options you select or enter. The example below shows an Operating System Count alert that sends a notification to the Alert Group 1 escalation profile.
+ - If you select **D42 Notification**, select or add a new **Escalation Profile** to use for the alert. Escalation Profiles are used to set up email notification escalation tiers. To view, add or edit escalation profiles, go to **Tools > Admins & Permissions > Escalation Profiles**.
+ - If you select **Alert Integration**, select or add the integration used for the alert (for example, PagerDuty, Opsgenie etc). Manage integrations from **Tools > Integrations > External Integrations**. Visit [https://www.device42.com/integrations/](https://www.device42.com/integrations/) for more information about Device42 integrations.
-![](/assets/images/WEB-219_Alerts_Contructed-OS-alert-example.jpg)
+As you construct your alert, Device42 displays the alert definition based on the options you select and enter. The example shows an alert with a **Rule Type** of "Operating System" and **Trigger** of "Count > 1" that sends a notification to the "Alert Group 1" escalation profile.
-
+
-Depending on the alert Rule Type you select, you may also see an **Apply To:** option that you use to select the objects you want to apply the alert to. Use the _Available objects_ list on the left to select the objects you want to add to the _Chosen objects_ list on the right.
+Depending on the alert **Rule Type** you select, the **Apply To:** option will become active. Use it to select the objects you want to apply the alert to. Search the **Available objects** list on the left and select the objects you want to add. Use the **right arrow** button to add the selection to the **Chosen objects** list.
**Additional Options**
-- **Priority** — Critical, High Priority, Medium Priority, Low Priority
-- **Resend Notification** — Amount of time (in seconds) to wait before sending an email notification for the alert. Leave this field blank to send the email only once.
-- **Seconds Before Action** — Amount of time (in seconds) that the alert condition (the trigger) exists before the Device42 generates the alert.
-- **Job Interval Factor Before Action** — (Displayed for specific power alerts in place of Seconds Before Action.) Trigger the action only if the condition persists for the Job Interval Factor times the polling rate for associated jobs. Default value is 1.
+
-![](/assets/images/D42-26290_alerts-job-interval.jpg)
+- **Priority**: Choose between Critical, High Priority, Medium Priority, or Low Priority.
+- **Resend Notification**: Number of seconds to wait before resending an email notification for the alert. Leave this field blank to send the email only once.
+- **Seconds Before Action**: Number of seconds that the the trigger should exists before generating the alert.
+- **Notes**: Add any notes about the alert.
-- **Notes** — Any notes about the alert.
-- **Notification Template** — Text fields you can use to create templates for the Subject and Message of the alert email.
+
-When you are done, click **Save** at the bottom of the page to save the alert.
+- **Notification Template**: Text fields you can use to create templates for the **Subject** and **Message** of the alert email.
+- **Webhook Alert Endpoints**: Add any endpoints of external integrations you want to send the alert data to.
-![](/assets/images/WEB-219_Alerts_Add-Alert-additional-options.jpg)
+When you are done, click one of the **Save** options at the bottom of the page.
### Alert Rule Types and Triggers
@@ -125,36 +156,53 @@ When you are done, click **Save** at the bottom of the page to save the alert.
## Notifications
-If you select _D42 Notification_ as the _Alert Type_ when you create an alert, Device42 generates a notification when the alert condition triggers the alert. Device42 adds all notifications to the Notifications page.
+If you selected "D42 Notification" as the **Alert Type** when you created the alert, Device42 generates a notification when the alert condition is triggered. You can view details and perform actions of the notifications from the Notifications list page under under **Analytics > Notifications**.
-The Device42 Dashboard now includes two links – _My Notifications_ and _All Notifications_ – to the Notifications page, and there is a bell icon in the menu bar that animates when you receive new notifications. You can hover over the icon to see a list of recent notifications or jump the the Notifications page.
+
-You can also select _Analytics > Notifications_ from the menu bar to go to the Notifications page.
+The bell icon in the menu bar displays a red exclamation point icon when you receive new notifications. Hover over the icon to see a list of recent notifications. Click the **My Notifications** link at the bottom of the panel to go to the Notifications list page.
-![](/assets/images/WEB-219_Alerts_Banner-Bell-icon-1.jpg)
+From the dashboard, click on the **All Notifications** or **User Notifications** links to go to either table on the Notifications list page . You'll see counts for the **Open** and **Acknowledged** notifications under each link.
-
+
-The page displays notifications for all triggered alerts whose _Alert Type_ is _Device42 Notification_. Click **My Notifications** or **All Notifications** to see the notification lists.
+Select the alert(s) you want to act on and choose an **Action** from the dropdown menu. Click the **hammer icon** to execute the action. Choose from the following actions:
-![](/assets/images/WEB-219_Alerts_Notifications-page-1.jpg)
+- **Delete with Detailed Confirmation**: Displays a confirmation dialog of the selected items before deleting them. Note that this only deletes the notifications and not the alert condition that triggered them.
+- **Fast Background Delete**: Delete the selected items without confirming the selection.
+- **Export Selected Columns as CSV**: Creates a CSV file of the notifications for export.
+- **Acknowledge Notification**: Mark the notifications as seen. Any alert recipient can acknowledge alerts.
+- **Clear Conditions**: Clear the alert condition that generated the notification. This indicates that the condition has been fixed, but Device42 will generate a new alert and notification if the condition reoccurs. Note that only one notification is sent until the condition is marked as cleared.
-Select the alerts you want and select the **Action** drop-down menu to perform the following action on the notifications
-
-- **Delete selected Notifications** – deletes the notification. If the condition reoccurs, Device42 generates a new notification.
-- **Export selected items to CSV** – create a notification CSV.
-- **Acknowledge Alerts** – acknowledge the alert that generated the notification. Any alert recipient can acknowledge alerts.
-- **Clear Conditions** – clear the alert condition that generated the notification. This indicates that the condition has been fixed and Device42 will generate a new alert and notification if the condition reoccurs. Note that only one notification is sent until the condition is marked as cleared.
-
-![](/assets/images/WEB-219_Alerts_Notifications-cleared-acknowledged.jpg)
+
## Customizing Alerts with Notification Variables
-The new alerts engine offers powerful new alerting variables that let you configure custom alert emails that can include useful data for each Alert Rule Type Device42 supports the following variables for embedding within alert emails when creating alerts.
+The new alerts engine offers powerful alerting variables that let you configure custom alert emails that can include useful data for each alert **Rule Type**.
You can use all the tags in both the alert message and subject line:
-**Alert
%(sensor\_rule\_name)s triggered on RC#
%(remote\_collector\_id)s**
+**Alert
%(sensor_rule_name)s triggered on RC#
%(remote_collector_id)s**
+
+Device42 supports the following variables for embedding within alert emails when creating alerts.
@@ -356,5 +404,3 @@ You can use all the tags in both the alert message and subject line:
-
-
diff --git a/static/assets/images/setup-alerts-and-notifications/acknowledged-and-cleared-alerts-dark.png b/static/assets/images/setup-alerts-and-notifications/acknowledged-and-cleared-alerts-dark.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb709b554792bfd96611a5330710bff705fc7a08
GIT binary patch
literal 45568
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