---
title: How to Create, Edit, and Delete Resource Alerts
description: Create, edit, view, and delete resource alerts to monitor your Droplets and receive notifications when key metrics exceed or fall below thresholds you …
product: Monitoring
url: https://docs.digitalocean.com/products/monitoring/how-to/manage-resource-alerts/
last_updated: "2026-10-06"
---

> **For AI agents:** The documentation index is at [https://docs.digitalocean.com/llms.txt](https://docs.digitalocean.com/llms.txt). Markdown versions of pages use the same URL with `index.html.md` in place of the HTML page (for example, append `index.html.md` to the directory path instead of opening the HTML document).

# How to Create, Edit, and Delete Resource Alerts

DigitalOcean Monitoring is a free, opt-in service that helps you track Droplet resource usage, view performance metrics, and receive alerts. The DigitalOcean metrics agent is an open-source Go utility that collects and sends system metrics to DigitalOcean to enable features such as usage graphs, alerts, and custom metrics.

You can create, edit, and delete resource alerts to monitor your Droplets and receive notifications when resource usage crosses thresholds you define. These alerts help you track metrics such as CPU, memory, disk, load, and bandwidth.

Before setting up resource alerts for your Droplet, we recommend reviewing your historical metrics to understand normal usage patterns. To view your current metrics, go to the [DigitalOcean Control Panel](https://cloud.digitalocean.com/). In the left menu, click **CORE CLOUD**, and then **Droplets**. Select the Droplet you want to set alerts for, and then click its **Insights** tab. This helps you set alerts that catch sustained issues and avoid alerts from brief spikes or idle periods.

Use different thresholds based on each Droplet’s role. For example, a database server may need a lower CPU threshold than a cache server.

## Create a Resource Alert Using the Control Panel

To create a resource alert, go to the [**Monitoring** page](https://cloud.digitalocean.com/monitors/resource-alerts) in the Control Panel, and then in the top-right, click **Create Resource Alert**.

### Select Metric and Set Threshold

In the **Select metric & set threshold** section, click the **Metric Type** dropdown list, and select the metric you want to monitor.

You can select one of the following metrics to monitor:

| Metric | Definition |
|---|---|
| **1 Minute Load Average** | Average number of processes running or waiting in the past 1 minute. |
| **5 Minute Load Average** | Average number of processes running or waiting in the past 5 minutes. |
| **15 Minute Load Average** | Average number of processes running or waiting in the past 15 minutes. |
| **Memory Utilization Percent** | Total memory in use on the Droplet. |
| **Disk Utilization Percent** | Root disk storage in use on the Droplet. |
| **CPU Utilization Percent** | Total CPU capacity in use on the Droplet. |
| **Disk Read I/O** | Read activity on the Droplet’s disk. |
| **Disk Write I/O** | Write activity on the Droplet’s disk. |
| **Public Outbound Bandwidth** | Outgoing public network traffic from the Droplet. |
| **Public Inbound Bandwidth** | Incoming public network traffic to the Droplet. |
| **Private Outbound Bandwidth** | Outgoing private network traffic from the Droplet. |
| **Private Inbound Bandwidth** | Incoming private network traffic to the Droplet. |

For more details about each metric, see [Droplet Metrics](https://docs.digitalocean.com/products/monitoring/concepts/metrics/index.html.md).

Then, click the **Rule** dropdown list to either choose **is above** or **is below** to define when the alert triggers. The rule works with your alert’s threshold and duration settings to determine when the alert is sent.

Then, in the **Threshold** field, enter the value that the metric must exceed or fall below before the alert triggers. The default is 70, which is a useful starting point for metrics such as CPU, memory, and disk usage. Thresholds can be percentages or usage rates, depending on the metric.

For specific metrics, we recommend these starting thresholds:

- CPU, memory, or disk usage: 70%, because sustained usage above this level can affect performance.
- Load averages: Near or slightly above your Droplet’s vCPU count.
- Bandwidth and disk I/O: Based on the Droplet’s normal activity.

Then, click the **Duration** dropdown list to choose how long the metric must stay above or below the threshold before the alert triggers. You can set the duration to **5 min**, **10 min**, **30 min**, or **1 hour**. This helps reduce alerts from brief spikes or dips.

We recommend choosing the duration based on how sensitive the alert should be:

- Shorter durations: Send alerts sooner but may trigger on brief spikes.
- Longer durations: Reduce noise from short fluctuations but may delay alerts.

You can review and adjust your alert configurations over time based on how often the alert triggers and whether it reflects real performance issues.

### Select Droplets or Tags

In the **Select Droplets or Tags** section, in the **Droplets or Tag** field, either click **All Droplets** to apply the alert to all your existing Droplets, or choose a specific Droplet or a shared tag.

**Note**:

  Only Droplets with the DigitalOcean metrics agent installed are available to select. If the metrics agent isn’t installed on the Droplets you want to monitor, [install the metrics agent via the metrics agent script](https://docs.digitalocean.com/products/monitoring/how-to/install-metrics-agent/index.html.md#install) or [install it via the metrics agent repository](https://docs.digitalocean.com/products/monitoring/how-to/install-metrics-agent-repository/index.html.md) first.

For Kubernetes worker nodes, assign alerts by tag instead of by Droplet name. Worker nodes can be recycled and might keep the same names, but tags such as the cluster name stay consistent and help ensure alerts continue to apply.

### Select Alert Notification Method

In the **Select alert notification method** section, choose how you want to receive notifications when the alert triggers (either email, Slack, or both). You must select at least one notification method, and then you can update this later after creation.

### Set Up Email Notifications

To set up email notifications, click **Email**. In the **Add one or more email addresses…** field, enter the email addresses you want to notify, and then press **ENTER**, or select them from the dropdown list.

The default recipient is the email address associated with your DigitalOcean account, but you can add other [team members](https://docs.digitalocean.com/platform/teams/how-to/manage-membership/index.html.md) if their email addresses are verified and belong to the same team.

### Set Up Slack Notifications

To set up Slack notifications, click **Slack**, and then click **Connect Slack**. This opens Slack’s authorization window for DigitalOcean. Authorizing DigitalOcean allows it to send alert notifications to your selected Slack workspace and channel or direct message. After you finish, you return to the alert creation page.

**Warning**:

  If the Slack team name includes non-UTF-8 characters, such as emojis, Slack alerts may fail and return a 500 error.

After you authorize Slack, select the channel or direct message where you want to receive alerts. To add another Slack channel or direct message, click **Add additional Slack connections**. To remove one, click **Unlink** next to the Slack channel or direct message.

### Finalize

In the **Finalize** section, either enter a name for the resource alert or use the auto-generated one. The name doesn’t need to be unique, but a specific name can make it easier to find later.

Then, click **Create Resource Alert**. The alert appears on the **Resource Alerts** tab of the [**Monitoring** page](https://cloud.digitalocean.com/monitors/resource-alerts) and begins monitoring shortly after.

The alert continuously averages recent data over the time window you set. This helps filter out brief spikes or dips. The alert triggers when the average crosses the threshold and resolves automatically when usage returns to normal.

## Create a Resource Alert Using Automation

You can create a resource alert with the DigitalOcean API or CLI. Both options let you define the metric, threshold, duration, and notification method for the alert.

### Create a Resource Alert via API

To create a resource alert via the API, send a request to the [Create Alert Policy](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_create_alertPolicy) endpoint with the required metric, comparison, threshold, and action.

## How to Create a Resource Alert Using the DigitalOcean API

[Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with the API.

### cURL

Send a POST request to [`https://api.digitalocean.com/v2/monitoring/alerts`](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_create_alertPolicy).

Using cURL:

```shell
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/monitoring/alerts" \
  --data '{"alerts":{"email":["alerts@example.com"]},"compare":"GreaterThan","description":"CPU Alert","enabled":true,"entities":["12345678"],"tags":["droplet_tag"],"type":"v1/insights/droplet/cpu","value":80,"window":"5m"}'
```

### Python

Using [PyDo](https://github.com/digitalocean/pydo), the official DigitalOcean API client for Python:

```python
import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "alerts": {
    "email": [
      "bob@exmaple.com"
    ],
    "slack": [
      {
        "channel": "Production Alerts",
        "url": "https://hooks.slack.com/services/T1234567/AAAAAAAA/ZZZZZZ"
      }
    ]
  },
  "compare": "GreaterThan",
  "description": "CPU Alert",
  "enabled": True,
  "entities": [
    "192018292"
  ],
  "tags": [
    "droplet_tag"
  ],
  "type": "v1/insights/droplet/cpu",
  "value": 80,
  "window": "5m"
}

resp = client.monitoring.create_alert_policy(body=req)
```

Once created, the alert policy monitors the specified Droplet or resource and triggers notifications when thresholds are met. You can retrieve a list of your alert policies using the [List Alert Policies](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_list_alertPolicy) endpoint, and details of your new alert policy using the [Get Alert Policy](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_get_alertPolicy) endpoint.

### Create a Resource Alert via CLI {create-cli}

To create a resource alert using the CLI, use `doctl monitoring alert create`. When running the command, provide values for the alert `--type`, `--compare`, `--value`, and `--window` flags, along with at least one notification destination such as `--emails`, `--slack-channels`, or `--slack-urls`. You can apply the alert to specific Droplets with `--entities` or to groups of Droplets with `--tags`. The current `doctl` reference documents these flags for `doctl monitoring alert create`.

## How to Create an Alert Policy Using the DigitalOcean CLI

1. [Install `doctl`](https://docs.digitalocean.com/reference/doctl/how-to/install/index.html.md), the official DigitalOcean CLI.
2. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with `doctl`.
3. Use the token to grant `doctl` access to your DigitalOcean account.

   ```shell
   doctl auth init
   ```
4. Finally, run `doctl monitoring alert create`. Basic usage looks like this, but you can [read the usage docs](https://docs.digitalocean.com/reference/doctl/reference/monitoring/alert/create/index.html.md) for more details:

   ```shell
   doctl monitoring alert create [flags]
   ```

   The following example creates an alert policy that sends an email to `admin@example.com` whenever the memory usage on the listed Droplets (entities) exceeds 80% for more than five minutes:

   ```shell
   doctl monitoring alert create --type "v1/insights/droplet/memory_utilization_percent" --compare GreaterThan --value 80 --window 5m --entities 386734086,191669331 --emails admin@example.com
   ```

## Edit a Resource Alert Using the Control Panel

You can edit a resource alert at any time to change thresholds, notification settings, or which Droplets it applies to. This is useful when your workload or usage patterns change, or when you want to fine-tune alerts.

To edit a resource alert, go to the [**Monitoring** page](https://cloud.digitalocean.com/monitors/resource-alerts) in the Control Panel. On the **Resource Alerts** tab, find the alert you want to edit, on the right of it, click **…**, and then click **Edit**.

You can [edit any of the attributes you used to create your resource alert](#create-control), including the metric, threshold, rule, duration, assigned Droplets or tags, and notification methods.

## Edit a Resource Alert Using Automation

You can edit a resource alert with the DigitalOcean API or CLI to update its threshold, duration, targets, or notification settings.

### Edit a Resource Alert via API

To edit a resource alert via the API, send a request to the [Update Alert Policy](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_update_alertPolicy) endpoint with the alert policy ID and the updated configuration.

You can find the alert policy ID using the [List Alert Policies](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_list_alertPolicy) endpoint.

## How to Edit a Resource Alert Using the DigitalOcean API

[Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with the API.

### cURL

Send a PUT request to [`https://api.digitalocean.com/v2/monitoring/alerts/{alert_uuid}`](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_update_alertPolicy).

Using cURL:

```shell
curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/monitoring/alerts/78b3da62-27e5-49ba-ac70-5db0b5935c64" \
  --data '{"alerts":{"email":["alerts@example.com"]},"compare":"GreaterThan","description":"CPU Alert","enabled":true,"entities":["12345678"],"tags":["droplet_tag"],"type":"v1/insights/droplet/cpu","value":80,"window":"5m"}'
```

### Python

Using [PyDo](https://github.com/digitalocean/pydo), the official DigitalOcean API client for Python:

```python
import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "alerts": {
    "email": [
      "bob@exmaple.com"
    ],
    "slack": [
      {
        "channel": "Production Alerts",
        "url": "https://hooks.slack.com/services/T1234567/AAAAAAAA/ZZZZZZ"
      }
    ]
  },
  "compare": "GreaterThan",
  "description": "CPU Alert",
  "enabled": True,
  "entities": [
    "192018292"
  ],
  "tags": [
    "droplet_tag"
  ],
  "type": "v1/insights/droplet/cpu",
  "value": 80,
  "window": "5m"
}

resp = client.monitoring.update_alert_policy(alert_uuid="fda9da", body=req)
```

After editing, the updated policy immediately takes effect for all monitored resources.

### Edit a Resource Alert via CLI

To edit a resource alert via the CLI, use `doctl monitoring alert update`. When running the command, provide the alert policy ID and any flags for the values you want to change, such as `--type`, `--compare`, `--value`, `--window`, `--entities`, `--tags`, `--emails`, `--slack-channels`, or `--slack-urls`. You can find alert policy IDs with `doctl monitoring alert list` or view a specific alert with `doctl monitoring alert get`.

## How to Update an Alert Policy Using the DigitalOcean CLI

1. [Install `doctl`](https://docs.digitalocean.com/reference/doctl/how-to/install/index.html.md), the official DigitalOcean CLI.
2. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with `doctl`.
3. Use the token to grant `doctl` access to your DigitalOcean account.

   ```shell
   doctl auth init
   ```
4. Finally, run `doctl monitoring alert update`. Basic usage looks like this, but you can [read the usage docs](https://docs.digitalocean.com/reference/doctl/reference/monitoring/alert/update/index.html.md) for more details:

   ```shell
   doctl monitoring alert update <alert-policy-uuid>... [flags]
   ```

   The following example updates an alert policy’s details:

   ```shell
   doctl monitoring alert update f81d4fae-7dec-11d0-a765-00a0c91e6bf6 --type "v1/insights/droplet/memory_utilization_percent" --compare GreaterThan --value 80 --window 10m --entities 386734086,191669331 --emails admin@example.com
   ```

## Delete a Resource Alert Using the Control Panel

You can delete a resource alert at any time if you no longer need it. Deleting a resource alert stops notifications and removes it from the **Resource Alerts** list. This action is permanent and cannot be undone.

To delete a resource alert, go to the [**Monitoring** page](https://cloud.digitalocean.com/monitors/resource-alerts) in the Control Panel. On the **Resource Alerts** tab, find the alert you want to delete, on the right of it, click **…**, and then click **Delete** to open the **Destroy Resource Alert** window.

Then, to confirm deletion, type the name of the resource alert, and then click **Destroy**.

## Delete a Resource Alert Using Automation

You can delete a resource alert with the DigitalOcean API or CLI. Deleting a resource alert stops notifications and removes the alert policy.

### Delete a Resource Alert via API

To delete a resource alert via the API, send a request to the [Delete Alert Policy](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_delete_alertPolicy) endpoint with the alert policy ID.

You can retrieve the alert policy ID using the [List Alert Policies](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_list_alertPolicy) endpoint.

## How to Delete a Resource Alert Using the DigitalOcean API

[Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with the API.

### cURL

Send a DELETE request to [`https://api.digitalocean.com/v2/monitoring/alerts/{alert_uuid}`](https://docs.digitalocean.com/reference/api/reference/monitoring/index.html.md#monitoring_delete_alertPolicy).

Using cURL:

```shell
curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/monitoring/alerts/{alert_uuid}"
```

### Python

Using [PyDo](https://github.com/digitalocean/pydo), the official DigitalOcean API client for Python:

```python
import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

resp = client.monitoring.delete_alert_policy(alert_uuid="dfa8da")
```

Deleting the alert policy stops any future notifications for the associated resource.

### Delete a Resource Alert via CLI

To delete a resource alert via the CLI, use `doctl monitoring alert delete` with the alert policy ID. You can retrieve alert policy IDs with `doctl monitoring alert list` or view a specific alert with `doctl monitoring alert get`. The current `doctl` reference documents `doctl monitoring alert delete` as the command for deleting alert policies.

## How to Delete an Alert Policy Using the DigitalOcean CLI

1. [Install `doctl`](https://docs.digitalocean.com/reference/doctl/how-to/install/index.html.md), the official DigitalOcean CLI.
2. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with `doctl`.
3. Use the token to grant `doctl` access to your DigitalOcean account.

   ```shell
   doctl auth init
   ```
4. Finally, run `doctl monitoring alert delete`. Basic usage looks like this, but you can [read the usage docs](https://docs.digitalocean.com/reference/doctl/reference/monitoring/alert/delete/index.html.md) for more details:

   ```shell
   doctl monitoring alert delete <alert-policy-uuid>... [flags]
   ```

   The following example deletes an alert policy with the ID `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`:

   ```shell
   doctl monitoring alert delete f81d4fae-7dec-11d0-a765-00a0c91e6bf6
   ```