diff --git a/ansible/install/roles/collectd-openstack/defaults/main.yml b/ansible/install/roles/collectd-openstack/defaults/main.yml new file mode 100644 index 000000000..34136b310 --- /dev/null +++ b/ansible/install/roles/collectd-openstack/defaults/main.yml @@ -0,0 +1,73 @@ +######################################## +# Collectd Configuration +######################################## +# Install collectd from EPEL +collectd_from_epel: true +# Interval in seconds +collectd_interval: 10 +# Run collectd on specific openstack nodes: +collectd_undercloud: true +collectd_controller: true +collectd_blockstorage: true +collectd_objectstorage: true +collectd_cephstorage: true +collectd_compute: false + +# Collect plugins configuration: +######################## +# Apache plugin +######################## +# Undercloud +apache_undercloud_collectd_plugin: false +apache_undercloud_mod_status_port: 5001 +# Overcloud Controller +apache_controller_collectd_plugin: false +apache_controller_mod_status_port: 5001 + +######################## +# Ceph plugin +######################## +# Overcloud Controller +ceph_controller_collectd_plugin: false +ceph_storage_collectd_plugin: false + +######################## +# Gnocchi backlog plugin +######################## +# This should only be enabled on a single controller when monitoring Gnocchi for +# performance/scale. This plugin does create a token each interval and adds load +# to Gnocchi-api each time it polls for measurements and thus your cloud will pay +# a monitoring "tax" by enabling this plugin. +gnocchi_status_python_plugin: false +gnocchi_status_interval: 30 + +######################## +# Keystone token count via dbi plugin +######################## +keystone_undercloud_collectd_plugin: false +keystone_overcloud_collectd_plugin: false + +######################## +# Rabbitmq plugin +######################## +rabbitmq_undercloud_collectd_plugin: false +rabbitmq_undercloud_collectd_interval: 10 +rabbitmq_controller_collectd_plugin: false +rabbitmq_controller_collectd_interval: 10 + +# Queues to monitor message count on Undercloud +undercloud_monitored_queues: + - "metering.sample" + - "event.sample" + +# Queues to monitor message count on Controllers +controller_monitored_queues: + - "metering.sample" + - "event.sample" + +######################## +# tail plugin +######################## +# Determines if WARN/INFO messages are also counted +regex_warn: false +regex_info: false diff --git a/ansible/install/roles/epel/defaults/main.yml b/ansible/install/roles/epel/defaults/main.yml new file mode 100644 index 000000000..8a2481466 --- /dev/null +++ b/ansible/install/roles/epel/defaults/main.yml @@ -0,0 +1,2 @@ +# epel7 rpm for collectd packages +epel7_rpm: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm diff --git a/ansible/install/roles/epel/tasks/main.yml b/ansible/install/roles/epel/tasks/main.yml index 2c5eaee73..009b45f43 100644 --- a/ansible/install/roles/epel/tasks/main.yml +++ b/ansible/install/roles/epel/tasks/main.yml @@ -7,12 +7,23 @@ yum: name=epel-release state=absent become: true +# The fedoraproject CDN has problems somtimes, this will keep trying +# for up to 10 minutes before failing. - name: Import EPEL GPG Key rpm_key: key=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7 state=present become: true + register: import_result + until: import_result|success + retries: 10 + delay: 60 +# Same as above but with the Centos CDN - name: Check for EPEL repo yum: "name={{ epel7_rpm }} state=present" become: true + register: install_result + until: install_result|success + retries: 10 + delay: 60 notify: remove_epel diff --git a/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml b/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml index cfa2b6066..36c856591 100644 --- a/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml +++ b/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml @@ -6,7 +6,15 @@ roles: - browbeat/pre-install-setup - browbeat/oooq-metadata - - browbeat/collectd-undercloud + +- name: Setup Undercloud CollectD + hosts: undercloud + vars: + config_type: "{{group_names[0]}}" + roles: + - browbeat/common + - browbeat/epel + - browbeat/collectd-openstack - include: baremetal-quickstart-extras.yml @@ -29,10 +37,21 @@ roles: - browbeat/no-sshd-dns +- name: Setup Overcloud CollectD + hosts: overcloud + vars: + config_type: "{{group_names[0]}}" + graphite_host: "{{graphite_host_template}}" + graphite_password: "{{graphite_password_template}}" + graphite_prefix: "{{graphite_prefix_template}}" + roles: + - browbeat/common + - browbeat/epel + - browbeat/collectd-openstack + - name: Run Browbeat hosts: undercloud roles: - - browbeat/collectd - browbeat/bug-check - browbeat/grafana-dashboard-setup - browbeat/browbeat-run diff --git a/ci-scripts/tripleo/microbrow.sh b/ci-scripts/tripleo/microbrow.sh index 1aebae2ec..9f9852a35 100755 --- a/ci-scripts/tripleo/microbrow.sh +++ b/ci-scripts/tripleo/microbrow.sh @@ -26,15 +26,15 @@ export PLAYBOOK=baremetal-virt-undercloud-tripleo-browbeat.yml export VARS="elastic_enabled_template=true \ --extra-vars grafana_enabled_template=false \ --extra-vars elastic_host_template=$ELASTIC_HOST \ ---extra-vars graphite_host_template=$GRAPH_HOST \ +--extra-vars graphite_host=$GRAPH_HOST \ --extra-vars statsd_host=$GRAPH_HOST \ --extra-vars statsd_enabled=True \ ---extra-vars grafana_host_template=$GRAPH_HOST \ ---extra-vars grafana_username_template=$GRAFANA_USER \ ---extra-vars grafana_password_template=$GRAFANA_PASS \ +--extra-vars grafana_host=$GRAPH_HOST \ +--extra-vars grafana_username=$GRAFANA_USER \ +--extra-vars grafana_password=$GRAFANA_PASS \ --extra-vars browbeat_cloud_name=$CLOUD_NAME \ --extra-vars browbeat_config_file=$BENCHMARK \ ---extra-vars graphite_prefix_template=$CLOUD_NAME" +--extra-vars graphite_prefix=$CLOUD_NAME" #For Pipeline builds we need to get the pipeline image #we check that the pipeline image var is set and then