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 (Any)
  • puppetmaster_user (Any)
  • dogapi_version (Any)
  • manage_dogapi_gem (Any) (defaults to: true)
  • hostname_extraction_regex (Any) (defaults to: undef)
  • proxy_http (Any) (defaults to: undef)
  • proxy_https (Any) (defaults to: undef)
  • report_fact_tags (Any) (defaults to: [])
  • report_trusted_fact_tags (Any) (defaults to: [])
  • datadog_site (Any) (defaults to: 'https://api.datadoghq.com')
  • puppet_gem_provider (Any) (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
# File 'manifests/reports.pp', line 18

class datadog_agent::reports(
  $api_key,
  $puppetmaster_user,
  $dogapi_version,
  $manage_dogapi_gem = true,
  $hostname_extraction_regex = undef,
  $proxy_http = undef,
  $proxy_https = undef,
  $report_fact_tags = [],
  $report_trusted_fact_tags = [],
  $datadog_site = 'https://api.datadoghq.com',
  $puppet_gem_provider = $datadog_agent::params::gem_provider,
) inherits datadog_agent::params {

  if ($::operatingsystem == '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'])) {
        # Ensure rubygems is installed
        class { 'ruby':
          rubygems_update => false
        }
      }

      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'],
    }

  }
}