Browse Source

Merge pull request #9 from simonpasquier/add-collectd-support

Add collectd support
tags/2016.12
pasquier-s 8 years ago
parent
commit
51cecf023c
8 changed files with 106 additions and 6 deletions
  1. +14
    -0
      galera/files/collectd_mysql.conf
  2. +9
    -0
      galera/files/collectd_mysql_check.conf
  3. +44
    -0
      galera/files/collectd_mysql_status.conf
  4. +2
    -2
      galera/map.jinja
  5. +29
    -0
      galera/meta/collectd.yml
  6. +3
    -1
      metadata/service/master/cluster.yml
  7. +3
    -1
      metadata/service/slave/cluster.yml
  8. +2
    -2
      metadata/service/support.yml

+ 14
- 0
galera/files/collectd_mysql.conf View File

<LoadPlugin mysql>
Globals false
</LoadPlugin>

<Plugin mysql>
<Database "mysql">
Host "localhost"
Socket "{{ plugin.socket }}"
User "{{ plugin.username }}"
Password "{{ plugin.password }}"
MasterStats false
SlaveStats false
</Database>
</Plugin>

+ 9
- 0
galera/files/collectd_mysql_check.conf View File

Import "collectd_mysql_check"

<Module "collectd_mysql_check">
Host "localhost"
Socket "{{ plugin.socket }}"
Username "{{ plugin.username }}"
Password "{{ plugin.password }}"
</Module>


+ 44
- 0
galera/files/collectd_mysql_status.conf View File

<LoadPlugin dbi>
Globals false
</LoadPlugin>

<Plugin dbi>
<Query "wsrep_ready">
Statement "select replace(lower(VARIABLE_NAME), 'wsrep_', 'cluster.') as metric, replace(replace(VARIABLE_VALUE, 'ON', 1), 'OFF', 0) as value from information_schema.GLOBAL_STATUS where VARIABLE_NAME IN ('wsrep_ready', 'wsrep_connected');"
MinVersion 50000
<Result>
Type "gauge"
InstancesFrom "metric"
ValuesFrom "value"
</Result>
</Query>
<Query "wsrep_cluster_status">
Statement "select replace(replace(lower(VARIABLE_NAME), 'wsrep_', ''), '_', '.') as metric, replace(replace(replace(VARIABLE_VALUE, 'Primary', 1), 'Non-Primary', 2), 'Disconnected', 3) as value from information_schema.GLOBAL_STATUS where VARIABLE_NAME = 'wsrep_cluster_status';"
MinVersion 50000
<Result>
Type "gauge"
InstancesFrom "metric"
ValuesFrom "value"
</Result>
</Query>
<Query "wsrep_cluster">
Statement "select replace(replace(lower(VARIABLE_NAME), 'wsrep_', 'cluster.'), 'cluster_size', 'size') as metric, VARIABLE_VALUE as value from information_schema.GLOBAL_STATUS where VARIABLE_NAME IN ('wsrep_cluster_size', 'wsrep_replicated', 'wsrep_replicated_bytes', 'wsrep_received_bytes', 'wsrep_received', 'wsrep_local_commits', 'wsrep_local_cert_failures', 'wsrep_local_send_queue', 'Slow_queries');"
MinVersion 50000
<Result>
Type "gauge"
InstancesFrom "metric"
ValuesFrom "value"
</Result>
</Query>
<Database "mysql_status">
Driver "mysql"
DriverOption "mysql_unix_socket" "{{ plugin.socket }}"
DriverOption "username" "{{ plugin.username }}"
DriverOption "password" "{{ plugin.password }}"
DriverOption "dbname" "mysql"
SelectDB "mysql"
Query "wsrep_ready"
Query "wsrep_cluster_status"
Query "wsrep_cluster"
</Database>
</Plugin>

+ 2
- 2
galera/map.jinja View File



{%- set master = salt['grains.filter_by']({ {%- set master = salt['grains.filter_by']({
'Debian': { 'Debian': {
'pkgs': ['mysql-server-wsrep-5.6', 'galera-3', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat'],
'pkgs': ['mysql-server-wsrep-5.6', 'galera-3', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat', 'libdbd-mysql', 'python-pymysql'],
'service': 'mysql', 'service': 'mysql',
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', 'wsrep_provider': '/usr/lib/galera/libgalera_smm.so',
'log_file': '/var/log/mysql.log', 'log_file': '/var/log/mysql.log',


{%- set slave = salt['grains.filter_by']({ {%- set slave = salt['grains.filter_by']({
'Debian': { 'Debian': {
'pkgs': ['mysql-server-wsrep', 'galera', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat'],
'pkgs': ['mysql-server-wsrep', 'galera', 'rsync', 'python-mysqldb', 'libmysqlclient18', 'psmisc', 'netcat', 'percona-xtrabackup', 'socat', 'libdbd-mysql', 'python-pymysql'],
'service': 'mysql', 'service': 'mysql',
'wsrep_provider': '/usr/lib/galera/libgalera_smm.so', 'wsrep_provider': '/usr/lib/galera/libgalera_smm.so',
'log_file': '/var/log/mysql.log', 'log_file': '/var/log/mysql.log',

+ 29
- 0
galera/meta/collectd.yml View File

{%- if pillar.galera is defined %}
{%- if pillar.galera.master is defined %}
{%- from "galera/map.jinja" import master with context %}
{%- set server = master %}
{%- elif pillar.galera.slave is defined %}
{%- from "galera/map.jinja" import slave with context %}
{%- set server = slave %}
{%- endif %}
{%- endif %}

{%- if server is defined %}
local_plugin:
mysql:
template: galera/files/collectd_mysql.conf
socket: {{ server.socket }}
password: {{ server.admin.password }}
username: {{ server.admin.user }}
mysql_status:
template: galera/files/collectd_mysql_status.conf
socket: {{ server.socket }}
password: {{ server.admin.password }}
username: {{ server.admin.user }}
mysql_check:
plugin: python
template: galera/files/collectd_mysql_check.conf
socket: {{ server.socket }}
password: {{ server.admin.password }}
username: {{ server.admin.user }}
{%- endif %}

+ 3
- 1
metadata/service/master/cluster.yml View File

applications: applications:
- galera - galera
classes:
- service.galera.support
parameters: parameters:
_param: _param:
galera_server_cluster_name: galeracluster galera_server_cluster_name: galeracluster
- name: haproxy - name: haproxy
host: '%' host: '%'
- name: haproxy - name: haproxy
host: ${_param:cluster_local_address}
host: ${_param:cluster_local_address}

+ 3
- 1
metadata/service/slave/cluster.yml View File

applications: applications:
- galera - galera
classes:
- service.galera.support
parameters: parameters:
_param: _param:
galera_server_cluster_name: galeracluster galera_server_cluster_name: galeracluster
- name: haproxy - name: haproxy
host: '%' host: '%'
- name: haproxy - name: haproxy
host: ${_param:cluster_local_address}
host: ${_param:cluster_local_address}

+ 2
- 2
metadata/service/support.yml View File

galera: galera:
_support: _support:
collectd: collectd:
enabled: false
enabled: true
heka: heka:
enabled: false enabled: false
sensu: sensu:
sphinx: sphinx:
enabled: true enabled: true
config: config:
enabled: true
enabled: true

Loading…
Cancel
Save