diff options
| author | Zuul <zuul@review.opendev.org> | 2026-03-30 12:48:09 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2026-03-30 12:48:09 +0000 |
| commit | a7c6c2d6cc32619c01249a9d78ae472ad7e43f9c (patch) | |
| tree | b03bee143e9bbeb4718b5f3fce72c88956b115bd | |
| parent | 10320f4a10a6d880e34ab9ab327e8d5ff54383ad (diff) | |
| parent | c90a23005c138edcf4e7f0a0d9c8b7fa7e745bba (diff) | |
| download | kolla-ansible-a7c6c2d6cc32619c01249a9d78ae472ad7e43f9c.tar.gz kolla-ansible-a7c6c2d6cc32619c01249a9d78ae472ad7e43f9c.zip | |
Merge "prometheus: add valkey exporter support"
| -rw-r--r-- | ansible/group_vars/all/prometheus.yml | 2 | ||||
| -rw-r--r-- | ansible/inventory/all-in-one | 3 | ||||
| -rw-r--r-- | ansible/inventory/multinode | 3 | ||||
| -rw-r--r-- | ansible/roles/prometheus/defaults/main.yml | 17 | ||||
| -rw-r--r-- | ansible/roles/prometheus/handlers/main.yml | 13 | ||||
| -rw-r--r-- | ansible/roles/prometheus/templates/prometheus-valkey-exporter.json.j2 | 12 | ||||
| -rw-r--r-- | ansible/roles/prometheus/templates/prometheus.yml.j2 | 13 | ||||
| -rw-r--r-- | ansible/site.yml | 1 | ||||
| -rw-r--r-- | etc/kolla/globals.yml | 1 | ||||
| -rw-r--r-- | releasenotes/notes/add-valkey-exporter-6598eafebeefddd1.yaml | 5 |
10 files changed, 70 insertions, 0 deletions
diff --git a/ansible/group_vars/all/prometheus.yml b/ansible/group_vars/all/prometheus.yml index 388825907..0eeca4e7c 100644 --- a/ansible/group_vars/all/prometheus.yml +++ b/ansible/group_vars/all/prometheus.yml @@ -22,6 +22,7 @@ enable_prometheus_rabbitmq_exporter: "{{ enable_prometheus | bool and enable_rab enable_prometheus_libvirt_exporter: "{{ enable_prometheus | bool and enable_nova | bool and nova_compute_virt_type in ['kvm', 'qemu'] }}" enable_prometheus_etcd_integration: "{{ enable_prometheus | bool and enable_etcd | bool }}" enable_prometheus_proxysql_exporter: "{{ enable_prometheus | bool and enable_proxysql | bool }}" +enable_prometheus_valkey_exporter: "{{ enable_prometheus | bool and enable_valkey | bool }}" prometheus_alertmanager_user: "admin" prometheus_ceph_exporter_interval: "{{ prometheus_scrape_interval }}" @@ -56,6 +57,7 @@ prometheus_fluentd_integration_port: "24231" prometheus_libvirt_exporter_port: "9177" prometheus_etcd_integration_port: "{{ etcd_client_port }}" proxysql_prometheus_exporter_port: "6070" +prometheus_valkey_exporter_port: "9121" # Prometheus alertmanager ports prometheus_alertmanager_internal_fqdn: "{{ kolla_internal_fqdn }}" diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one index ce3b26f16..5fa8ba959 100644 --- a/ansible/inventory/all-in-one +++ b/ansible/inventory/all-in-one @@ -543,6 +543,9 @@ monitoring [prometheus-libvirt-exporter:children] compute +[prometheus-valkey-exporter:children] +valkey + [masakari-api:children] control diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode index 40db78c1e..4aaec0785 100644 --- a/ansible/inventory/multinode +++ b/ansible/inventory/multinode @@ -561,6 +561,9 @@ monitoring [prometheus-libvirt-exporter:children] compute +[prometheus-valkey-exporter:children] +valkey + [masakari-api:children] control diff --git a/ansible/roles/prometheus/defaults/main.yml b/ansible/roles/prometheus/defaults/main.yml index 5c4ad787a..03eaae027 100644 --- a/ansible/roles/prometheus/defaults/main.yml +++ b/ansible/roles/prometheus/defaults/main.yml @@ -121,6 +121,13 @@ prometheus_services: image: "{{ prometheus_libvirt_exporter_image_full }}" volumes: "{{ prometheus_libvirt_exporter_default_volumes + prometheus_libvirt_exporter_extra_volumes }}" dimensions: "{{ prometheus_libvirt_exporter_dimensions }}" + prometheus-valkey-exporter: + container_name: "prometheus_valkey_exporter" + group: "prometheus-valkey-exporter" + enabled: "{{ enable_prometheus_valkey_exporter | bool }}" + image: "{{ prometheus_valkey_exporter_image_full }}" + volumes: "{{ prometheus_valkey_exporter_default_volumes + prometheus_valkey_exporter_extra_volumes }}" + dimensions: "{{ prometheus_valkey_exporter_dimensions }}" #################### # Prometheus Server @@ -398,6 +405,10 @@ prometheus_libvirt_exporter_image: "{{ docker_image_url }}prometheus-libvirt-exp prometheus_libvirt_exporter_tag: "{{ prometheus_tag }}" prometheus_libvirt_exporter_image_full: "{{ prometheus_libvirt_exporter_image }}:{{ prometheus_libvirt_exporter_tag }}" +prometheus_valkey_exporter_image: "{{ docker_image_url }}prometheus-valkey-exporter" +prometheus_valkey_exporter_tag: "{{ prometheus_tag }}" +prometheus_valkey_exporter_image_full: "{{ prometheus_valkey_exporter_image }}:{{ prometheus_valkey_exporter_tag }}" + prometheus_server_dimensions: "{{ default_container_dimensions }}" prometheus_mysqld_exporter_dimensions: "{{ default_container_dimensions }}" prometheus_memcached_exporter_dimensions: "{{ default_container_dimensions }}" @@ -406,6 +417,7 @@ prometheus_openstack_exporter_dimensions: "{{ default_container_dimensions }}" prometheus_elasticsearch_exporter_dimensions: "{{ default_container_dimensions }}" prometheus_blackbox_exporter_dimensions: "{{ default_container_dimensions }}" prometheus_libvirt_exporter_dimensions: "{{ default_container_dimensions }}" +prometheus_valkey_exporter_dimensions: "{{ default_container_dimensions }}" prometheus_server_default_volumes: - "{{ node_config_directory }}/prometheus-server/:{{ container_config_directory }}/:ro" @@ -441,6 +453,10 @@ prometheus_libvirt_exporter_default_volumes: - "{{ node_config_directory }}/prometheus-libvirt-exporter/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "/run/libvirt:/run/libvirt:ro" +prometheus_valkey_exporter_default_volumes: + - "{{ node_config_directory }}/prometheus-valkey-exporter/:{{ container_config_directory }}/:ro" + - "/etc/localtime:/etc/localtime:ro" + - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}" prometheus_extra_volumes: "{{ default_extra_volumes }}" prometheus_server_extra_volumes: "{{ prometheus_extra_volumes }}" @@ -451,6 +467,7 @@ prometheus_openstack_exporter_extra_volumes: "{{ prometheus_extra_volumes }}" prometheus_elasticsearch_exporter_extra_volumes: "{{ prometheus_extra_volumes }}" prometheus_blackbox_exporter_extra_volumes: "{{ prometheus_extra_volumes }}" prometheus_libvirt_exporter_extra_volumes: "{{ prometheus_extra_volumes }}" +prometheus_valkey_exporter_extra_volumes: "{{ prometheus_extra_volumes }}" prometheus_openstack_exporter_disabled_volume: "{{ '--disable-service.volume' if not enable_cinder | bool else '' }}" prometheus_openstack_exporter_disabled_dns: "{{ '--disable-service.dns' if not enable_designate | bool else '' }}" diff --git a/ansible/roles/prometheus/handlers/main.yml b/ansible/roles/prometheus/handlers/main.yml index 386031040..f83129840 100644 --- a/ansible/roles/prometheus/handlers/main.yml +++ b/ansible/roles/prometheus/handlers/main.yml @@ -104,3 +104,16 @@ image: "{{ service.image }}" volumes: "{{ service.volumes }}" dimensions: "{{ service.dimensions }}" + +- name: Restart prometheus-valkey-exporter container + vars: + service_name: "prometheus-valkey-exporter" + service: "{{ prometheus_services[service_name] }}" + become: true + kolla_container: + action: "recreate_or_restart_container" + common_options: "{{ docker_common_options }}" + name: "{{ service.container_name }}" + image: "{{ service.image }}" + volumes: "{{ service.volumes }}" + dimensions: "{{ service.dimensions }}" diff --git a/ansible/roles/prometheus/templates/prometheus-valkey-exporter.json.j2 b/ansible/roles/prometheus/templates/prometheus-valkey-exporter.json.j2 new file mode 100644 index 000000000..e3d3f45b0 --- /dev/null +++ b/ansible/roles/prometheus/templates/prometheus-valkey-exporter.json.j2 @@ -0,0 +1,12 @@ +{ + "command": "/opt/valkey-exporter -redis.addr=redis://{{ api_interface_address | put_address_in_context('url') }}:{{ valkey_server_port }} -redis.password={{ valkey_master_password }} -web.listen-address={{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_valkey_exporter_port }}", + "config_files": [ + {% if kolla_copy_ca_into_containers | bool %} + { + "source": "{{ container_config_directory }}/ca-certificates", + "dest": "/var/lib/kolla/share/ca-certificates", + "owner": "root", + "perm": "0600" + }{% endif %} + ] +} diff --git a/ansible/roles/prometheus/templates/prometheus.yml.j2 b/ansible/roles/prometheus/templates/prometheus.yml.j2 index 1aa75fa2c..f07e89cea 100644 --- a/ansible/roles/prometheus/templates/prometheus.yml.j2 +++ b/ansible/roles/prometheus/templates/prometheus.yml.j2 @@ -266,6 +266,19 @@ scrape_configs: {% endfor %} {% endif %} +{% if enable_prometheus_valkey_exporter | bool %} + - job_name: valkey_exporter + static_configs: +{% for host in groups["prometheus-valkey-exporter"] %} + - targets: + - '{{ 'api' | kolla_address(host, override_var='prometheus_target_address') | put_address_in_context('url') }}:{{ hostvars[host]['prometheus_valkey_exporter_port'] }}' +{% if hostvars[host].prometheus_instance_label | default(false, true) %} + labels: + instance: "{{ hostvars[host].prometheus_instance_label }}" +{% endif %} +{% endfor %} +{% endif %} + alerting: alertmanagers: - static_configs: diff --git a/ansible/site.yml b/ansible/site.yml index f37939f37..abc31d580 100644 --- a/ansible/site.yml +++ b/ansible/site.yml @@ -460,6 +460,7 @@ - prometheus-elasticsearch-exporter - prometheus-blackbox-exporter - prometheus-libvirt-exporter + - prometheus-valkey-exporter - "&enable_prometheus_True" serial: '{{ kolla_serial|default("0") }}' max_fail_percentage: >- diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index 36d2ca381..da9246a4d 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -734,6 +734,7 @@ workaround_ansible_issue_8743: true #enable_prometheus_blackbox_exporter: "{{ enable_prometheus | bool }}" #enable_prometheus_libvirt_exporter: "{{ enable_prometheus | bool and enable_nova | bool and nova_compute_virt_type in ['kvm', 'qemu'] }}" #enable_prometheus_etcd_integration: "{{ enable_prometheus | bool and enable_etcd | bool }}" +#enable_prometheus_valkey_exporter: "{{ enable_prometheus | bool and enable_valkey | bool }}" # The labels to add to any time series or alerts when communicating with external systems (federation, remote storage, Alertmanager). # prometheus_external_labels: diff --git a/releasenotes/notes/add-valkey-exporter-6598eafebeefddd1.yaml b/releasenotes/notes/add-valkey-exporter-6598eafebeefddd1.yaml new file mode 100644 index 000000000..9fa2cf951 --- /dev/null +++ b/releasenotes/notes/add-valkey-exporter-6598eafebeefddd1.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Adds support for deploying ``prometheus-valkey-exporter`` + to enable monitoring of Valkey servers. |
