Skip to content

Commit 7ca5493

Browse files
authored
add oom kill check (DataDog#653)
1 parent aa624bf commit 7ca5493

3 files changed

Lines changed: 69 additions & 0 deletions

File tree

manifests/integrations/oom_kill.pp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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+
}

manifests/system_probe.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Boolean $enabled = false,
33
Optional[String] $log_file = undef,
44
Optional[String] $sysprobe_socket = undef,
5+
Optional[Boolean] $enable_oom_kill = false,
56

67
Boolean $service_enable = true,
78
String $service_ensure = 'running',
@@ -37,6 +38,7 @@
3738
'enabled' => $enabled,
3839
'sysprobe_socket' => $sysprobe_socket,
3940
'log_file' => $log_file,
41+
'enable_oom_kill' => $enable_oom_kill,
4042
}
4143
}
4244

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
### MANAGED BY PUPPET
2+
3+
# init_config:
4+
5+
# instances:
6+
# # For every instance, you have an `collect_oom_kill` and (optionally)
7+
# # a list of tags.
8+
9+
# - collect_oom_kill: true
10+
# tags:
11+
# - instance:foo
12+
13+
<%
14+
require 'yaml'
15+
%>
16+
17+
<%= {'init_config'=>nil, 'instances'=>@instances}.to_yaml %>

0 commit comments

Comments
 (0)