Skip to content

Commit 54b2270

Browse files
asencialbertvaka
authored andcommitted
Add Network Performance Monitoring support (#584)
Disabled by default, can be enabled by instantializing the datadog_agent::system_probe class (process_enabled needs to be enabled on datadog_agent).
1 parent 47951f0 commit 54b2270

3 files changed

Lines changed: 61 additions & 0 deletions

File tree

manifests/params.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
$dd_user = 'dd-agent'
4141
$dd_group = 'root'
4242
$service_name = 'datadog-agent'
43+
$sysprobe_service_name = 'datadog-agent-sysprobe'
4344
$agent6_log_file = '/var/log/datadog/agent.log'
4445
$package_name = 'datadog-agent'
4546
$permissions_directory = '0755'
@@ -56,6 +57,7 @@
5657
$dd_user = 'dd-agent'
5758
$dd_group = 'root'
5859
$service_name = 'datadog-agent'
60+
$sysprobe_service_name = 'datadog-agent-sysprobe'
5961
$agent6_log_file = '/var/log/datadog/agent.log'
6062
$package_name = 'datadog-agent'
6163
$permissions_directory = '0755'

manifests/system_probe.pp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
include datadog_agent::params
2+
class datadog_agent::system_probe(
3+
Boolean $enabled = false,
4+
Optional[String] $log_file = undef,
5+
Optional[String] $sysprobe_socket = undef,
6+
7+
Boolean $service_enable = true,
8+
String $service_ensure = 'running',
9+
Optional[String] $service_provider = undef,
10+
) inherits datadog_agent::params {
11+
12+
if $::operatingsystem == 'Windows' {
13+
# Datadog does not currently support Windows and macOS platforms for Network Performance Monitoring
14+
fail('Network performance monitoring is only supported on Linux.')
15+
}
16+
17+
if $service_provider {
18+
service { $datadog_agent::params::sysprobe_service_name:
19+
ensure => $service_ensure,
20+
enable => $service_enable,
21+
provider => $service_provider,
22+
hasstatus => false,
23+
pattern => 'dd-agent',
24+
require => Package[$datadog_agent::params::package_name],
25+
}
26+
} else {
27+
service { $datadog_agent::params::sysprobe_service_name:
28+
ensure => $service_ensure,
29+
enable => $service_enable,
30+
hasstatus => false,
31+
pattern => 'dd-agent',
32+
require => Package[$datadog_agent::params::package_name],
33+
}
34+
}
35+
36+
$sysprobe_config = {
37+
'system_probe_config' => {
38+
'enabled' => $enabled,
39+
'sysprobe_socket' => $sysprobe_socket,
40+
'log_file' => $log_file,
41+
}
42+
}
43+
44+
file { '/etc/datadog-agent/system-probe.yaml':
45+
owner => $datadog_agent::params::dd_user,
46+
group => 'dd-agent',
47+
mode => '0640',
48+
content => template('datadog_agent/system_probe.yaml.erb'),
49+
notify => Service[$datadog_agent::params::sysprobe_service_name],
50+
require => File['/etc/datadog-agent'],
51+
}
52+
53+
}

templates/system_probe.yaml.erb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
### MANAGED BY PUPPET
2+
3+
<%
4+
require 'yaml'
5+
%>
6+
<%= @sysprobe_config.to_yaml %>

0 commit comments

Comments
 (0)