On this page
community.general.datadog_downtime – Manages Datadog downtimes
Note
This plugin is part of the community.general collection (version 3.8.1).
You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.
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/latest/collections/community/general/datadog_downtime_module.html