blob: 0b258119d24c0be46a9638add4d5c48cac9f6934 [file] [log] [blame]
# Class: datadog_agent::integrations::mysql
#
# This class will install the necessary configuration for the mysql integration
#
# Parameters:
# $password
# The mysql password for the datadog user
# $host:
# The host mysql is running on
# $user
# The mysql user for the datadog user
# $sock
# Connect mysql via unix socket
# $tags
# Optional array of tags
# $replication
# replication option
# $galera_cluster
# galera cluster option
# $extra_status_metrics
# extra status metrics
# $extra_innodb_metrics
# extra innodb metrics
# $extra_performance_metrics
# extra performance metrics, query run time, 95th precentile avg
# $schema_size_metrics
# schema size metrics
# $disable_innodb_metrics
# disable innodb metrics, used with older versions of MySQL without innodb engine support.
# Sample Usage:
#
# class { 'datadog_agent::integrations::mysql' :
# host => 'localhost',
# password => 'some_pass',
# user => 'datadog'
# }
# Sample Usage (Instance):
# class { 'datadog_agent::integrations::mysql' :
# instances => [{
# host => 'localhost',
# password => 'mypassword',
# user => 'datadog',
# port => '3306',
# tags => ['instance:mysql1'],
# replication => '0',
# galera_cluster => '0',
# extra_status_metrics => 'true',
# extra_innodb_metrics => 'true',
# extra_performance_metrics => 'true',
# schema_size_metrics => 'true',
# disable_innodb_metrics => 'false',
# }
# }
#
#
class datadog_agent::integrations::mysql(
$password,
$host = 'localhost',
$user = 'datadog',
$port = 3306,
$sock = undef,
$tags = [],
$replication = '0',
$galera_cluster = '0',
$extra_status_metrics = false,
$extra_innodb_metrics = false,
$extra_performance_metrics = false,
$schema_size_metrics = false,
$disable_innodb_metrics = false,
$instances = undef,
) inherits datadog_agent::params {
include datadog_agent
validate_array($tags)
if !$instances and $host {
$_instances = [{
'host' => $host,
'password' => $password,
'user' => $user,
'port' => $port,
'sock' => $sock,
'tags' => $tags,
'replication' => $replication,
'galera_cluster' => $galera_cluster,
'extra_status_metrics' => $extra_status_metrics,
'extra_innodb_metrics' => $extra_innodb_metrics,
'extra_performance_metrics' => $extra_performance_metrics,
'schema_size_metrics' => $schema_size_metrics,
'disable_innodb_metrics' => $disable_innodb_metrics,
}]
} elsif !$instances{
$_instances = []
} else {
$_instances = $instances
}
file { "${datadog_agent::params::conf_dir}/mysql.yaml":
ensure => file,
owner => $datadog_agent::params::dd_user,
group => $datadog_agent::params::dd_group,
mode => '0600',
content => template('datadog_agent/agent-conf.d/mysql.yaml.erb'),
require => Package[$datadog_agent::params::package_name],
notify => Service[$datadog_agent::params::service_name],
}
}