1 | |
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 |
|