Puppet Class: datadog_agent::reports

Inherits:
datadog_agent::params
Defined in:
manifests/reports.pp

Overview

Class: datadog_agent::reports

This class configures the puppetmaster for reporting back to the datadog service.

Parameters:

$api_key:
    Your DataDog API Key. Please replace with your key value
$datadog_site:
    URL to use to talk to the Datadog API

Actions:

Requires:

Sample Usage:

Parameters:

  • api_key (String)
  • puppetmaster_user (String)
  • dogapi_version (String)
  • manage_dogapi_gem (Boolean) (defaults to: true)
  • hostname_extraction_regex (Optional[String]) (defaults to: undef)
  • proxy_http (Optional[String]) (defaults to: undef)
  • proxy_https (Optional[String]) (defaults to: undef)
  • report_fact_tags (Array) (defaults to: [])
  • report_trusted_fact_tags (Array) (defaults to: [])
  • datadog_site (String) (defaults to: 'https://api.datadoghq.com')
  • puppet_gem_provider (String) (defaults to: $datadog_agent::params::gem_provider)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'manifests/reports.pp', line 18

class datadog_agent::reports (
  String $api_key,
  String $puppetmaster_user,
  String $dogapi_version,
  Boolean $manage_dogapi_gem = true,
  Optional[String] $hostname_extraction_regex = undef,
  Optional[String] $proxy_http = undef,
  Optional[String] $proxy_https = undef,
  Array $report_fact_tags = [],
  Array $report_trusted_fact_tags = [],
  String $datadog_site = 'https://api.datadoghq.com',
  String $puppet_gem_provider = $datadog_agent::params::gem_provider,
) inherits datadog_agent::params {
  if ($facts['os']['name'] == 'Windows') {
    fail('Reporting is not yet supported from a Windows host')
  } else {
    require datadog_agent

    if $manage_dogapi_gem {
      $rubydev_package = $datadog_agent::params::rubydev_package

      # check to make sure that you're not installing rubydev somewhere else
      if ! defined(Package[$rubydev_package]) {
        package { $rubydev_package:
          ensure => installed,
          before => Package['dogapi'],
        }
      }

      if (! defined(Package['rubygems'])) {
        package { 'ruby':
          ensure => 'installed',
          name   => $datadog_agent::params::ruby_package,
        }

        package { 'rubygems':
          ensure  => 'installed',
          name    => $datadog_agent::params::rubygems_package,
          require => Package['ruby'],
        }
      }

      package { 'dogapi':
        ensure   => $dogapi_version,
        provider => $puppet_gem_provider,
      }
    }

    file { '/etc/datadog-agent/datadog-reports.yaml':
      ensure  => file,
      content => template('datadog_agent/datadog-reports.yaml.erb'),
      owner   => $puppetmaster_user,
      group   => 'root',
      mode    => '0640',
      require => File['/etc/datadog-agent'],
    }
  }
}