How to Create, Edit, and Delete Resource Alerts

Validated on 1 May 2026 • Last edited on 12 May 2026

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. In the left menu, click COMPUTE, 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 Control Panel, in the left menu, click INSIGHTS, click Monitoring, 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.

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.

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.

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 if their email addresses are verified and belong to the same team.

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 under the Resource Alerts tab on the Monitoring page 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 endpoint with the required metric, comparison, threshold, and action.

How to Create a Resource Alert Using the DigitalOcean API

Create a personal access token and save it for use with the API.

cURL

Send a POST request to https://api.digitalocean.com/v2/monitoring/alerts.

Using cURL:

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

Python

Using PyDo, the official DigitalOcean API client for Python:

import os
from pydo import Client

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

req = {
  "alerts": {
    "email": [
      "[email protected]"
    ],
    "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 endpoint, and details of your new alert policy using the Get Alert Policy 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, the official DigitalOcean CLI.
  2. Create a personal access token and save it for use with doctl.
  3. Use the token to grant doctl access to your DigitalOcean account.
    doctl auth init
  4. Finally, run doctl monitoring alert create. Basic usage looks like this, but you can read the usage docs for more details:
    doctl monitoring alert create [flags]
    The following example creates an alert policy that sends an email to [email protected] whenever the memory usage on the listed Droplets (entities) exceeds 80% for more than five minutes:
    doctl monitoring alert create --type "v1/insights/droplet/memory_utilization_percent" --compare GreaterThan --value 80 --window 5m --entities 386734086,191669331 --emails [email protected]

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 Control Panel, in the left menu, click INSIGHTS, click Montoring. In the Resource Alerts list, 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, 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 endpoint with the alert policy ID and the updated configuration.

You can find the alert policy ID using the List Alert Policies endpoint.

How to Edit a Resource Alert Using the DigitalOcean API

Create a personal access token and save it for use with the API.

cURL

Send a PUT request to https://api.digitalocean.com/v2/monitoring/alerts/{alert_uuid}.

Using cURL:

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":["[email protected]"]},"compare":"GreaterThan","description":"CPU Alert","enabled":true,"entities":["12345678"],"tags":["droplet_tag"],"type":"v1/insights/droplet/cpu","value":80,"window":"5m"}'

Python

Using PyDo, the official DigitalOcean API client for Python:

import os
from pydo import Client

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

req = {
  "alerts": {
    "email": [
      "[email protected]"
    ],
    "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, the official DigitalOcean CLI.
  2. Create a personal access token and save it for use with doctl.
  3. Use the token to grant doctl access to your DigitalOcean account.
    doctl auth init
  4. Finally, run doctl monitoring alert update. Basic usage looks like this, but you can read the usage docs for more details:
    doctl monitoring alert update <alert-policy-uuid>... [flags]
    The following example updates an alert policy’s details:
    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 [email protected]

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 Resource Alerts. This action is permanent and cannot be undone.

To edit a resource alert, go to the Control Panel, in the left menu, click INSIGHTS, click Montoring. In the Resource Alerts list, 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 endpoint with the alert policy ID.

You can retrieve the alert policy ID using the List Alert Policies endpoint.

How to Delete a Resource Alert Using the DigitalOcean API

Create a personal access token and save it for use with the API.

cURL

Send a DELETE request to https://api.digitalocean.com/v2/monitoring/alerts/{alert_uuid}.

Using cURL:

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, the official DigitalOcean API client for 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, the official DigitalOcean CLI.
  2. Create a personal access token and save it for use with doctl.
  3. Use the token to grant doctl access to your DigitalOcean account.
    doctl auth init
  4. Finally, run doctl monitoring alert delete. Basic usage looks like this, but you can read the usage docs for more details:
    doctl monitoring alert delete <alert-policy-uuid>... [flags]
    The following example deletes an alert policy with the ID f81d4fae-7dec-11d0-a765-00a0c91e6bf6:
    doctl monitoring alert delete f81d4fae-7dec-11d0-a765-00a0c91e6bf6

We can't find any results for your search.

Try using different keywords or simplifying your search terms.