openstack-ansible-ops/cluster_metrics/playbook-influx-telegraf.yml
Kevin Carter e786c69b15 Added Cinder storage pools data
This change adds the cinder storage pools data to the influx metric
collection system as a plugin.

Change-Id: I632b53aa09d69c6df28b86988629242a26ab9b50
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-01-27 17:38:28 +00:00

109 lines
3.6 KiB
YAML

---
# Copyright 2016, Rackspace US, 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.
- name: Deploy telegraf
hosts: "all"
gather_facts: true
user: root
tasks:
- name: Add influxdata apt-keys
apt_key:
url: "https://repos.influxdata.com/influxdb.key"
state: "present"
- name: Add influxdata repo
apt_repository:
repo: "deb https://repos.influxdata.com/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
state: "present"
update_cache: yes
- name: Install telegraf
apt:
pkg: "telegraf"
state: "latest"
- name: Create telegraf plugin dir
file:
path: "/opt/telegraf"
state: directory
mode: "0755"
- name: Drop telegraf plugin file(s)
template:
src: "templates/telegraf-plugins/{{ item.value.plugin_name }}"
dest: "/opt/telegraf/{{ item.value.plugin_name }}"
mode: '0755'
with_dict: "{{ command_plugins }}"
when:
- item.value.when_group | bool
- item.value.group == inventory_hostname or
inventory_hostname in item.value.group | default([])
- name: Store my_cnf
slurp:
src: "/root/.my.cnf"
register: _my_cnf
changed_when: false
- name: Copy my.cnf file into telegraf home
copy:
content: "{{ _my_cnf.content | b64decode }}"
dest: "/root/.my.cnf"
mode: "0440"
owner: "telegraf"
group: "telegraf"
- name: Drop telegraf config file
template:
src: templates/telegraf.conf.j2
dest: /etc/telegraf/telegraf.conf
register: telegraf_config
- name: Enable and restart telegraf
service:
name: "telegraf"
enabled: true
state: restarted
when: telegraf_config | changed
- name: Enable and start telegraf
service:
name: "telegraf"
enabled: true
state: started
when: not telegraf_config | changed
vars_files:
- vars.yml
vars:
commands : []
command_plugins:
ironic:
plugin_name: "ironic_nodes.py"
command:
- "python /opt/telegraf/ironic_nodes.py"
group: "{{ groups['utility_all'][0] }}"
when_group: "{{ (groups['ironic_api'] | length) > 0 }}"
vm_quota:
plugin_name: "vm_quota.py"
command:
- "python /opt/telegraf/vm_quota.py"
group: "{{ groups['utility_all'][0] }}"
when_group: "{{ (groups['nova_compute'] | length) > 0 }}"
kvm:
plugin_name: "kvm_virsh.py"
command:
- "python /opt/telegraf/kvm_virsh.py"
group: "{{ groups['nova_compute'] }}"
when_group: "{{ (groups['nova_compute'] | length) > 0 and (nova_virt_type | default('qemu') in ['kvm', 'qemu']) }}"
cinder_pools_usage:
plugin_name: "cinder_pools_usage.py"
command:
- "python /opt/telegraf/cinder_pools_usage.py"
group: "{{ groups['utility_all'][0] }}"
when_group: "{{ (groups['cinder_volumes'] | length) > 0 }}"
influx_telegraf_targets:
- "{{ influxdb_host|default(internal_lb_vip_address) }}:{{ influxdb_port }}"