3a3ef6f2e3
This change adds a collectd plugin that gets metrics from the Pacemaker cluster: - cluster's metrics - node's metrics - resource's metrics Most of the metrics are only collected from the node that is the designated controller except pacemaker_resource_local_active and pacemaker_dc_local_active. The plugin also removes the 'pacemaker_resource' plugin by providing the exact same metrics and notifications for the other collectd plugins. Finally the plugin is also installed on the standalone-rabbitmq and standalone-database nodes if they are present. Change-Id: I8b5b987704f69c6a60b13e8ea982f27924f488d1
55 lines
1.6 KiB
Puppet
55 lines
1.6 KiB
Puppet
# Copyright 2016 Mirantis, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
class lma_collector::collectd::pacemaker (
|
|
$resources,
|
|
$notify_resource = undef,
|
|
$hostname = undef,
|
|
) {
|
|
|
|
validate_hash($resources)
|
|
|
|
# Add quotes around the hash keys and values
|
|
$resources_keys = suffix(prefix(keys($resources), '"'), '"')
|
|
$resources_values = suffix(prefix(values($resources), '"'), '"')
|
|
$real_resources = hash(flatten(zip($resources_keys, $resources_values)))
|
|
|
|
if $hostname {
|
|
$_hostname = {'Hostname' => "\"${hostname}\""}
|
|
} else {
|
|
$_hostname = {}
|
|
}
|
|
if $notify_resource {
|
|
$_notify_resource = {'NotifyResource' => "\"${notify_resource}\""}
|
|
} else {
|
|
$_notify_resource = {}
|
|
}
|
|
|
|
lma_collector::collectd::python { 'collectd_pacemaker':
|
|
config => merge({'Resource' => $real_resources}, $_hostname, $_notify_resource)
|
|
}
|
|
|
|
# Remove configuration bits from versions < 1.0
|
|
collectd::plugin { 'target_notification':
|
|
ensure => absent
|
|
}
|
|
collectd::plugin { 'match_regex':
|
|
ensure => absent
|
|
}
|
|
class { 'collectd::plugin::chain':
|
|
ensure => absent
|
|
}
|
|
}
|