|
102 | 102 | # $use_dogstatsd |
103 | 103 | # Enables the dogstatsd server |
104 | 104 | # Boolean. Default: true |
| 105 | +# $dogstatsd_socket |
| 106 | +# Specifies the socket file to be used by dogstatsd. Must have use_dogstatsd set |
| 107 | +# String. Default: empty |
105 | 108 | # $dogstatsd_port |
106 | 109 | # Specifies the port to be used by dogstatsd. Must have use_dogstatsd set |
107 | 110 | # String. Default: empty |
|
139 | 142 | # $custom_emitters |
140 | 143 | # Specifies a comma seperated list of non standard emitters to be used |
141 | 144 | # String. Default: empty |
| 145 | +# $agent6_log_file |
| 146 | +# Specifies the log file location for the agent6 |
| 147 | +# String. Default: empty |
142 | 148 | # $collector_log_file |
143 | 149 | # Specifies the log file location for the collector system |
144 | 150 | # String. Default: empty |
|
199 | 205 | $manage_repo = true, |
200 | 206 | $hostname_extraction_regex = nil, |
201 | 207 | $dogstatsd_port = 8125, |
| 208 | + $dogstatsd_socket = '', |
202 | 209 | $statsd_forward_host = '', |
203 | 210 | $statsd_forward_port = '', |
204 | 211 | $statsd_histogram_percentiles = '0.95', |
|
227 | 234 | $dogstatsd_normalize = true, |
228 | 235 | $device_blacklist_re = '', |
229 | 236 | $custom_emitters = '', |
| 237 | + $agent6_log_file = '/var/log/datadog/agent.log', |
230 | 238 | $collector_log_file = '', |
231 | 239 | $forwarder_log_file = '', |
232 | 240 | $dogstatsd_log_file = '', |
|
240 | 248 | $sd_template_dir = '', |
241 | 249 | $sd_jmx_enable = false, |
242 | 250 | $consul_token = '', |
| 251 | + $agent6_enable = $datadog_agent::params::agent6_enable, |
243 | 252 | $conf_dir = $datadog_agent::params::conf_dir, |
| 253 | + $conf6_dir = $datadog_agent::params::conf6_dir, |
244 | 254 | $conf_dir_purge = $datadog_agent::params::conf_dir_purge, |
245 | 255 | $service_name = $datadog_agent::params::service_name, |
246 | 256 | $package_name = $datadog_agent::params::package_name, |
|
306 | 316 | validate_string($statsd_forward_host) |
307 | 317 | validate_string($device_blacklist_re) |
308 | 318 | validate_string($custom_emitters) |
| 319 | + validate_string($agent6_log_file) |
309 | 320 | validate_string($collector_log_file) |
310 | 321 | validate_string($forwarder_log_file) |
311 | 322 | validate_string($dogstatsd_log_file) |
|
320 | 331 | validate_bool($sd_jmx_enable) |
321 | 332 | validate_string($consul_token) |
322 | 333 | validate_bool($apm_enabled) |
| 334 | + validate_bool($agent6_enable) |
323 | 335 | validate_string($apm_env) |
324 | 336 |
|
325 | 337 | if $hiera_tags { |
|
352 | 364 | } |
353 | 365 |
|
354 | 366 | case $::operatingsystem { |
355 | | - 'Ubuntu','Debian' : { include datadog_agent::ubuntu } |
| 367 | + 'Ubuntu','Debian' : { |
| 368 | + if !$agent6_enable { |
| 369 | + include datadog_agent::ubuntu |
| 370 | + } else { |
| 371 | + include datadog_agent::ubuntu::agent6 |
| 372 | + } |
| 373 | + } |
356 | 374 | 'RedHat','CentOS','Fedora','Amazon','Scientific' : { |
357 | | - class { 'datadog_agent::redhat': |
358 | | - manage_repo => $manage_repo, |
| 375 | + if !$agent6_enable { |
| 376 | + class { 'datadog_agent::redhat': |
| 377 | + manage_repo => $manage_repo, |
| 378 | + } |
| 379 | + } else { |
| 380 | + class { 'datadog_agent::redhat::agent6': |
| 381 | + manage_repo => $manage_repo, |
| 382 | + } |
359 | 383 | } |
360 | 384 | } |
361 | 385 | default: { fail("Class[datadog_agent]: Unsupported operatingsystem: ${::operatingsystem}") } |
362 | 386 | } |
363 | 387 |
|
364 | | - file { '/etc/dd-agent': |
| 388 | + # required by reports even in agent5 scenario |
| 389 | + file { '/etc/datadog-agent': |
365 | 390 | ensure => directory, |
366 | 391 | owner => $dd_user, |
367 | 392 | group => $dd_group, |
368 | 393 | mode => '0755', |
369 | 394 | require => Package['datadog-agent'], |
370 | 395 | } |
371 | 396 |
|
372 | | - file { $conf_dir: |
373 | | - ensure => directory, |
374 | | - purge => $conf_dir_purge, |
375 | | - recurse => true, |
376 | | - force => $conf_dir_purge, |
377 | | - owner => $dd_user, |
378 | | - group => $dd_group, |
379 | | - notify => Service['datadog-agent'] |
380 | | - } |
381 | 397 |
|
382 | | - concat {'/etc/dd-agent/datadog.conf': |
383 | | - owner => $datadog_agent::params::dd_user, |
384 | | - group => $datadog_agent::params::dd_group, |
385 | | - mode => '0640', |
386 | | - notify => Service[$datadog_agent::params::service_name], |
387 | | - require => File['/etc/dd-agent'], |
388 | | - } |
| 398 | + if !$agent6_enable { |
| 399 | + file { '/etc/dd-agent': |
| 400 | + ensure => directory, |
| 401 | + owner => $dd_user, |
| 402 | + group => $dd_group, |
| 403 | + mode => '0755', |
| 404 | + require => Package['datadog-agent'], |
| 405 | + } |
389 | 406 |
|
390 | | - concat::fragment{ 'datadog header': |
391 | | - target => '/etc/dd-agent/datadog.conf', |
392 | | - content => template('datadog_agent/datadog_header.conf.erb'), |
393 | | - order => '01', |
394 | | - } |
| 407 | + file { $conf_dir: |
| 408 | + ensure => directory, |
| 409 | + purge => $conf_dir_purge, |
| 410 | + recurse => true, |
| 411 | + force => $conf_dir_purge, |
| 412 | + owner => $dd_user, |
| 413 | + group => $dd_group, |
| 414 | + notify => Service['datadog-agent'] |
| 415 | + } |
395 | 416 |
|
396 | | - concat::fragment{ 'datadog tags': |
397 | | - target => '/etc/dd-agent/datadog.conf', |
398 | | - content => 'tags: ', |
399 | | - order => '02', |
400 | | - } |
| 417 | + concat {'/etc/dd-agent/datadog.conf': |
| 418 | + owner => $datadog_agent::params::dd_user, |
| 419 | + group => $datadog_agent::params::dd_group, |
| 420 | + mode => '0640', |
| 421 | + notify => Service[$datadog_agent::params::service_name], |
| 422 | + require => File['/etc/dd-agent'], |
| 423 | + } |
401 | 424 |
|
402 | | - concat::fragment{ 'datadog footer': |
403 | | - target => '/etc/dd-agent/datadog.conf', |
404 | | - content => template('datadog_agent/datadog_footer.conf.erb'), |
405 | | - order => '05', |
406 | | - } |
| 425 | + concat::fragment{ 'datadog header': |
| 426 | + target => '/etc/dd-agent/datadog.conf', |
| 427 | + content => template('datadog_agent/datadog_header.conf.erb'), |
| 428 | + order => '01', |
| 429 | + } |
| 430 | + |
| 431 | + concat::fragment{ 'datadog tags': |
| 432 | + target => '/etc/dd-agent/datadog.conf', |
| 433 | + content => 'tags: ', |
| 434 | + order => '02', |
| 435 | + } |
| 436 | + |
| 437 | + concat::fragment{ 'datadog footer': |
| 438 | + target => '/etc/dd-agent/datadog.conf', |
| 439 | + content => template('datadog_agent/datadog_footer.conf.erb'), |
| 440 | + order => '05', |
| 441 | + } |
| 442 | + |
| 443 | + if ($extra_template != '') { |
| 444 | + concat::fragment{ 'datadog extra_template footer': |
| 445 | + target => '/etc/dd-agent/datadog.conf', |
| 446 | + content => template($extra_template), |
| 447 | + order => '06', |
| 448 | + } |
| 449 | + $apm_footer_order = '07' |
| 450 | + } else { |
| 451 | + $apm_footer_order = '06' |
| 452 | + } |
407 | 453 |
|
408 | | - if ($extra_template != '') { |
409 | | - concat::fragment{ 'datadog extra_template footer': |
| 454 | + concat::fragment{ 'datadog apm footer': |
410 | 455 | target => '/etc/dd-agent/datadog.conf', |
411 | | - content => template($extra_template), |
412 | | - order => '06', |
| 456 | + content => template('datadog_agent/datadog_apm_footer.conf.erb'), |
| 457 | + order => $apm_footer_order, |
413 | 458 | } |
414 | | - $apm_footer_order = '07' |
415 | 459 | } else { |
416 | | - $apm_footer_order = '06' |
417 | | - } |
418 | 460 |
|
419 | | - concat::fragment{ 'datadog apm footer': |
420 | | - target => '/etc/dd-agent/datadog.conf', |
421 | | - content => template('datadog_agent/datadog_apm_footer.conf.erb'), |
422 | | - order => $apm_footer_order, |
| 461 | + file { $conf6_dir: |
| 462 | + ensure => directory, |
| 463 | + purge => $conf_dir_purge, |
| 464 | + recurse => true, |
| 465 | + force => $conf_dir_purge, |
| 466 | + owner => $dd_user, |
| 467 | + group => $dd_group, |
| 468 | + notify => Service['datadog-agent'] |
| 469 | + } |
| 470 | + |
| 471 | + $agent_config = { |
| 472 | + 'api_key' => $api_key, |
| 473 | + 'dd_url' => $dd_url, |
| 474 | + 'cmd_port' => 5001, |
| 475 | + 'conf_path' => $datadog_agent::params::conf6_dir, |
| 476 | + 'enable_metadata_collection' => $collect_instance_metadata, |
| 477 | + 'dogstatsd_port' => $dogstatsd_port, |
| 478 | + 'dogstatsd_socket' => $dogstatsd_socket, |
| 479 | + 'dogstatsd_non_local_traffic' => $non_local_traffic, |
| 480 | + 'log_file' => $agent6_log_file, |
| 481 | + 'log_level' => $log_level, |
| 482 | + } |
| 483 | + |
| 484 | + file { '/etc/datadog-agent/datadog.yaml': |
| 485 | + owner => 'dd-agent', |
| 486 | + group => 'dd-agent', |
| 487 | + mode => '0640', |
| 488 | + content => template('datadog_agent/datadog6.yaml.erb'), |
| 489 | + notify => Service[$datadog_agent::params::service_name], |
| 490 | + require => File['/etc/datadog-agent'], |
| 491 | + } |
423 | 492 | } |
424 | 493 |
|
425 | 494 |
|
|
0 commit comments