From 04ffee727646a844a2b412f7fcfff863487801f0 Mon Sep 17 00:00:00 2001 From: akrzos Date: Fri, 29 Jul 2016 13:54:28 -0400 Subject: [PATCH] Adjust ceilometer polling interval playbook Change-Id: If615c7b5d158475769fa3ec01ada64e8cc41d56b --- ansible/browbeat/adjustment-ceilometer.yml | 19 ++-- .../ceilometer-interval/handlers/main.yml | 24 +++++ .../roles/ceilometer-interval/tasks/main.yml | 19 ++++ .../templates/pipeline.yaml.j2 | 92 +++++++++++++++++++ 4 files changed, 147 insertions(+), 7 deletions(-) create mode 100644 ansible/browbeat/roles/ceilometer-interval/handlers/main.yml create mode 100644 ansible/browbeat/roles/ceilometer-interval/tasks/main.yml create mode 100644 ansible/browbeat/roles/ceilometer-interval/templates/pipeline.yaml.j2 diff --git a/ansible/browbeat/adjustment-ceilometer.yml b/ansible/browbeat/adjustment-ceilometer.yml index 44a2baabb..d4406457e 100644 --- a/ansible/browbeat/adjustment-ceilometer.yml +++ b/ansible/browbeat/adjustment-ceilometer.yml @@ -1,17 +1,22 @@ --- # -# Playbook to change token type from uuid to fernet and back for keystone. +# Playbook to apply changes to ceilometer. # -# Examples: +# Examples (backend): # ansible-playbook -i hosts browbeat/adjustment-ceilometer.yml -e "ceilometer_backend=database" # ansible-playbook -i hosts browbeat/adjustment-ceilometer.yml -e "ceilometer_backend=gnocchi" # +# Examples (interval): +# ansible-playbook -i hosts browbeat/adjustment-ceilometer.yml -e "ceilometer_interval=60" +# ansible-playbook -i hosts browbeat/adjustment-ceilometer.yml -e "ceilometer_interval=600" +# - hosts: controller remote_user: heat-admin - pre_tasks: - - name: Check for variable (ceilometer_backend) - fail: msg="ceilometer_backend not defined" - when: ceilometer_backend is undefined roles: - - ceilometer-backend + - { role: ceilometer-backend, when: ceilometer_backend is defined } + +- hosts: controller,compute + remote_user: heat-admin + roles: + - { role: ceilometer-interval, when: ceilometer_interval is defined } diff --git a/ansible/browbeat/roles/ceilometer-interval/handlers/main.yml b/ansible/browbeat/roles/ceilometer-interval/handlers/main.yml new file mode 100644 index 000000000..932429fe6 --- /dev/null +++ b/ansible/browbeat/roles/ceilometer-interval/handlers/main.yml @@ -0,0 +1,24 @@ +--- +# +# Ceilometer Interval handlers +# + +- name: pacemaker unmanage openstack-ceilometer-central + become: true + command: pcs resource unmanage openstack-ceilometer-central + when: inventory_hostname in groups['controller'] + +- name: restart openstack-ceilometer-central + become: true + service: name=openstack-ceilometer-central state=restarted + when: inventory_hostname in groups['controller'] + +- name: pacemaker manage openstack-ceilometer-central + become: true + command: pcs resource manage openstack-ceilometer-central + when: inventory_hostname in groups['controller'] + +- name: restart openstack-ceilometer-compute + become: true + service: name=openstack-ceilometer-compute state=restarted + when: inventory_hostname in groups['compute'] diff --git a/ansible/browbeat/roles/ceilometer-interval/tasks/main.yml b/ansible/browbeat/roles/ceilometer-interval/tasks/main.yml new file mode 100644 index 000000000..c13296a59 --- /dev/null +++ b/ansible/browbeat/roles/ceilometer-interval/tasks/main.yml @@ -0,0 +1,19 @@ +--- +# +# Ceilometer interval tasks for Browbeat +# + +- name: Deploy pipeline.yaml files + become: true + template: + src: pipeline.yaml.j2 + dest: /etc/ceilometer/pipeline.yaml + owner: root + group: ceilometer + mode: 0640 + backup: true + notify: + - pacemaker unmanage openstack-ceilometer-central + - restart openstack-ceilometer-central + - pacemaker manage openstack-ceilometer-central + - restart openstack-ceilometer-compute diff --git a/ansible/browbeat/roles/ceilometer-interval/templates/pipeline.yaml.j2 b/ansible/browbeat/roles/ceilometer-interval/templates/pipeline.yaml.j2 new file mode 100644 index 000000000..c4e53de10 --- /dev/null +++ b/ansible/browbeat/roles/ceilometer-interval/templates/pipeline.yaml.j2 @@ -0,0 +1,92 @@ +--- +sources: + - name: meter_source + interval: {{ceilometer_interval}} + meters: + - "*" + sinks: + - meter_sink + - name: cpu_source + interval: {{ceilometer_interval}} + meters: + - "cpu" + sinks: + - cpu_sink + - cpu_delta_sink + - name: disk_source + interval: {{ceilometer_interval}} + meters: + - "disk.read.bytes" + - "disk.read.requests" + - "disk.write.bytes" + - "disk.write.requests" + - "disk.device.read.bytes" + - "disk.device.read.requests" + - "disk.device.write.bytes" + - "disk.device.write.requests" + sinks: + - disk_sink + - name: network_source + interval: {{ceilometer_interval}} + meters: + - "network.incoming.bytes" + - "network.incoming.packets" + - "network.outgoing.bytes" + - "network.outgoing.packets" + sinks: + - network_sink +sinks: + - name: meter_sink + transformers: + publishers: + - notifier:// + - name: cpu_sink + transformers: + - name: "rate_of_change" + parameters: + target: + name: "cpu_util" + unit: "%" + type: "gauge" + scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" + publishers: + - notifier:// + - name: cpu_delta_sink + transformers: + - name: "delta" + parameters: + target: + name: "cpu.delta" + growth_only: True + publishers: + - notifier:// + - name: disk_sink + transformers: + - name: "rate_of_change" + parameters: + source: + map_from: + name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)" + unit: "(B|request)" + target: + map_to: + name: "\\1.\\2.\\3.rate" + unit: "\\1/s" + type: "gauge" + publishers: + - notifier:// + - name: network_sink + transformers: + - name: "rate_of_change" + parameters: + source: + map_from: + name: "network\\.(incoming|outgoing)\\.(bytes|packets)" + unit: "(B|packet)" + target: + map_to: + name: "network.\\1.\\2.rate" + unit: "\\1/s" + type: "gauge" + publishers: + - notifier://