diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index f751d59d93..535f874756 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -281,6 +281,7 @@ prometheus_node_exporter_port: "9100" prometheus_mysqld_exporter_port: "9104" prometheus_haproxy_exporter_port: "9101" prometheus_memcached_exporter_port: "9150" +prometheus_ceph_mgr_exporter_port: "9283" # Default cadvisor port of 8080 already in use prometheus_cadvisor_port: "18080" @@ -856,4 +857,5 @@ enable_prometheus_node_exporter: "{{ enable_prometheus | bool }}" enable_prometheus_memcached_exporter: "{{ enable_memcached | bool }}" enable_prometheus_cadvisor: "{{ enable_prometheus | bool }}" enable_prometheus_alertmanager: "{{ enable_prometheus | bool }}" +enable_prometheus_ceph_mgr_exporter: "{{ enable_ceph | bool and enable_prometheus | bool }}" prometheus_alertmanager_user: "admin" diff --git a/ansible/roles/ceph/tasks/start_mgrs.yml b/ansible/roles/ceph/tasks/start_mgrs.yml index d4f1af1ac6..c151d5675f 100644 --- a/ansible/roles/ceph/tasks/start_mgrs.yml +++ b/ansible/roles/ceph/tasks/start_mgrs.yml @@ -31,3 +31,9 @@ - "{{ node_config_directory }}/ceph-mgr/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla" + +- name: Enable the ceph mgr prometheus module + command: docker exec ceph_mgr ceph mgr module enable prometheus + when: + - inventory_hostname in groups['ceph-mgr'] + - enable_prometheus_ceph_mgr_exporter | bool diff --git a/ansible/roles/prometheus/templates/prometheus.yml.j2 b/ansible/roles/prometheus/templates/prometheus.yml.j2 index 9e43ee5374..6de1ca9ae7 100644 --- a/ansible/roles/prometheus/templates/prometheus.yml.j2 +++ b/ansible/roles/prometheus/templates/prometheus.yml.j2 @@ -58,6 +58,16 @@ scrape_configs: {% endfor %} {% endif %} +{% if enable_prometheus_ceph_mgr_exporter | bool %} + - job_name: ceph_mgr_exporter + honor_labels: true + static_configs: + - targets: +{% for host in groups["ceph-mgr"] %} + - '{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ hostvars[host]['prometheus_ceph_mgr_exporter_port'] }}' +{% endfor %} +{% endif %} + {% if enable_prometheus_alertmanager | bool %} alerting: alertmanagers: diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index 3624a82fdd..f2729bab74 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -504,3 +504,4 @@ tempest_floating_network_name: #enable_prometheus_cadvisor: "{{ enable_prometheus | bool }}" #enable_prometheus_memcached: "{{ enable_prometheus | bool }}" #enable_prometheus_alertmanager: "{{ enable_prometheus | bool }}" +#enable_prometheus_ceph_mgr_exporter: "{{ enable_prometheus | bool and enable_ceph | bool }}" diff --git a/releasenotes/notes/prometheus-add-ceph-manager-plugin-7bcde3ec0356e26b.yaml b/releasenotes/notes/prometheus-add-ceph-manager-plugin-7bcde3ec0356e26b.yaml new file mode 100644 index 0000000000..42bfeeb394 --- /dev/null +++ b/releasenotes/notes/prometheus-add-ceph-manager-plugin-7bcde3ec0356e26b.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Exposed a config option to enable the ceph manager prometheus + plugin, this also enables the exporter on the prometheus-server + configuration for each ceph-mgr host.