diff --git a/ansible/roles/monasca/defaults/main.yml b/ansible/roles/monasca/defaults/main.yml index 29536d33f718dd7aa5ea782f06668855ccd0e977..5fe661fefb5020ca21d2b3a91236fe2e3cb0bee1 100644 --- a/ansible/roles/monasca/defaults/main.yml +++ b/ansible/roles/monasca/defaults/main.yml @@ -114,6 +114,10 @@ monasca_database_address: "{{ database_address }}:{{ database_port }}" monasca_influxdb_name: "monasca" monasca_influxdb_address: "{{ kolla_internal_fqdn }}" monasca_influxdb_http_port: "{{ influxdb_http_port }}" +monasca_influxdb_retention_policy: + name: 'monasca_metrics' + duration: "1w" + replication_count: 1 #################### # Monasca diff --git a/ansible/roles/monasca/tasks/bootstrap.yml b/ansible/roles/monasca/tasks/bootstrap.yml index 6a3c3af58bfda6dc0b075335320c162ac9c3ffaa..c298ff7da1a0aec07f8c9ed800e2901230b44211 100644 --- a/ansible/roles/monasca/tasks/bootstrap.yml +++ b/ansible/roles/monasca/tasks/bootstrap.yml @@ -36,15 +36,23 @@ - include_tasks: bootstrap_service.yml when: database.changed or use_preconfigured_databases | bool +# NOTE(dszumski): Monasca is not yet compatible with InfluxDB > 1.1.10, which means +# that the official Ansible modules for managing InfluxDB don't work [1]. +# We therefore fall back to manual commands to register the database +# and set a default retention policy. +# [1] https://github.com/influxdata/influxdb-python#influxdb-pre-v110-users +- name: List influxdb databases + command: "docker exec influxdb influx -host {{ monasca_influxdb_address }} -port {{ monasca_influxdb_http_port }} -execute 'show databases'" + run_once: True + delegate_to: "{{ groups['influxdb'][0] }}" + register: monasca_influxdb_database + changed_when: False + - name: Creating monasca influxdb database - kolla_toolbox: - module_name: influxdb_database - module_args: - hostname: "{{ monasca_influxdb_address }}" - port: "{{ monasca_influxdb_http_port }}" - database_name: "{{ monasca_influxdb_name }}" + command: "docker exec influxdb influx -host {{ monasca_influxdb_address }} -port {{ monasca_influxdb_http_port }} -execute 'CREATE DATABASE {{ monasca_influxdb_name }} WITH DURATION {{ monasca_influxdb_retention_policy.duration }} REPLICATION {{ monasca_influxdb_retention_policy.replication_count }} NAME {{ monasca_influxdb_retention_policy.name }}'" run_once: True - delegate_to: "{{ groups['monasca-api'][0] }}" + delegate_to: "{{ groups['influxdb'][0] }}" + when: monasca_influxdb_name not in monasca_influxdb_database.stdout_lines # NOTE(dszumski): The Monasca APIs write logs and messages to Kafka. Since # Kafka has automatic topic generation enabled by default we don't need to