diff options
| author | Jeffrey Zhang <zhang.lei.fly@gmail.com> | 2016-09-29 01:14:55 +0800 |
|---|---|---|
| committer | Jeffrey Zhang <jeffrey.zhang@99cloud.net> | 2016-10-09 03:04:07 +0000 |
| commit | 18fa72c901434c023ab68754a2e68d726484f608 (patch) | |
| tree | 4a81a668b0ed43d6f94c320ca9266ecec2b62fa6 | |
| parent | 7fa1a08fd2055eec5766e4539fe9237604959490 (diff) | |
| download | kolla-18fa72c901434c023ab68754a2e68d726484f608.tar.gz kolla-18fa72c901434c023ab68754a2e68d726484f608.zip | |
integrate gnocchi with ceilometer
Closes-Bug: #1626364
Change-Id: I9d586b950b7099a9b160f7b32c9ff00b189a0287
| -rw-r--r-- | ansible/group_vars/all.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/ceilometer/defaults/main.yml | 7 | ||||
| -rw-r--r-- | ansible/roles/ceilometer/tasks/bootstrap.yml | 3 | ||||
| -rw-r--r-- | ansible/roles/ceilometer/tasks/bootstrap_service.yml | 1 | ||||
| -rw-r--r-- | ansible/roles/ceilometer/templates/ceilometer.conf.j2 | 20 | ||||
| -rw-r--r-- | docker/ceilometer/ceilometer-api/extend_start.sh | 11 | ||||
| -rw-r--r-- | docker/ceilometer/ceilometer-base/Dockerfile.j2 | 6 | ||||
| -rw-r--r-- | etc/kolla/globals.yml | 2 |
8 files changed, 35 insertions, 17 deletions
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 73e11047c..9085a74ed 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -344,7 +344,7 @@ glance_backend_ceph: "{{ enable_ceph }}" ####################### # Ceilometer options ####################### -# Valid options are [ mongodb, mysql ] +# Valid options are [ mongodb, mysql, gnocchi ] ceilometer_database_type: "mongodb" diff --git a/ansible/roles/ceilometer/defaults/main.yml b/ansible/roles/ceilometer/defaults/main.yml index fc30fc8de..b914e62d9 100644 --- a/ansible/roles/ceilometer/defaults/main.yml +++ b/ansible/roles/ceilometer/defaults/main.yml @@ -7,10 +7,9 @@ project_name: "ceilometer" #################### ceilometer_database_name: "ceilometer" ceilometer_database_user: "ceilometer" -ceilometer_database_address_mappings: - mongodb: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mongodb_port }}{% if not loop.last %},{% endif %}{% endfor %}" - mysql: "{{ kolla_internal_fqdn }}:{{ database_port }}" -ceilometer_database_address: "{{ ceilometer_database_address_mappings[ceilometer_database_type] }}" + +ceilometer_database_mongodb_address: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mongodb_port }}{% if not loop.last %},{% endif %}{% endfor %}" +ceilometer_database_mysql_address: "{{ kolla_internal_fqdn }}:{{ database_port }}" #################### diff --git a/ansible/roles/ceilometer/tasks/bootstrap.yml b/ansible/roles/ceilometer/tasks/bootstrap.yml index e6780394f..0e6f77fc2 100644 --- a/ansible/roles/ceilometer/tasks/bootstrap.yml +++ b/ansible/roles/ceilometer/tasks/bootstrap.yml @@ -49,6 +49,3 @@ - ceilometer_database_type == "mysql" - include: bootstrap_service.yml - when: - - ceilometer_database_type == "mysql" - - database.created diff --git a/ansible/roles/ceilometer/tasks/bootstrap_service.yml b/ansible/roles/ceilometer/tasks/bootstrap_service.yml index 904fa15ba..487b7999f 100644 --- a/ansible/roles/ceilometer/tasks/bootstrap_service.yml +++ b/ansible/roles/ceilometer/tasks/bootstrap_service.yml @@ -7,6 +7,7 @@ environment: KOLLA_BOOTSTRAP: KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" + CEILOMETER_DATABASE_TYPE: "{{ ceilometer_database_type }}" image: "{{ ceilometer_api_image_full }}" labels: BOOTSTRAP: diff --git a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 index cb27a26f8..2bffb57e4 100644 --- a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 +++ b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 @@ -5,6 +5,11 @@ log_dir = /var/log/kolla/ceilometer transport_url = rabbit://{% for host in groups['rabbitmq'] %}{{ rabbitmq_user }}:{{ rabbitmq_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ rabbitmq_port }}{% if not loop.last %},{% endif %}{% endfor %} +{% if ceilometer_database_type == 'gnocchi' %} +meter_dispatchers = gnocchi +event_dispatchers = gnocchi +{% endif %} + [api] port = {{ ceilometer_api_port }} host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }} @@ -13,11 +18,11 @@ host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr [database] {% if ceilometer_database_type == "mongodb" %} -event_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} -metering_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} +event_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mongodb_address }}/{{ ceilometer_database_name }} +metering_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mongodb_address }}/{{ ceilometer_database_name }} {% elif ceilometer_database_type == "mysql" %} -event_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} -metering_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} +event_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mysql_address }}/{{ ceilometer_database_name }} +metering_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mysql_address }}/{{ ceilometer_database_name }} {% endif %} [keystone_authtoken] @@ -43,3 +48,10 @@ project_name = service project_domain_id = default user_domain_id = default auth_type = password + +{% if ceilometer_database_type == 'gnocchi' %} +[dispatcher_gnocchi] +filter_service_activity = False +url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ gnocchi_api_port }} +archive_policy = low +{% endif %} diff --git a/docker/ceilometer/ceilometer-api/extend_start.sh b/docker/ceilometer/ceilometer-api/extend_start.sh index 7918a8605..1780742d0 100644 --- a/docker/ceilometer/ceilometer-api/extend_start.sh +++ b/docker/ceilometer/ceilometer-api/extend_start.sh @@ -3,7 +3,16 @@ # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases # of the KOLLA_BOOTSTRAP variable being set, including empty. if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then - sudo -H -u ceilometer ceilometer-upgrade --skip-gnocchi-resource-types + if [[ "${CEILOMETER_DATABASE_TYPE}" == "mysql" ]]; then + sudo -H -u ceilometer ceilometer-upgrade --skip-gnocchi-resource-types + elif [[ "${CEILOMETER_DATABASE_TYPE}" == "gnocchi" ]]; then + sudo -H -u ceilometer ceilometer-upgrade --skip-metering-database --skip-event-database + elif [[ "${CEILOMETER_DATABASE_TYPE}" == "mongodb" ]]; then + echo "Ceilometer doesn't need to initialize a database when MongoDB is configured as the database backend." + else + echo "Unsupported database type: ${CEILOMETER_DATABASE_TYPE}" + exit 1 + fi sudo chown -R ceilometer: /var/lib/ceilometer/ exit 0 fi diff --git a/docker/ceilometer/ceilometer-base/Dockerfile.j2 b/docker/ceilometer/ceilometer-base/Dockerfile.j2 index bc39a8fcf..861ea018d 100644 --- a/docker/ceilometer/ceilometer-base/Dockerfile.j2 +++ b/docker/ceilometer/ceilometer-base/Dockerfile.j2 @@ -26,10 +26,10 @@ MAINTAINER {{ maintainer }} ADD ceilometer-base-archive /ceilometer-base-source RUN ln -s ceilometer-base-source/* ceilometer \ && useradd --user-group ceilometer \ - && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /ceilometer pymongo \ - && mkdir -p /etc/ceilometer /var/log/ceilometer /home/ceilometer \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /ceilometer[gnocchi,mongo,mysql] \ + && mkdir -p /etc/ceilometer /var/lib/ceilometer /home/ceilometer \ && cp -r /ceilometer/etc/ceilometer/* /etc/ceilometer/ \ - && chown -R ceilometer: /etc/ceilometer /var/log/ceilometer /home/ceilometer \ + && chown -R ceilometer: /etc/ceilometer /var/lib/ceilometer /home/ceilometer \ && sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/ceilometer/rootwrap.conf {% endif %} diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index be588e7e0..a4744777f 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -189,7 +189,7 @@ kolla_internal_vip_address: "10.10.10.254" ####################### # Ceilometer options ####################### -# Valid options are [ mongodb, mysql ] +# Valid options are [ mongodb, mysql, gnocchi ] #ceilometer_database_type: "mongodb" |
