From 9d2770db1107c7c32f278eb150ac01e1985df5cf Mon Sep 17 00:00:00 2001 From: Jorge Niedbalski Date: Mon, 11 Jun 2018 11:10:12 -0400 Subject: [PATCH] [prometheus] Enable ceph mgr exporter This patch enables the ceph mgr prometheus exporter. If enable_prometheus_ceph_mgr_exporter is set to true, the ceph mgr prometheus plugin is enabled on the hosts that are part of the ceph-mgr group, then the exporter is added into the prometheus-server configuration file. Change-Id: Ia2f879401e585e6043f69cc5e3ab1a1f72f7f033 --- ansible/group_vars/all.yml | 2 ++ ansible/roles/ceph/tasks/start_mgrs.yml | 6 ++++++ ansible/roles/prometheus/templates/prometheus.yml.j2 | 10 ++++++++++ etc/kolla/globals.yml | 1 + ...theus-add-ceph-manager-plugin-7bcde3ec0356e26b.yaml | 6 ++++++ 5 files changed, 25 insertions(+) create mode 100644 releasenotes/notes/prometheus-add-ceph-manager-plugin-7bcde3ec0356e26b.yaml diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 952f3d8906..d61acb3ad6 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -280,6 +280,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" @@ -849,4 +850,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 12f9febfd5..323cde160f 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -500,3 +500,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.