Puppet Class: datadog_agent::integrations::mongo

Inherits:
datadog_agent::params
Defined in:
manifests/integrations/mongo.pp

Overview

Class: datadog_agent::integrations::mongo

This class will install the necessary configuration for the mongo integration

NOTE: In newer versions of the Datadog Agent, the ssl parameters will be deprecated in favor the tls variants

Parameters:

$additional_metrics
    Optional array of additional metrics
$database
    Optionally specify database to query. Defaults to 'admin'
$host:
    The host mongo is running on. Defaults to '127.0.0.1'
$password
    Optionally specify password for connection
$port
    The port mongo is running on. Defaults to 27017
$ssl
    Optionally enable SSL for connection
$ssl_ca_certs
    Optionally specify path to SSL Certificate Authority certificates
$ssl_cert_reqs
    Optionally require SSL client certificate for connection
$ssl_certfile
    Optionally specify path to SSL certificate for connection
$ssl_keyfile
    Optionally specify path to SSL private key for connection
$tls
    Optionally enable TLS for connection
$tls_ca_file
    Optionally specify path to SSL/TLS Certificate Authority certificates
$tls_allow_invalid_certificates
    Optionally require SSL/TLS client certificate for connection
$tls_certificate_key_file
    Optionally specify path to combined SSL/TLS key and certificate for connection
$tags
    Optional array of tags
$username
    Optionally specify username for connection

Sample Usage (Older Agent Versions):

class { 'datadog_agent::integrations::mongo' :
  servers => [
    {
      'additional_metrics' => ['top'],
      'database'           => 'database_name',
      'host'               => 'localhost',
      'password'           => 'mongo_password',
      'port'               => '27017',
      'ssl'                => true,
      'ssl_ca_certs'       => '/path/to/ca.pem',
      'ssl_cert_reqs'      => 'CERT_REQUIRED',
      'ssl_certfile'       => '/path/to/client.pem',
      'ssl_keyfile'        => '/path/to/key.pem',
      'tags'               => ['optional_tag1', 'optional_tag2'],
      'username'           => 'mongo_username',
    },
    {
      'host'               => 'localhost',
      'port'               => '27018',
      'tags'               => [],
      'additional_metrics' => [],
      'collections'        => [],
    },
  ]
}

Sample Usage (Newer Agent Versions):

class { 'datadog_agent::integrations::mongo' :
  servers => [
    {
      'additional_metrics' => ['top'],
      'database'           => 'database_name',
      'host'               => 'localhost',
      'password'           => 'mongo_password',
      'port'               => '27017',
      'tls'                => true,
      'tls_ca_file'       => '/path/to/ca.pem',
      'tls_allow_invalid_certificates'      => false,
      'tls_certificate_key_file'       => '/path/to/combined.pem',
      'tags'               => ['optional_tag1', 'optional_tag2'],
      'username'           => 'mongo_username',
    },
    {
      'host'               => 'localhost',
      'port'               => '27018',
      'tags'               => [],
      'additional_metrics' => [],
      'collections'        => [],
    },
  ]
}

Parameters:

  • servers (Array) (defaults to: [{'host' => 'localhost', 'port' => '27017'}])


96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'manifests/integrations/mongo.pp', line 96

class datadog_agent::integrations::mongo(
  Array $servers = [{'host' => 'localhost', 'port' => '27017'}]
) inherits datadog_agent::params {
  require ::datadog_agent

  $legacy_dst = "${datadog_agent::params::legacy_conf_dir}/mongo.yaml"
  if $::datadog_agent::_agent_major_version > 5 {
    $dst_dir = "${datadog_agent::params::conf_dir}/mongo.d"
    file { $legacy_dst:
      ensure => 'absent'
    }

    file { $dst_dir:
      ensure  => directory,
      owner   => $datadog_agent::params::dd_user,
      group   => $datadog_agent::params::dd_group,
      mode    => $datadog_agent::params::permissions_directory,
      require => Package[$datadog_agent::params::package_name],
      notify  => Service[$datadog_agent::params::service_name]
    }
    $dst = "${dst_dir}/conf.yaml"
  } else {
    $dst = $legacy_dst
  }

  file { $dst:
    ensure  => file,
    owner   => $datadog_agent::params::dd_user,
    group   => $datadog_agent::params::dd_group,
    mode    => $datadog_agent::params::permissions_protected_file,
    content => template('datadog_agent/agent-conf.d/mongo.yaml.erb'),
    require => Package[$datadog_agent::params::package_name],
    notify  => Service[$datadog_agent::params::service_name]
  }
}