diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 9c4a3b3b9af9766116e55f326b719942770b95fa..7984fb4fa019815da7599d887aeb59c9229872dd 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -1024,6 +1024,7 @@ prometheus_openstack_exporter_interval: "60s"
 prometheus_elasticsearch_exporter_interval: "60s"
 prometheus_cmdline_extras:
 prometheus_ceph_mgr_exporter_endpoints: []
+prometheus_openstack_exporter_endpoint_type: "internal"
 
 ############
 # Vitrage
diff --git a/ansible/roles/prometheus/templates/prometheus-openstack-exporter.json.j2 b/ansible/roles/prometheus/templates/prometheus-openstack-exporter.json.j2
index 7f1c2a49727e8239acdec8f232caacb0b7a72214..75adef4a675ab118d0cab11743ac5eaa2bd072a6 100644
--- a/ansible/roles/prometheus/templates/prometheus-openstack-exporter.json.j2
+++ b/ansible/roles/prometheus/templates/prometheus-openstack-exporter.json.j2
@@ -1,5 +1,5 @@
 {
-    "command": "/opt/openstack-exporter/openstack-exporter --os-client-config=/etc/openstack/clouds.yml --web.listen-address={{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_openstack_exporter_port }} default",
+    "command": "/opt/openstack-exporter/openstack-exporter --endpoint-type={{ prometheus_openstack_exporter_endpoint_type }} --os-client-config=/etc/openstack/clouds.yml --web.listen-address={{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_openstack_exporter_port }} default",
     "config_files": [
         {
             "source": "{{ container_config_directory }}/clouds.yml",
diff --git a/releasenotes/notes/openstack-exporter-endpoint-type-7c687da172986fb3.yaml b/releasenotes/notes/openstack-exporter-endpoint-type-7c687da172986fb3.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a485727271fe4a886e4be52b6382c015094f3e35
--- /dev/null
+++ b/releasenotes/notes/openstack-exporter-endpoint-type-7c687da172986fb3.yaml
@@ -0,0 +1,13 @@
+---
+upgrade:
+  - |
+    The Prometheus OpenStack exporter now uses internal endpoints to
+    communicate with OpenStack services, to match the configuration of other
+    services deployed by Kolla Ansible. Using public endpoints can be retained
+    by setting the ``prometheus_openstack_exporter_endpoint_type`` variable to
+    ``public``.
+fixes:
+  - |
+    The Prometheus OpenStack exporter now uses internal endpoints to
+    communicate with OpenStack services, to match the configuration of other
+    services deployed by Kolla Ansible.