|
| 1 | +# Class: datadog_agent::integrations::oom_kill |
| 2 | +# |
| 3 | +# This class will install the necessary configuration for the oom_kill integration |
| 4 | +# For it to work you also need to enable the system-probe with enable_oom_kill set to true. |
| 5 | +# |
| 6 | +# Parameters: |
| 7 | +# $instances: |
| 8 | +# Array of hashes for all oom_kill configs and associates tags. See example |
| 9 | +# |
| 10 | +# Sample Usage: |
| 11 | +# |
| 12 | +# class { 'datadog_agent::integrations::oom_kill': |
| 13 | +# instances => [ |
| 14 | +# { |
| 15 | +# 'collect_oom_kill' => true, |
| 16 | +# 'tags' => ['instance:foo'], |
| 17 | +# }, |
| 18 | +# ], |
| 19 | +# } |
| 20 | +# |
| 21 | + |
| 22 | +class datadog_agent::integrations::oom_kill( |
| 23 | + Array $instances = [], |
| 24 | +) inherits datadog_agent::params { |
| 25 | + include datadog_agent |
| 26 | + |
| 27 | + $dst_dir = "${datadog_agent::params::conf_dir}/oom_kill.d" |
| 28 | + file { $legacy_dst: |
| 29 | + ensure => 'absent' |
| 30 | + } |
| 31 | + file { $dst_dir: |
| 32 | + ensure => directory, |
| 33 | + owner => $datadog_agent::params::dd_user, |
| 34 | + group => $datadog_agent::params::dd_group, |
| 35 | + mode => $datadog_agent::params::permissions_directory, |
| 36 | + require => Package[$datadog_agent::params::package_name], |
| 37 | + notify => Service[$datadog_agent::params::service_name] |
| 38 | + } |
| 39 | + $dst = "${dst_dir}/conf.yaml" |
| 40 | + |
| 41 | + file { $dst: |
| 42 | + ensure => file, |
| 43 | + owner => $datadog_agent::params::dd_user, |
| 44 | + group => $datadog_agent::params::dd_group, |
| 45 | + mode => $datadog_agent::params::permissions_protected_file, |
| 46 | + content => template('datadog_agent/agent-conf.d/oom_kill.yaml.erb'), |
| 47 | + require => Package[$datadog_agent::params::package_name], |
| 48 | + notify => Service[$datadog_agent::params::service_name] |
| 49 | + } |
| 50 | +} |
0 commit comments