0

Update an Alert Policy

by
Published Dec 20, 2024

To update en existing policy, send a PUT request to `v2/monitoring/alerts/{alert_uuid}`.

Script digitalocean Verified

The script

Submitted by hugo697 Bun
Verified 536 days ago
1
//native
2
type Digitalocean = {
3
  token: string;
4
};
5
/**
6
 * Update an Alert Policy
7
 * To update en existing policy, send a PUT request to `v2/monitoring/alerts/{alert_uuid}`.
8
 */
9
export async function main(
10
  auth: Digitalocean,
11
  alert_uuid: string,
12
  body: {
13
    alerts: { email: string[]; slack: { channel: string; url: string }[] };
14
    compare: "GreaterThan" | "LessThan";
15
    description: string;
16
    enabled: false | true;
17
    entities: string[];
18
    tags: string[];
19
    type:
20
      | "v1/insights/droplet/load_1"
21
      | "v1/insights/droplet/load_5"
22
      | "v1/insights/droplet/load_15"
23
      | "v1/insights/droplet/memory_utilization_percent"
24
      | "v1/insights/droplet/disk_utilization_percent"
25
      | "v1/insights/droplet/cpu"
26
      | "v1/insights/droplet/disk_read"
27
      | "v1/insights/droplet/disk_write"
28
      | "v1/insights/droplet/public_outbound_bandwidth"
29
      | "v1/insights/droplet/public_inbound_bandwidth"
30
      | "v1/insights/droplet/private_outbound_bandwidth"
31
      | "v1/insights/droplet/private_inbound_bandwidth"
32
      | "v1/insights/lbaas/avg_cpu_utilization_percent"
33
      | "v1/insights/lbaas/connection_utilization_percent"
34
      | "v1/insights/lbaas/droplet_health"
35
      | "v1/insights/lbaas/tls_connections_per_second_utilization_percent"
36
      | "v1/insights/lbaas/increase_in_http_error_rate_percentage_5xx"
37
      | "v1/insights/lbaas/increase_in_http_error_rate_percentage_4xx"
38
      | "v1/insights/lbaas/increase_in_http_error_rate_count_5xx"
39
      | "v1/insights/lbaas/increase_in_http_error_rate_count_4xx"
40
      | "v1/insights/lbaas/high_http_request_response_time"
41
      | "v1/insights/lbaas/high_http_request_response_time_50p"
42
      | "v1/insights/lbaas/high_http_request_response_time_95p"
43
      | "v1/insights/lbaas/high_http_request_response_time_99p"
44
      | "v1/dbaas/alerts/load_15_alerts"
45
      | "v1/dbaas/alerts/memory_utilization_alerts"
46
      | "v1/dbaas/alerts/disk_utilization_alerts"
47
      | "v1/dbaas/alerts/cpu_alerts";
48
    value: number;
49
    window: "5m" | "10m" | "30m" | "1h";
50
  },
51
) {
52
  const url = new URL(
53
    `https://api.digitalocean.com/v2/monitoring/alerts/${alert_uuid}`,
54
  );
55

56
  const response = await fetch(url, {
57
    method: "PUT",
58
    headers: {
59
      "Content-Type": "application/json",
60
      Authorization: "Bearer " + auth.token,
61
    },
62
    body: JSON.stringify(body),
63
  });
64
  if (!response.ok) {
65
    const text = await response.text();
66
    throw new Error(`${response.status} ${text}`);
67
  }
68
  return await response.json();
69
}
70