From 563def73efe483e1ccb083d2af60691805a8b947 Mon Sep 17 00:00:00 2001 From: nerda-codes Date: Thu, 24 Jul 2025 11:51:59 +0200 Subject: [PATCH 1/6] docs(add): rework part one --- menu/navigation.json | 2 +- pages/cockpit/concepts.mdx | 16 +++-- .../how-to/activate-managed-alerts.mdx | 59 ++++++++++++++---- pages/cockpit/how-to/add-contact-points.mdx | 20 +++--- .../assets/scaleway-custom-alerts-tab.webp | Bin 0 -> 95752 bytes .../configure-alerts-for-scw-resources.mdx | 20 +++--- pages/cockpit/quickstart.mdx | 2 +- 7 files changed, 80 insertions(+), 39 deletions(-) create mode 100644 pages/cockpit/how-to/assets/scaleway-custom-alerts-tab.webp diff --git a/menu/navigation.json b/menu/navigation.json index 1e73a67147..04297a1b93 100644 --- a/menu/navigation.json +++ b/menu/navigation.json @@ -3722,7 +3722,7 @@ "slug": "activate-managed-alerts" }, { - "label": "Add contact points", + "label": "Add contacts", "slug": "add-contact-points" }, { diff --git a/pages/cockpit/concepts.mdx b/pages/cockpit/concepts.mdx index 4caf735129..b2e75a76f2 100644 --- a/pages/cockpit/concepts.mdx +++ b/pages/cockpit/concepts.mdx @@ -3,7 +3,9 @@ title: Cockpit - Concepts description: Explore Scaleway Observability concepts including metrics, logs, and alerts management through Cockpit. Learn about agents, alerting rules, Grafana integration, and data types for comprehensive monitoring. tags: observability alert-manager contact-points endpoint grafana loki logql prometheus promql tokens dates: - validation: 2025-06-04 + validation: 2025-07-22 +categories: + - observability --- import image from './assets/scaleway-traces-concept.webp' @@ -49,9 +51,9 @@ Tokens are regionalized secret keys that allow you to authenticate against the e - **Rules**: allow you to configure alerting and recording rules. - **Alerts**: allow you to set up the alert manager. -## Contact points +## Contacts -Contact points define who is notified when an alert fires, according to the region in which you have added them. Contact points include emails, Slack, on-call systems, and texts. When an alert fires, all contact points are notified. +Contacts define who gets notified when an alert is triggered or [resolved](#resolved-notifications). Contacts can include email addresses, Slack channels, on-call systems, or phone numbers for text messages. When an alert fires, all configured contacts are notified. ## Custom data @@ -131,9 +133,9 @@ You can push metrics with any Prometheus-compatible agent such as [Prometheus](h A preconfigured dashboard is a set of one or more panels that Scaleway sets up and updates for you to visualize the metrics and logs associated with your Scaleway products. -## Receivers +## Recording rules -Receivers are hubs consisting of contact points. You can associate one or several alerts with one or more receivers. This allows you to diversify your alerts. +Recording rules are custom queries that run automatically at regular intervals and save the results under a simple name. They let you precompute important or heavy queries ahead of time, so your dashboards and alerts load faster and use less computing power. ## Region @@ -141,6 +143,10 @@ A region is the geographical area in which your Cockpit data is stored. They are You can decide in which region to enable the [alert manager](#alert-manager) and your [preconfigured alerts](#preconfigured-alerts). You can also choose the regions in which to create your [data types](#data-types), [data sources](#data-sources), and [tokens](#tokens). +## Resolved notifications + +Resolved notifications are alerts your contacts receive to let them know that a previously triggered alert has been fixed or is no longer firing. + ## Retention Retention or data retention refers to the duration for which the data (metrics, logs, and traces) pushed to Cockpit (by Scaleway products or yourself) is stored before being automatically deleted. Retention allows you to manage the lifecycle of your Scaleway and custom data by selecting storage periods that align with your needs. diff --git a/pages/cockpit/how-to/activate-managed-alerts.mdx b/pages/cockpit/how-to/activate-managed-alerts.mdx index 54a3bdd4fa..8379e82ae3 100644 --- a/pages/cockpit/how-to/activate-managed-alerts.mdx +++ b/pages/cockpit/how-to/activate-managed-alerts.mdx @@ -1,29 +1,62 @@ --- -title: How to activate Scaleway preconfigured alerts -description: Learn how to activate preconfigured alerts for your Cockpit resources using the Scaleway console. +title: How to manage Scaleway preconfigured alerts +description: Learn how to configure alert notifications with the alert manager, activate preconfigured alerts for your Cockpit resources, and add contacts to notify, using the Scaleway console. +categories: + - observability dates: - validation: 2025-04-08 + validation: 2025-07-22 posted: 2024-04-05 --- import Requirements from '@macros/iam/requirements.mdx' +import CustomAlertsTab from './assets/scaleway-custom-alerts-tab.webp' -This page shows you how to activate [preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) for your Cockpit resources using the [Scaleway console](https://console.scaleway.com/). + +This page shows you how to enable the Scaleway alert manager, activate [preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) for your Cockpit resources, and add contacts that will be notified when your alerts are triggered, using the [Scaleway console](https://console.scaleway.com/). - A Scaleway account logged into the [console](https://console.scaleway.com) - - [Enabled](/cockpit/how-to/enable-alert-manager/) the alert manager - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +## How to configure alert notifications +Enabling Scaleway's regionalized alert manager allows you configure preconfigured alerts for your Scaleway resources. 1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. - 2. Click the **Alerts** tab. - -3. Click **Enable** under the **Scaleway preconfigured alerts** section. Select the regions you want to enable the alerts in. - - - - You can only enable preconfigured alerts in the regions you have enabled the alert manager. - - If you want to receive alerts, you also need to [add contact points](/cockpit/how-to/add-contact-points/). - +3. Click the **Region** drop-down and select the desired region. + + Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want to be alerted for. + +5. Click **Enable alert manager** under the **Alert manager** section. A pop-up displays prompting you to configure alert notifications. + + Configuring alert notifications consists of two steps: + - Enabling the alert manager, and + - Adding contacts + This allows you to receive notifications at the desired contact whenever alerts you may have configured are triggered. + +6. Click **Enable alert manager** to confirm. The step for adding contacts displays. +7. Enter an email address, then click **+ Add email**. Your email address displays and by default, the **Resolved notifications** box is ticked. This means that you will receive notifications for resolved alerts. +8. Optionally: + - Click **Skip for now** if you do not want to add contacts yet, or + - Enter another email and click **+ Add email** to add another contact and/or + - Untick the box next to the email(s) you have added if you do not wish to receive notifications for resolved alerts and/or +9. Click **Add contacts** to confirm. A new **Contacts** section displays. + + You can opt out of adding contacts and add them at a later time + + +## How to activate preconfigured alerts + +1. In the same tab as the previous steps, scroll to the **Alert management** section. This section allows you to manage (enable, disable and visualize) Scaleway preconfigured alerts or visualize custom alerts. +2. From the **Preconfigured** tab, click the down arrow next to the Scaleway product of your choice to view available alerts. +3. Under the **Activation** section, tick the boxes next to the alerts you want to activate. +4. Click **Save changes**. A pop-up appears summarizing the number of alerts you are about to enable and the total of enabled alerts you will have after you confirm. +5. Click **Save changes** to confirm. + + + If you have created alerts in Grafana, you can visualize them in the **Custom** tab. + + + +Your enabled alerts display in the **Overview** as **enabled rules**. Alerting rules are your Scaleway or custom alerts. \ No newline at end of file diff --git a/pages/cockpit/how-to/add-contact-points.mdx b/pages/cockpit/how-to/add-contact-points.mdx index b8425e1987..29de5363f9 100644 --- a/pages/cockpit/how-to/add-contact-points.mdx +++ b/pages/cockpit/how-to/add-contact-points.mdx @@ -1,6 +1,8 @@ --- -title: How to add contact points -description: Learn how to add contact points to the default receiver using the Scaleway console. Follow the steps to enter email addresses, select regions, and optionally send test alerts. +title: How to add contacts +description: Learn how to add contacts to notify when alerts are triggered or resolved using the Scaleway console. Follow the steps to configure contacts, choose whether to be notified when alerts are resolved, and send test alerts. +categories: + - observability dates: validation: 2025-07-22 posted: 2024-04-05 @@ -8,7 +10,7 @@ dates: import Requirements from '@macros/iam/requirements.mdx' -This page shows you how to associate [contact points](/cockpit/concepts/#contact-points) with the default [receiver](/cockpit/concepts/#receivers) using the [Scaleway console](https://console.scaleway.com/). +This page shows you how to add [contacts](/cockpit/concepts/#contacts) to notify when alerts are triggered or resolved using the [Scaleway console](https://console.scaleway.com/). @@ -16,15 +18,15 @@ This page shows you how to associate [contact points](/cockpit/concepts/#contact - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - [Enabled](/cockpit/how-to/enable-alert-manager/) the alert manager -## Add contact points +## Add contacts 1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. 2. Click the **Alerts** tab. -3. Click **+ Add email** in the **Default receiver’s contact points** section. A pop-up displays. -4. Enter the email address you wish to add as a contact point. -5. Choose the regions in which you want to add the contact point. +3. Click **+ Add email** in the **Contacts** section. A pop-up displays. +4. Enter the email address you wish to add as a contact. +5. Choose the regions in which you want to add the contact. Make sure that you choose the same regions as the data sources for which you want to receive alerts. -6. Click **Add email address**. The email address appears in the list of your contact points. -7. Optionally, if you have [activated preconfigured alerts](/cockpit/how-to/activate-managed-alerts/), click **Send test alert** to ensure that your alerts are sent to your contact points. +6. Click **Add email address**. The email address appears in the list of your contacts. +7. Optionally, if you have [activated preconfigured alerts](/cockpit/how-to/activate-managed-alerts/), click **Send test alert** to ensure that your alerts are sent to your contacts. diff --git a/pages/cockpit/how-to/assets/scaleway-custom-alerts-tab.webp b/pages/cockpit/how-to/assets/scaleway-custom-alerts-tab.webp new file mode 100644 index 0000000000000000000000000000000000000000..33ffa5a3c7b498351d7c35a5d3309db0c5595595 GIT binary patch literal 95752 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

{oY{SqBPp2 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 In Grafana, notifications are sent by matching alerts to notification policies based on labels. This step is about deciding how alerts will reach you or your team (Slack, email, etc.) based on labels you attach to them. Then, you can set up rules that define who receives notifications in the **Notification policies** page. For example, if an alert has the label `team = instances-team`, you are telling Grafana to send a notification to the Instances team when your alert `alert-for-high-cpu-usage` gets triggered. Find out how to [configure notification policies in Grafana](/tutorials/configure-slack-alerting/#configuring-a-notification-policy). 12. Click **Save rule** in the top right corner of your screen to save and activate your alert. - 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact point](/cockpit/concepts/#contact-points). + 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact](/cockpit/concepts/#contacts). The steps below explain how to create the metric selection and configure an alert condition that triggers when **the object count in your bucket exceeds a specific threshold**. @@ -100,13 +100,13 @@ Switch between the tabs below to create alerts for a Scaleway Instance, an Objec ``` 9. In the **Set alert evaluation behavior** field, specify how long the condition must be true before triggering the alert. 10. Enter a name in the **Namespace** and **Group** fields to categorize and manage your alert, and optionally, add annotations. - 11. Enter a label in the **Labels** field and a name in the **Value** field. You can skip this step if you want your alerts to be sent to the contact points you may already have created in the Scaleway console. + 11. Enter a label in the **Labels** field and a name in the **Value** field. You can skip this step if you want your alerts to be sent to the contacts you may already have created in the Scaleway console. In Grafana, notifications are sent by matching alerts to notification policies based on labels. This step is about deciding how alerts will reach you or your team (Slack, email, etc.) based on labels you attach to them. Then, you can set up rules that define who receives notifications in the **Notification policies** page. For example, if an alert has the label `team = object-storage-team`, you are telling Grafana to send a notification to the Object Storage team when your alert is firing. Find out how to [configure notification policies in Grafana](/tutorials/configure-slack-alerting/#configuring-a-notification-policy). 12. Click **Save rule** in the top right corner of your screen to save and activate your alert. - 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact point](/cockpit/concepts/#contact-points). + 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact](/cockpit/concepts/#contacts). The steps below explain how to create the metric selection and configure an alert condition that triggers when **no new pod activity occurs, which could mean your cluster is stuck or unresponsive.** @@ -129,13 +129,13 @@ Switch between the tabs below to create alerts for a Scaleway Instance, an Objec ``` 9. In the **Set alert evaluation behavior** field, specify how long the condition must be true before triggering the alert. 10. Enter a name in the **Namespace** and **Group** fields to categorize and manage your alert, and optionally, add annotations. - 11. Enter a label in the **Labels** field and a name in the **Value** field. You can skip this step if you want your alerts to be sent to the contact points you may already have created in the Scaleway console. + 11. Enter a label in the **Labels** field and a name in the **Value** field. You can skip this step if you want your alerts to be sent to the contacts you may already have created in the Scaleway console. In Grafana, notifications are sent by matching alerts to notification policies based on labels. This step is about deciding how alerts will reach you or your team (Slack, email, etc.) based on labels you attach to them. Then, you can set up rules that define who receives notifications in the **Notification policies** page. For example, if an alert has the label `team = kubernetes-team`, you are telling Grafana to send a notification to the Kubernetes team when your alert is firing. Find out how to [configure notification policies in Grafana](/tutorials/configure-slack-alerting/#configuring-a-notification-policy). 12. Click **Save rule** in the top right corner of your screen to save and activate your alert. - 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact point](/cockpit/concepts/#contact-points). + 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact](/cockpit/concepts/#contacts). The steps below explain how to create the metric selection and configure an alert condition that triggers when **no logs are stored for 5 minutes, which may indicate your app or system is broken**. @@ -158,13 +158,13 @@ Switch between the tabs below to create alerts for a Scaleway Instance, an Objec ``` 9. In the **Set alert evaluation behavior** field, specify how long the condition must be true before triggering the alert. 10. Enter a name in the **Namespace** and **Group** fields to categorize and manage your alert, and optionally, add annotations. - 11. Enter a label in the **Labels** field and a name in the **Value** field. You can skip this step if you want your alerts to be sent to the contact points you may already have created in the Scaleway console. + 11. Enter a label in the **Labels** field and a name in the **Value** field. You can skip this step if you want your alerts to be sent to the contacts you may already have created in the Scaleway console. In Grafana, notifications are sent by matching alerts to notification policies based on labels. This step is about deciding how alerts will reach you or your team (Slack, email, etc.) based on labels you attach to them. Then, you can set up rules that define who receives notifications in the **Notification policies** page. For example, if an alert has the label `team = cockpit-team`, you are telling Grafana to send a notification to the Cockpit team when your alert is firing. Find out how to [configure notification policies in Grafana](/tutorials/configure-slack-alerting/#configuring-a-notification-policy). 12. Click **Save rule** in the top right corner of your screen to save and activate your alert. - 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact point](/cockpit/concepts/#contact-points). + 13. Optionally, check that your configuration works by temporarily lowering the threshold. This will trigger the alert and notify your [contact](/cockpit/concepts/#contacts). diff --git a/pages/cockpit/quickstart.mdx b/pages/cockpit/quickstart.mdx index 8907c52b02..252cb0244c 100644 --- a/pages/cockpit/quickstart.mdx +++ b/pages/cockpit/quickstart.mdx @@ -36,7 +36,7 @@ In this documentation, we show you how to retrieve your Grafana credentials to a 5. Select a [role](/cockpit/concepts/#grafana-users) for the user. 6. Click **Add a user**. Your automatically generated password to log in to Grafana displays. Make sure to copy and save it before closing the pop-up. -## How to create a token to push your metrics and logs +## How to create a Cockpit token to push your metrics and logs 1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. 2. Click the **Tokens** tab. From ab66274d93d55e3723a3b3adec046c8d7247eae0 Mon Sep 17 00:00:00 2001 From: nerda-codes Date: Tue, 29 Jul 2025 13:59:24 +0200 Subject: [PATCH 2/6] docs(cpt): updates --- .../how-to/activate-managed-alerts.mdx | 46 ++++++------------- pages/cockpit/how-to/add-contact-points.mdx | 44 ++++++++++++------ pages/cockpit/how-to/enable-alert-manager.mdx | 42 +++++++++++++---- 3 files changed, 78 insertions(+), 54 deletions(-) diff --git a/pages/cockpit/how-to/activate-managed-alerts.mdx b/pages/cockpit/how-to/activate-managed-alerts.mdx index 8379e82ae3..0bb398d1f8 100644 --- a/pages/cockpit/how-to/activate-managed-alerts.mdx +++ b/pages/cockpit/how-to/activate-managed-alerts.mdx @@ -1,10 +1,10 @@ --- -title: How to manage Scaleway preconfigured alerts -description: Learn how to configure alert notifications with the alert manager, activate preconfigured alerts for your Cockpit resources, and add contacts to notify, using the Scaleway console. +title: How to activate Scaleway preconfigured alerts +description: Learn how to activate preconfigured alerts for your Cockpit resources using the Scaleway console. categories: - observability dates: - validation: 2025-07-22 + validation: 2025-07-29 posted: 2024-04-05 --- import Requirements from '@macros/iam/requirements.mdx' @@ -12,15 +12,16 @@ import Requirements from '@macros/iam/requirements.mdx' import CustomAlertsTab from './assets/scaleway-custom-alerts-tab.webp' -This page shows you how to enable the Scaleway alert manager, activate [preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) for your Cockpit resources, and add contacts that will be notified when your alerts are triggered, using the [Scaleway console](https://console.scaleway.com/). +This page shows you how to activate [preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) for your Cockpit resources. - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + - [Enabled](/cockpit/how-to/enable-alert-manager/) the alert manager + - [Added contacts](/cockpit/how-to/add-contact-points/) -## How to configure alert notifications -Enabling Scaleway's regionalized alert manager allows you configure preconfigured alerts for your Scaleway resources. +## How to activate preconfigured alerts 1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. 2. Click the **Alerts** tab. @@ -28,35 +29,18 @@ Enabling Scaleway's regionalized alert manager allows you configure preconfigure Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want to be alerted for. -5. Click **Enable alert manager** under the **Alert manager** section. A pop-up displays prompting you to configure alert notifications. - - Configuring alert notifications consists of two steps: - - Enabling the alert manager, and - - Adding contacts - This allows you to receive notifications at the desired contact whenever alerts you may have configured are triggered. - -6. Click **Enable alert manager** to confirm. The step for adding contacts displays. -7. Enter an email address, then click **+ Add email**. Your email address displays and by default, the **Resolved notifications** box is ticked. This means that you will receive notifications for resolved alerts. -8. Optionally: - - Click **Skip for now** if you do not want to add contacts yet, or - - Enter another email and click **+ Add email** to add another contact and/or - - Untick the box next to the email(s) you have added if you do not wish to receive notifications for resolved alerts and/or -9. Click **Add contacts** to confirm. A new **Contacts** section displays. +4. Scroll to the **Alert management** section. This section allows you to manage (enable, disable and visualize) [Scaleway preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) or custom alerts. +5. From the **Preconfigured** tab, click the down arrow next to the Scaleway product of your choice to view available alerts. +6. Under the **Activation** section, tick the checkboxes next to the alerts you want to activate. +7. Click **Save changes**. A pop-up appears summarizing the number of alerts you are about to enable and the total of enabled alerts you will have after you confirm. - You can opt out of adding contacts and add them at a later time + If you have created alerting or recording rules in Grafana, the total of enabled alerts includes your Scaleway preconfigured alerts and the ones you have in Grafana. - -## How to activate preconfigured alerts - -1. In the same tab as the previous steps, scroll to the **Alert management** section. This section allows you to manage (enable, disable and visualize) Scaleway preconfigured alerts or visualize custom alerts. -2. From the **Preconfigured** tab, click the down arrow next to the Scaleway product of your choice to view available alerts. -3. Under the **Activation** section, tick the boxes next to the alerts you want to activate. -4. Click **Save changes**. A pop-up appears summarizing the number of alerts you are about to enable and the total of enabled alerts you will have after you confirm. -5. Click **Save changes** to confirm. +8. Click **Save changes** to confirm. - If you have created alerts in Grafana, you can visualize them in the **Custom** tab. + If you have created custom alerts in Grafana, you can visualize them in the **Custom** tab. -Your enabled alerts display in the **Overview** as **enabled rules**. Alerting rules are your Scaleway or custom alerts. \ No newline at end of file +Your enabled alerts display in the **Overview** as **enabled rules**. Enabled rules include your Scaleway or custom alerts, as well as [recording rules](/cockpit/concepts/#recording-rules) you may have created in Grafana. \ No newline at end of file diff --git a/pages/cockpit/how-to/add-contact-points.mdx b/pages/cockpit/how-to/add-contact-points.mdx index 29de5363f9..eafe5256a5 100644 --- a/pages/cockpit/how-to/add-contact-points.mdx +++ b/pages/cockpit/how-to/add-contact-points.mdx @@ -1,16 +1,18 @@ --- -title: How to add contacts -description: Learn how to add contacts to notify when alerts are triggered or resolved using the Scaleway console. Follow the steps to configure contacts, choose whether to be notified when alerts are resolved, and send test alerts. +title: How to manage contacts +description: Learn how to configure and manage contacts to notify when alerts are triggered or resolved using the Scaleway console. Follow the steps to configure contacts, choose whether to be notified when alerts are resolved, and send test alerts. categories: - observability dates: - validation: 2025-07-22 + validation: 2025-07-29 posted: 2024-04-05 --- import Requirements from '@macros/iam/requirements.mdx' -This page shows you how to add [contacts](/cockpit/concepts/#contacts) to notify when alerts are triggered or resolved using the [Scaleway console](https://console.scaleway.com/). +This page shows you how to add [contacts](/cockpit/concepts/#contacts) to ensure the right people are notified when alerts are triggered or resolved using the [Scaleway console](https://console.scaleway.com/). + +You are prompted to create contacts when [enabling the alert manager](/cockpit/how-to/enable-alert-manager/) for the first time, or when re-enabling it after disabling. However, you can also perform this step independently from the alert manager configuration at any time. @@ -18,15 +20,31 @@ This page shows you how to add [contacts](/cockpit/concepts/#contacts) to notify - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - [Enabled](/cockpit/how-to/enable-alert-manager/) the alert manager -## Add contacts +## How to add contacts + +1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. +2. Click the **Alerts** tab. +3. Click the **Region** drop-down and select the desired region. + + Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want your contacts to be alerted for. + +4. Click **Add email** in the **Contacts** section. A pop-up displays. +5. Enter an email address, then click **+ Add email**. Your email address displays and by default, the **Resolved notifications** checkbox is ticked. This means that you will receive notifications for resolved alerts. +6. Optionally, enter another email and click **+ Add email** to add another contact. +7. Click **Add contacts** to confirm. The email addresses appears in the list of your contacts. + +## How to manage contacts 1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. 2. Click the **Alerts** tab. -3. Click **+ Add email** in the **Contacts** section. A pop-up displays. -4. Enter the email address you wish to add as a contact. -5. Choose the regions in which you want to add the contact. - - Make sure that you choose the same regions as the data sources for which you want to receive alerts. - -6. Click **Add email address**. The email address appears in the list of your contacts. -7. Optionally, if you have [activated preconfigured alerts](/cockpit/how-to/activate-managed-alerts/), click **Send test alert** to ensure that your alerts are sent to your contacts. +3. Click the **Region** drop-down and select the desired region. + + Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want your contacts to be alerted for. + +4. Scroll to the **Contacts** section and: + - click **Send test alert** to ensure that your alerts are sent to your contacts. You **must have [activated preconfigured alerts](/cockpit/how-to/activate-managed-alerts/)** beforehand. + - clear the checkbox under **Resolved notifications** to **stop receiving resolved notifications**. + - click the trash icon next to the contact you wish to **delete**. + + The contact you delete will no longer receive alerts. If this is your only configured contact, alert notifications will stop until you add a new contact. + \ No newline at end of file diff --git a/pages/cockpit/how-to/enable-alert-manager.mdx b/pages/cockpit/how-to/enable-alert-manager.mdx index 4f21ee046a..490f2d3d73 100644 --- a/pages/cockpit/how-to/enable-alert-manager.mdx +++ b/pages/cockpit/how-to/enable-alert-manager.mdx @@ -1,26 +1,48 @@ --- -title: How to enable the alert manager -description: Learn how to enable Scaleway's regionalized alert manager to configure preconfigured alerts for your resources. Follow the steps to navigate to the Alerts tab, select regions, and confirm the alert manager activation. +title: How to enable the alert manager and add contacts +description: Learn how to enable Scaleway's regionalized alert manager and add contacts to configure preconfigured alerts for your resources. +categories: + - observability dates: - validation: 2025-04-08 + validation: 2025-07-29 posted: 2024-04-05 --- import Requirements from '@macros/iam/requirements.mdx' -This page shows you how to enable Scaleway's regionalized alert manager to configure preconfigured alerts for your Scaleway resources. +This page shows you how to enable Scaleway's regionalized alert manager, and add notification contacts that will be notified when your alerts are triggered, using the [Scaleway console](https://console.scaleway.com/). + +You can [add]() or manage contacts at any time to ensure the right people are notified when alerts fire. - A Scaleway account logged into the [Scaleway console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +## How to configure alert notifications + +Enabling Scaleway's regionalized alert manager allows you configure preconfigured alerts for your Scaleway resources. 1. Click **Cockpit** in the **Monitoring** section of the [console](https://console.scaleway.com/) side menu. The **Cockpit** overview page displays. 2. Click the **Alerts** tab. -3. Click **Enable** under the **Alert manager** section. -4. Choose the regions where you want to enable the alert manager. - - Make sure that you enable the alert manager in the same regions as the [data sources](/cockpit/concepts/#data-sources) you want to be alerted for. - -5. Click **Enable alert manager** to confirm. +3. Click the **Region** drop-down and select the desired region. + + Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want to be alerted for. + +5. Click **Enable alert manager** under the **Alert manager** section. A pop-up displays prompting you to configure alert notifications. + + Configuring alert notifications consists of two steps: + - Enabling the alert manager, and + - Adding contacts + This allows you to receive notifications at the desired contact whenever alerts you may have configured are triggered. + +6. Click **Enable alert manager** to confirm. The step for adding contacts displays. + + You are prompted to create contacts when enabling the alert manager for the first time, or when re-enabling it after disabling. However, you can also [add](/cockpit/how-to/add-contact-points/) or update contacts independently from the alert manager configuration at any time. + +7. Enter an email address, then click **+ Add email**. Your email address displays and by default, the **Resolved notifications** box is ticked. This means that you will receive notifications for resolved alerts. +8. Optionally: + - Click **Skip for now** if you do not want to add contacts yet, or + - Enter another email and click **+ Add email** to add another contact and/or + - Untick the box next to the email(s) you have added if you do not wish to receive notifications for resolved alerts +9. Click **Add contacts** to confirm. A new **Contacts** section displays. From f5c1d66f4159cfa808c9e36e1f4f526a5ff4ab5d Mon Sep 17 00:00:00 2001 From: nerda-codes Date: Tue, 29 Jul 2025 14:16:03 +0200 Subject: [PATCH 3/6] docs(fix): fix title in menu --- menu/navigation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menu/navigation.json b/menu/navigation.json index 04297a1b93..537ed87bac 100644 --- a/menu/navigation.json +++ b/menu/navigation.json @@ -3722,7 +3722,7 @@ "slug": "activate-managed-alerts" }, { - "label": "Add contacts", + "label": "Manage contacts", "slug": "add-contact-points" }, { From 63d320c31d5ec34cf5b7ca0fd5c95d5009041b08 Mon Sep 17 00:00:00 2001 From: nerda-codes Date: Tue, 29 Jul 2025 15:08:42 +0200 Subject: [PATCH 4/6] docs(fix): fix --- pages/cockpit/how-to/enable-alert-manager.mdx | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/pages/cockpit/how-to/enable-alert-manager.mdx b/pages/cockpit/how-to/enable-alert-manager.mdx index 490f2d3d73..d3436b0327 100644 --- a/pages/cockpit/how-to/enable-alert-manager.mdx +++ b/pages/cockpit/how-to/enable-alert-manager.mdx @@ -12,14 +12,14 @@ import Requirements from '@macros/iam/requirements.mdx' This page shows you how to enable Scaleway's regionalized alert manager, and add notification contacts that will be notified when your alerts are triggered, using the [Scaleway console](https://console.scaleway.com/). -You can [add]() or manage contacts at any time to ensure the right people are notified when alerts fire. +You can [add](/cockpit/how-to/add-contact-points/) or manage contacts at any time to ensure the right people are notified when alerts fire. - A Scaleway account logged into the [Scaleway console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -## How to configure alert notifications +## How to enable the alert manager Enabling Scaleway's regionalized alert manager allows you configure preconfigured alerts for your Scaleway resources. @@ -29,20 +29,17 @@ Enabling Scaleway's regionalized alert manager allows you configure preconfigure Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want to be alerted for. -5. Click **Enable alert manager** under the **Alert manager** section. A pop-up displays prompting you to configure alert notifications. - - Configuring alert notifications consists of two steps: - - Enabling the alert manager, and - - Adding contacts - This allows you to receive notifications at the desired contact whenever alerts you may have configured are triggered. - -6. Click **Enable alert manager** to confirm. The step for adding contacts displays. - - You are prompted to create contacts when enabling the alert manager for the first time, or when re-enabling it after disabling. However, you can also [add](/cockpit/how-to/add-contact-points/) or update contacts independently from the alert manager configuration at any time. - -7. Enter an email address, then click **+ Add email**. Your email address displays and by default, the **Resolved notifications** box is ticked. This means that you will receive notifications for resolved alerts. -8. Optionally: - - Click **Skip for now** if you do not want to add contacts yet, or - - Enter another email and click **+ Add email** to add another contact and/or - - Untick the box next to the email(s) you have added if you do not wish to receive notifications for resolved alerts -9. Click **Add contacts** to confirm. A new **Contacts** section displays. +4. Click **Enable alert manager** under the **Alert manager** section. A pop-up displays prompting you to configure alert notifications. + + Configuring alert notifications consists of two steps: + - Enabling the alert manager, and + - Adding contacts + This allows you to receive notifications at the desired contact whenever alerts you may have configured are triggered. + +5. Click **Enable alert manager** to confirm. The step for adding contacts displays. +6. Enter an email address, then click **+ Add email** and **Add contacts**. Your email address displays in the **Contacts** section, and by default, the **Resolved notifications** box is ticked. This means that you will receive notifications for resolved alerts. +7. Optionally, click **Skip for now** if you do not want to add contacts yet. + + You are prompted to create contacts when enabling the alert manager for the first time, or when re-enabling it after disabling. However, you can also [add](/cockpit/how-to/add-contact-points/) or manage them independently from the alert manager configuration at any time. + + From 91af1d79caf90512fa7190d9292dfb3a21f9a9f9 Mon Sep 17 00:00:00 2001 From: nerda-codes Date: Wed, 30 Jul 2025 10:19:35 +0200 Subject: [PATCH 5/6] docs(fix): typos --- pages/cockpit/how-to/add-contact-points.mdx | 2 +- pages/cockpit/how-to/enable-alert-manager.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/cockpit/how-to/add-contact-points.mdx b/pages/cockpit/how-to/add-contact-points.mdx index eafe5256a5..8b6b98bdaa 100644 --- a/pages/cockpit/how-to/add-contact-points.mdx +++ b/pages/cockpit/how-to/add-contact-points.mdx @@ -10,7 +10,7 @@ dates: import Requirements from '@macros/iam/requirements.mdx' -This page shows you how to add [contacts](/cockpit/concepts/#contacts) to ensure the right people are notified when alerts are triggered or resolved using the [Scaleway console](https://console.scaleway.com/). +This page shows you how to add and manage [contacts](/cockpit/concepts/#contacts) to ensure the right people are notified when alerts are triggered or resolved using the [Scaleway console](https://console.scaleway.com/). You are prompted to create contacts when [enabling the alert manager](/cockpit/how-to/enable-alert-manager/) for the first time, or when re-enabling it after disabling. However, you can also perform this step independently from the alert manager configuration at any time. diff --git a/pages/cockpit/how-to/enable-alert-manager.mdx b/pages/cockpit/how-to/enable-alert-manager.mdx index d3436b0327..ee4b997fdb 100644 --- a/pages/cockpit/how-to/enable-alert-manager.mdx +++ b/pages/cockpit/how-to/enable-alert-manager.mdx @@ -1,6 +1,6 @@ --- -title: How to enable the alert manager and add contacts -description: Learn how to enable Scaleway's regionalized alert manager and add contacts to configure preconfigured alerts for your resources. +title: How to enable the alert manager +description: Learn how to enable Scaleway's regionalized alert manager and add contacts to configure alert notifications for your resources. categories: - observability dates: From 22783454fc565335152b6d55af7afe98f7ec9590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9da?= <87707325+nerda-codes@users.noreply.github.com> Date: Wed, 30 Jul 2025 10:24:17 +0200 Subject: [PATCH 6/6] Apply suggestions from code review --- pages/cockpit/how-to/activate-managed-alerts.mdx | 2 +- pages/cockpit/how-to/add-contact-points.mdx | 2 +- pages/cockpit/how-to/enable-alert-manager.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/cockpit/how-to/activate-managed-alerts.mdx b/pages/cockpit/how-to/activate-managed-alerts.mdx index 0bb398d1f8..76b4747594 100644 --- a/pages/cockpit/how-to/activate-managed-alerts.mdx +++ b/pages/cockpit/how-to/activate-managed-alerts.mdx @@ -29,7 +29,7 @@ This page shows you how to activate [preconfigured alerts](/cockpit/concepts/#pr Make sure that you select the same region as the [data sources](/cockpit/concepts/#data-sources) you want to be alerted for. -4. Scroll to the **Alert management** section. This section allows you to manage (enable, disable and visualize) [Scaleway preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) or custom alerts. +4. Scroll to the **Alert management** section. This section allows you to manage (enable, disable, and visualize) [Scaleway preconfigured alerts](/cockpit/concepts/#preconfigured-alerts) or custom alerts. 5. From the **Preconfigured** tab, click the down arrow next to the Scaleway product of your choice to view available alerts. 6. Under the **Activation** section, tick the checkboxes next to the alerts you want to activate. 7. Click **Save changes**. A pop-up appears summarizing the number of alerts you are about to enable and the total of enabled alerts you will have after you confirm. diff --git a/pages/cockpit/how-to/add-contact-points.mdx b/pages/cockpit/how-to/add-contact-points.mdx index 8b6b98bdaa..1533107a25 100644 --- a/pages/cockpit/how-to/add-contact-points.mdx +++ b/pages/cockpit/how-to/add-contact-points.mdx @@ -44,7 +44,7 @@ You are prompted to create contacts when [enabling the alert manager](/cockpit/h 4. Scroll to the **Contacts** section and: - click **Send test alert** to ensure that your alerts are sent to your contacts. You **must have [activated preconfigured alerts](/cockpit/how-to/activate-managed-alerts/)** beforehand. - clear the checkbox under **Resolved notifications** to **stop receiving resolved notifications**. - - click the trash icon next to the contact you wish to **delete**. + - click the trash icon next to the contact you wish to **delete**, then click **Delete contact** to confirm. The contact you delete will no longer receive alerts. If this is your only configured contact, alert notifications will stop until you add a new contact. \ No newline at end of file diff --git a/pages/cockpit/how-to/enable-alert-manager.mdx b/pages/cockpit/how-to/enable-alert-manager.mdx index ee4b997fdb..efbb419d64 100644 --- a/pages/cockpit/how-to/enable-alert-manager.mdx +++ b/pages/cockpit/how-to/enable-alert-manager.mdx @@ -34,7 +34,7 @@ Enabling Scaleway's regionalized alert manager allows you configure preconfigure Configuring alert notifications consists of two steps: - Enabling the alert manager, and - Adding contacts - This allows you to receive notifications at the desired contact whenever alerts you may have configured are triggered. + This allows the contacts to receive notifications whenever alerts you have configured are triggered. 5. Click **Enable alert manager** to confirm. The step for adding contacts displays. 6. Enter an email address, then click **+ Add email** and **Add contacts**. Your email address displays in the **Contacts** section, and by default, the **Resolved notifications** box is ticked. This means that you will receive notifications for resolved alerts.