Skip to content

Commit dda23a6

Browse files
committed
Add support to extra_config on process_config section
1 parent 31c0df0 commit dda23a6

File tree

2 files changed

+83
-19
lines changed

2 files changed

+83
-19
lines changed

spec/dd-agent_spec.rb

+61
Original file line numberDiff line numberDiff line change
@@ -1001,6 +1001,67 @@ def set_env_var(name, value)
10011001
end
10021002
end
10031003
end
1004+
1005+
context 'with extra_config params set' do
1006+
cached(:chef_run) do
1007+
ChefSpec::SoloRunner.new(
1008+
platform: 'ubuntu',
1009+
version: '14.04'
1010+
) do |node|
1011+
node.name 'chef-nodename' # expected to be used as the hostname in `datadog.yaml`
1012+
node.normal['datadog'] = {
1013+
'api_key' => 'somethingnotnil',
1014+
'agent6' => true,
1015+
'extra_config' => {
1016+
'secret_backend_command' => '/sbin/local-secrets',
1017+
'process_config' => {
1018+
'custom_param' => 'somethingnotnil'
1019+
}
1020+
}
1021+
}
1022+
end.converge described_recipe
1023+
end
1024+
1025+
it 'is created' do
1026+
expect(chef_run).to create_template('/etc/datadog-agent/datadog.yaml')
1027+
end
1028+
1029+
it 'contains expected YAML configuration' do
1030+
expected_yaml = <<-EOF
1031+
api_key: somethingnotnil
1032+
tags: []
1033+
use_dogstatsd: true
1034+
bind_host: localhost
1035+
additional_endpoints: {}
1036+
secret_backend_command: /sbin/local-secrets
1037+
histogram_aggregates:
1038+
- "max"
1039+
- "median"
1040+
- "avg"
1041+
- "count"
1042+
histogram_percentiles:
1043+
- "0.95"
1044+
hostname: "chef-nodename"
1045+
log_file: "/var/log/datadog/agent.log"
1046+
log_level: "INFO"
1047+
dogstatsd_non_local_traffic: false
1048+
apm_config:
1049+
apm_non_local_traffic: false
1050+
process_config:
1051+
enabled: "false"
1052+
blacklist_patterns: []
1053+
scrub_args: true
1054+
custom_sensitive_words: []
1055+
intervals: {}
1056+
process_dd_url: "https://process.datadoghq.com"
1057+
custom_param: somethingnotnil
1058+
EOF
1059+
1060+
expect(chef_run).to(render_file('/etc/datadog-agent/datadog.yaml').with_content { |content|
1061+
expect(YAML.safe_load(content).to_json).to be_json_eql(YAML.safe_load(expected_yaml).to_json)
1062+
})
1063+
end
1064+
end
10041065
end
10051066

10061067
describe 'agent version set' do

templates/default/datadog.yaml.erb

+22-19
Original file line numberDiff line numberDiff line change
@@ -93,22 +93,6 @@ agent_config = @extra_config.merge({
9393

9494
# log agent options
9595
logs_enabled: node['datadog']['enable_logs_agent'],
96-
97-
# process agent options
98-
process_config: {
99-
enabled: process_agent_enabled,
100-
log_file: node['datadog']['process_agent']['log_file'],
101-
intervals: {
102-
container: node['datadog']['process_agent']['container_interval'],
103-
container_realtime: node['datadog']['process_agent']['rtcontainer_interval'],
104-
process: node['datadog']['process_agent']['rtcontainer_interval'],
105-
process_realtime: node['datadog']['process_agent']['rtprocess_interval'],
106-
},
107-
blacklist_patterns: node['datadog']['process_agent']['blacklist'],
108-
scrub_args: node['datadog']['process_agent']['scrub_args'],
109-
custom_sensitive_words: node['datadog']['process_agent']['custom_sensitive_words'],
110-
process_dd_url: node['datadog']['process_agent']['url']
111-
}
11296
})
11397

11498
if node['datadog']['statsd_forward_host']
@@ -142,6 +126,28 @@ if !http_proxy.nil?
142126
agent_config['proxy']['no_proxy'] = no_proxy if !no_proxy.nil?
143127
end
144128

129+
## Process agent options ##
130+
process_config = {
131+
enabled: process_agent_enabled,
132+
log_file: node['datadog']['process_agent']['log_file'],
133+
intervals: {
134+
container: node['datadog']['process_agent']['container_interval'],
135+
container_realtime: node['datadog']['process_agent']['rtcontainer_interval'],
136+
process: node['datadog']['process_agent']['rtcontainer_interval'],
137+
process_realtime: node['datadog']['process_agent']['rtprocess_interval'],
138+
},
139+
blacklist_patterns: node['datadog']['process_agent']['blacklist'],
140+
scrub_args: node['datadog']['process_agent']['scrub_args'],
141+
custom_sensitive_words: node['datadog']['process_agent']['custom_sensitive_words'],
142+
process_dd_url: node['datadog']['process_agent']['url']
143+
}
144+
145+
# Take into account options defined under ['extra_config']['process_config']
146+
process_config = @extra_config['process_config'].merge(process_config) unless @extra_config['process_config'].nil?
147+
agent_config[:process_config] = process_config
148+
agent_config[:process_config][:intervals].reject!{ |k,v| v.nil? }
149+
agent_config[:process_config].reject!{ |k,v| v.nil? }
150+
145151
## Trace agent options ##
146152
apm_config = {
147153
enabled: node['datadog']['enable_trace_agent'],
@@ -156,10 +162,7 @@ apm_config.reject!{ |k,v| v.nil? }
156162
apm_config = @extra_config['apm_config'].merge(apm_config) unless @extra_config['apm_config'].nil?
157163
agent_config[:apm_config] = apm_config
158164

159-
160165
# Remove nil values
161-
agent_config[:process_config][:intervals].reject!{ |k,v| v.nil? }
162-
agent_config[:process_config].reject!{ |k,v| v.nil? }
163166
agent_config.reject!{ |k,v| v.nil? }
164167

165168
-%>

0 commit comments

Comments
 (0)