diff --git a/ansible/roles/cloudkitty/defaults/main.yml b/ansible/roles/cloudkitty/defaults/main.yml
index 663720adf6c342edffb37cf4250d32bbc3169e26..cc34cfc78b1a56d8414005230b8ac5ad1e4b3bc1 100644
--- a/ansible/roles/cloudkitty/defaults/main.yml
+++ b/ansible/roles/cloudkitty/defaults/main.yml
@@ -90,3 +90,4 @@ cloudkitty_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
 cloudkitty_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
 cloudkitty_dev_mode: "{{ kolla_dev_mode }}"
 cloudkitty_source_version: "{{ kolla_source_version }}"
+cloudkitty_custom_metrics_yaml_file: "metrics.yml"
diff --git a/ansible/roles/cloudkitty/tasks/config.yml b/ansible/roles/cloudkitty/tasks/config.yml
index 6a4200f901fe0c8e19c16db5856a1b45a98aa624..7758f0635298ba61d16ea98bdd8bc742da2dc1e4 100644
--- a/ansible/roles/cloudkitty/tasks/config.yml
+++ b/ansible/roles/cloudkitty/tasks/config.yml
@@ -29,6 +29,28 @@
   when:
     - cloudkitty_policy.results
 
+- name: Check if custom {{ cloudkitty_custom_metrics_yaml_file }} exists
+  local_action: stat path="{{ node_custom_config }}/cloudkitty/{{ cloudkitty_custom_metrics_yaml_file }}"
+  register: cloudkitty_custom_metrics_file
+
+- name: Copying {{ cloudkitty_custom_metrics_yaml_file }} if it exists
+  copy:
+    src: "{{ node_custom_config }}/cloudkitty/{{ cloudkitty_custom_metrics_yaml_file }}"
+    dest: "{{ node_config_directory }}/{{ item.key }}/{{ cloudkitty_custom_metrics_yaml_file }}"
+    mode: "0660"
+  become: true
+  when:
+    - cloudkitty_custom_metrics_file.stat.exists
+    - inventory_hostname in groups[item.value.group]
+    - item.value.enabled | bool
+  with_dict: "{{ cloudkitty_services }}"
+  notify:
+    - "Restart {{ item.key }} container"
+
+- name: Are we using {{ cloudkitty_custom_metrics_yaml_file }}?
+  set_fact:
+    cloudkitty_custom_metrics_used: "{{ cloudkitty_custom_metrics_file.stat.exists }}"
+
 - name: Copying over config.json files for services
   template:
     src: "{{ item.key }}.json.j2"
diff --git a/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2 b/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2
index f31a43b9dad36823c1c9c35227233c1cd0dacffa..29b67738c0888cc60e0fc622c336cb9af333c157 100644
--- a/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2
+++ b/ansible/roles/cloudkitty/templates/cloudkitty-api.json.j2
@@ -20,6 +20,12 @@
             "dest": "/etc/cloudkitty/{{ cloudkitty_policy_file }}",
             "owner": "cloudkitty",
             "perm": "0600"
+        }{% endif %}{% if cloudkitty_custom_metrics_used %},
+        {
+            "source": "{{ container_config_directory }}/{{ cloudkitty_custom_metrics_yaml_file }}",
+            "dest": "/etc/cloudkitty/{{ cloudkitty_custom_metrics_yaml_file }}",
+            "owner": "cloudkitty",
+            "perm": "0600"
         }{% endif %}
     ],
     "permissions": [
diff --git a/ansible/roles/cloudkitty/templates/cloudkitty-processor.json.j2 b/ansible/roles/cloudkitty/templates/cloudkitty-processor.json.j2
index 7d57ae041ea38096dddb9af2dd84a5204db119ef..4cd1041e08ac64786ddc733797f49e765ff4386c 100644
--- a/ansible/roles/cloudkitty/templates/cloudkitty-processor.json.j2
+++ b/ansible/roles/cloudkitty/templates/cloudkitty-processor.json.j2
@@ -12,6 +12,12 @@
             "dest": "/etc/cloudkitty/{{ cloudkitty_policy_file }}",
             "owner": "cloudkitty",
             "perm": "0600"
+        }{% endif %}{% if cloudkitty_custom_metrics_used %},
+        {
+            "source": "{{ container_config_directory }}/{{ cloudkitty_custom_metrics_yaml_file }}",
+            "dest": "/etc/cloudkitty/{{ cloudkitty_custom_metrics_yaml_file }}",
+            "owner": "cloudkitty",
+            "perm": "0600"
         }{% endif %}
     ],
     "permissions": [
diff --git a/ansible/roles/cloudkitty/templates/cloudkitty.conf.j2 b/ansible/roles/cloudkitty/templates/cloudkitty.conf.j2
index a25dc0a606f84da82f575849a0894765b3d04771..a80f00e852b226fee5106f415e5f1ab6e1bd9a76 100644
--- a/ansible/roles/cloudkitty/templates/cloudkitty.conf.j2
+++ b/ansible/roles/cloudkitty/templates/cloudkitty.conf.j2
@@ -40,6 +40,9 @@ policy_file = {{ cloudkitty_policy_file }}
 [collect]
 collector = {{ cloudkitty_collector_backend }}
 services = compute,image{% if enable_cinder | bool %},volume{% endif %},network.bw.out,network.bw.in,network.floating
+{% if cloudkitty_custom_metrics_used %}
+metrics_conf = /etc/cloudkitty/{{ cloudkitty_custom_metrics_yaml_file }}
+{% endif %}
 
 [keystone_fetcher]
 keystone_version = 3