community.digitalocean.digital_ocean_monitoring_alerts – Programmatically retrieve metrics as well as configure alert policies based on these metrics

Note

This plugin is part of the community.digitalocean collection (version 1.10.0).

To install it use: ansible-galaxy collection install community.digitalocean.

To use it in a playbook, specify: community.digitalocean.digital_ocean_monitoring_alerts.

New in version 1.10.0: of community.digitalocean

Synopsis

  • The DigitalOcean Monitoring API makes it possible to programmatically retrieve metrics as well as configure alert policies based on these metrics.

  • The Monitoring API can help you gain insight into how your apps are performing and consuming resources.

Parameters

Parameter Choices/Defaults Comments
alerts
dictionary
Alert object, required for state=present
Supports email["email1", "email2", ...] and slack[{"channel1", "url1"}, {"channel2", "url2"}, ...]
compare
string
    Choices:
  • GreaterThan
  • LessThan
Alert comparison, required for state=present
description
string
Alert description, required for state=present
enabled
boolean
    Choices:
  • no
  • yes
Enabled or not, required for state=present
entities
list / elements=string
Alert entities, required for state=present
oauth_token
string / required
DigitalOcean OAuth token; can be specified in DO_API_KEY, DO_API_TOKEN, or DO_OAUTH_TOKEN environment variables

aliases: API_TOKEN
state
string
    Choices:
  • present ←
  • absent
The usual, present to create, absent to destroy
tags
list / elements=string
Alert tags, required for state=present
type
string
    Choices:
  • v1/insights/droplet/load_1
  • v1/insights/droplet/load_5
  • v1/insights/droplet/load_15
  • v1/insights/droplet/memory_utilization_percent
  • v1/insights/droplet/disk_utilization_percent
  • v1/insights/droplet/cpu
  • v1/insights/droplet/disk_read
  • v1/insights/droplet/disk_write
  • v1/insights/droplet/public_outbound_bandwidth
  • v1/insights/droplet/public_inbound_bandwidth
  • v1/insights/droplet/private_outbound_bandwidth
  • v1/insights/droplet/private_inbound_bandwidth
Alert type, required for state=present
uuid
string
Alert uuid, required for state=absent
value
float
Alert threshold, required for state=present
window
string
    Choices:
  • 5m
  • 10m
  • 30m
  • 1h
Alert window, required for state=present

Examples

- name: Create Droplet Monitoring alerts policy
  community.digitalocean.digital_ocean_monitoring_alerts:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    alerts:
      email: ["[email protected]"]
      slack: []
    compare: GreaterThan
    description: Droplet load1 alert
    enabled: true
    entities: ["{{ droplet_id }}"]
    tags: ["my_alert_tag"]
    type: v1/insights/droplet/load_1
    value: 3.14159
    window: 5m
  register: monitoring_alert_policy

- name: Delete Droplet Monitoring alerts policy
  community.digitalocean.digital_ocean_monitoring_alerts:
    state: absent
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    uuid: "{{ monitoring_alert_policy.data.uuid }}"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
data
dictionary
changed
A DigitalOcean Monitoring alerts policy

Sample:
{'alerts': {'email': ['[email protected]'], 'slack': []}, 'compare': 'GreaterThan', 'description': 'Droplet load1 alert', 'enabled': True, 'entities': ['262383737'], 'tags': ['my_alert_tag'], 'type': 'v1/insights/droplet/load_1', 'uuid': '9f988f00-4690-443d-b638-ed5a99bbad3b', 'value': 3.14159, 'window': '5m'}


Authors

  • Mark Mercado (@mamercad)