On this page
community.general.datadog_downtime – Manages Datadog downtimes
Note
This plugin is part of the community.general collection (version 2.0.1).
To install it use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.datadog_downtime
.
New in version 2.0.0: of community.general
Synopsis
- Manages downtimes within Datadog.
- Options as described on https://docs.datadoghq.com/api/v1/downtimes/s.
Requirements
The below requirements are needed on the host that executes this module.
- datadog-api-client
- Python 3.6+
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
api_host
string
|
Default:
"https://api.datadoghq.com"
|
The URL to the Datadog API.
This value can also be set with the DATADOG_HOST environment variable.
|
api_key
string / required
|
Your Datadog API key.
|
|
app_key
string / required
|
Your Datadog app key.
|
|
downtime_message
string
|
A message to include with notifications for this downtime.
Email notifications can be sent to specific users by using the same "@username" notation as events.
|
|
end
integer
|
POSIX timestamp to end the downtime. If not provided, the downtime is in effect until you cancel it.
|
|
id
integer
|
The identifier of the downtime.
If empty, a new downtime gets created, otherwise it is either updated or deleted depending of the
state .
To keep your playbook idempotent, you should save the identifier in a file and read it in a lookup.
|
|
monitor_id
integer
|
The ID of the monitor to mute. If not provided, the downtime applies to all monitors.
|
|
monitor_tags
list / elements=string
|
A list of monitor tags to which the downtime applies.
The resulting downtime applies to monitors that match ALL provided monitor tags.
|
|
rrule
string
|
The
RRULE standard for defining recurring events.
For example, to have a recurring event on the first day of each month, select a type of rrule and set the
FREQ to MONTHLY and BYMONTHDAY to 1 .
Most common rrule options from the iCalendar Spec are supported.
Attributes specifying the duration in RRULE are not supported (e.g. DTSTART , DTEND , DURATION ).
|
|
scope
list / elements=string
|
A list of scopes to which the downtime applies.
The resulting downtime applies to sources that matches ALL provided scopes.
|
|
start
integer
|
POSIX timestamp to start the downtime. If not provided, the downtime starts the moment it is created.
|
|
state
string
|
|
The designated state of the downtime.
|
timezone
string
|
The timezone for the downtime.
|
Examples
- name: Create a downtime
register: downtime_var
community.general.datadog_downtime:
state: present
monitor_tags:
- "foo:bar"
downtime_message: "Downtime for foo:bar"
scope: "test"
api_key: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
app_key: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
# Lookup the id in the file and ignore errors if the file doesn't exits, so downtime gets created
id: "{{ lookup('file', inventory_hostname ~ '_downtime_id.txt', errors='ignore') }}"
- name: Save downtime id to file for later updates and idempotence
delegate_to: localhost
copy:
content: "{{ downtime.downtime.id }}"
dest: "{{ inventory_hostname ~ '_downtime_id.txt' }}"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
downtime
dictionary
|
always |
The downtime returned by the API.
Sample:
{'active': True, 'canceled': None, 'creator_id': 1445416, 'disabled': False, 'downtime_type': 2, 'end': None, 'id': 1055751000, 'message': 'Downtime for foo:bar', 'monitor_id': None, 'monitor_tags': ['foo:bar'], 'parent_id': None, 'recurrence': None, 'scope': ['test'], 'start': 1607015009, 'timezone': 'UTC', 'updater_id': None}
|
Authors
- Datadog (@Datadog)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/datadog_downtime_module.html