|
17 | 17 | # limitations under the License.
|
18 | 18 | #
|
19 | 19 |
|
| 20 | +is_windows = platform_family?('windows') |
| 21 | + |
20 | 22 | # Set the correct agent startup action
|
21 |
| -sysprobe_enabled = node['datadog']['system_probe']['enabled'] |
| 23 | +sysprobe_enabled = node['datadog']['system_probe']['enabled'] || node['datadog']['system_probe']['network_enabled'] |
22 | 24 | sysprobe_agent_start = sysprobe_enabled ? :start : :stop
|
23 | 25 |
|
24 | 26 | #
|
25 | 27 | # Configures system-probe agent
|
26 |
| -system_probe_config_file = '/etc/datadog-agent/system-probe.yaml' |
| 28 | +system_probe_config_file = |
| 29 | + if is_windows |
| 30 | + 'C:/ProgramData/Datadog/system-probe.yaml' |
| 31 | + else |
| 32 | + '/etc/datadog-agent/system-probe.yaml' |
| 33 | + end |
| 34 | + |
27 | 35 | system_probe_config_file_exists = ::File.exist?(system_probe_config_file)
|
28 | 36 |
|
29 | 37 | template system_probe_config_file do
|
|
35 | 43 | end
|
36 | 44 | end
|
37 | 45 |
|
| 46 | + if node['datadog']['system_probe']['network_enabled'] |
| 47 | + # if network monitoring need to be enabled, enable it in the config yaml file. |
| 48 | + extra_config['network_enabled'] = true |
| 49 | + end |
| 50 | + |
38 | 51 | source 'system_probe.yaml.erb'
|
39 | 52 | variables(
|
40 |
| - enabled: node['datadog']['system_probe']['enabled'], |
| 53 | + enabled: sysprobe_enabled, |
41 | 54 | sysprobe_socket: node['datadog']['system_probe']['sysprobe_socket'],
|
42 | 55 | debug_port: node['datadog']['system_probe']['debug_port'],
|
43 | 56 | bpf_debug: node['datadog']['system_probe']['bpf_debug'],
|
44 | 57 | enable_conntrack: node['datadog']['system_probe']['enable_conntrack'],
|
45 | 58 | extra_config: extra_config
|
46 | 59 | )
|
47 |
| - owner 'root' |
48 |
| - group 'dd-agent' |
49 |
| - mode '640' |
50 |
| - notifies :restart, 'service[datadog-agent-sysprobe]', :delayed if node['datadog']['system_probe']['enabled'] |
| 60 | + |
| 61 | + if is_windows |
| 62 | + owner 'Administrators' |
| 63 | + rights :full_control, 'Administrators' |
| 64 | + inherits false |
| 65 | + else |
| 66 | + owner 'root' |
| 67 | + group 'dd-agent' |
| 68 | + mode '640' |
| 69 | + end |
| 70 | + |
| 71 | + notifies :restart, 'service[datadog-agent-sysprobe]', :delayed if sysprobe_enabled |
51 | 72 | # since process-agent collects network info through system-probe, enabling system-probe should also restart process-agent
|
52 |
| - notifies :restart, 'service[datadog-agent]', :delayed if node['datadog']['system_probe']['enabled'] |
| 73 | + notifies :restart, 'service[datadog-agent]', :delayed if sysprobe_enabled |
53 | 74 |
|
54 | 75 | # System probe is not enabled and the file doesn't exists, don't create it
|
55 | 76 | not_if { !sysprobe_enabled && !system_probe_config_file_exists }
|
|
58 | 79 | # Common configuration
|
59 | 80 | service_provider = Chef::Datadog.service_provider(node)
|
60 | 81 |
|
| 82 | +service_name = is_windows ? 'datadog-system-probe' : 'datadog-agent-sysprobe' |
| 83 | + |
61 | 84 | service 'datadog-agent-sysprobe' do
|
| 85 | + service_name service_name |
62 | 86 | action [sysprobe_agent_start]
|
63 | 87 | provider service_provider unless service_provider.nil?
|
| 88 | + if is_windows |
| 89 | + supports :restart => true, :start => true, :stop => true |
| 90 | + restart_command "powershell restart-service #{service_name} -Force" |
| 91 | + stop_command "powershell stop-service #{service_name} -Force" |
| 92 | + else |
| 93 | + supports :restart => true, :status => true, :start => true, :stop => true |
| 94 | + end |
64 | 95 | supports :restart => true, :status => true, :start => true, :stop => true
|
65 |
| - subscribes :restart, "template[#{system_probe_config_file}]", :delayed if node['datadog']['system_probe']['enabled'] |
| 96 | + subscribes :restart, "template[#{system_probe_config_file}]", :delayed if sysprobe_enabled |
66 | 97 | end
|
0 commit comments