diff --git a/ansible/roles/ceilometer/handlers/main.yml b/ansible/roles/ceilometer/handlers/main.yml
index 907dfb300bf36c84582f2770df1c07e4690283a8..b646447035f71742457c53f50f19f1bea7d8b5ac 100644
--- a/ansible/roles/ceilometer/handlers/main.yml
+++ b/ansible/roles/ceilometer/handlers/main.yml
@@ -7,6 +7,7 @@
     ceilometer_conf: "{{ ceilometer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
     ceilometer_pipeline: "{{ ceilometer_pipelines.results|selectattr('item.key', 'equalto', service_name)|first }}"
     policy_overwriting: "{{ ceilometer_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
+    polling_overwriting: "{{ ceilometer_polling_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
     ceilometer_notification_container: "{{ check_ceilometer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
     panko_conf: "{{ panko_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
   become: true
@@ -36,6 +37,7 @@
     ceilometer_conf: "{{ ceilometer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
     ceilometer_pipeline: "{{ ceilometer_pipelines.results|selectattr('item.key', 'equalto', service_name)|first }}"
     policy_overwriting: "{{ ceilometer_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
+    polling_overwriting: "{{ ceilometer_polling_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
     ceilometer_central_container: "{{ check_ceilometer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
   become: true
   kolla_docker:
@@ -62,6 +64,7 @@
     ceilometer_conf: "{{ ceilometer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
     ceilometer_pipeline: "{{ ceilometer_pipelines.results|selectattr('item.key', 'equalto', service_name)|first }}"
     policy_overwriting: "{{ ceilometer_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
+    polling_overwriting: "{{ ceilometer_polling_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
     ceilometer_compute_container: "{{ check_ceilometer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
   become: true
   kolla_docker:
diff --git a/ansible/roles/ceilometer/tasks/config.yml b/ansible/roles/ceilometer/tasks/config.yml
index 1ec1d5d3a81497aa7304bb425246cb882ae014a6..4146b1610577a544888515f13f8d1d79b7925743 100644
--- a/ansible/roles/ceilometer/tasks/config.yml
+++ b/ansible/roles/ceilometer/tasks/config.yml
@@ -12,6 +12,32 @@
     - item.value.enabled | bool
   with_dict: "{{ ceilometer_services }}"
 
+- name: Check custom polling.yaml exists
+  local_action: stat path="{{ node_custom_config }}/ceilometer/polling.yaml"
+  register: ceilometer_polling_file
+
+- name: Copying over polling.yaml
+  copy:
+    src: "{{ node_custom_config }}/ceilometer/polling.yaml"
+    dest: "{{ node_config_directory }}/{{ item.key }}/polling.yaml"
+    force: True
+    mode: "0600"
+  become: true
+  register: ceilometer_polling_overwriting
+  when:
+    - ceilometer_polling_file.stat.exists
+    - inventory_hostname in groups[item.value.group]
+    - item.value.enabled | bool
+  with_dict: "{{ ceilometer_services }}"
+  notify:
+    - "Restart {{ item.key }} container"
+
+- name: Set ceilometer polling file's path
+  set_fact:
+    ceilometer_polling_file_path: "{{ ceilometer_polling_file.stat.path }}"
+  when:
+    - ceilometer_polling_file.stat.exists
+
 - name: Check if policies shall be overwritten
   local_action: stat path="{{ item }}"
   run_once: True
diff --git a/ansible/roles/ceilometer/templates/ceilometer-central.json.j2 b/ansible/roles/ceilometer/templates/ceilometer-central.json.j2
index 277eae3baffdb375d6378bde2da60581cbe2bafd..6cf4810abbc4ef19d55804be8a77e4a9a97d974b 100644
--- a/ansible/roles/ceilometer/templates/ceilometer-central.json.j2
+++ b/ansible/roles/ceilometer/templates/ceilometer-central.json.j2
@@ -6,7 +6,13 @@
             "dest": "/etc/ceilometer/ceilometer.conf",
             "owner": "ceilometer",
             "perm": "0600"
-        }{% if ceilometer_policy_file is defined %},
+        }{% if ceilometer_polling_file_path is defined %},
+        {
+            "source": "{{ container_config_directory }}/polling.yaml",
+            "dest": "/etc/ceilometer/polling.yaml",
+            "owner": "ceilometer",
+            "perm": "0600"
+        }{% endif %}{% if ceilometer_policy_file is defined %},
         {
             "source": "{{ container_config_directory }}/{{ ceilometer_policy_file }}",
             "dest": "/etc/ceilometer/{{ ceilometer_policy_file }}",
diff --git a/ansible/roles/ceilometer/templates/ceilometer-compute.json.j2 b/ansible/roles/ceilometer/templates/ceilometer-compute.json.j2
index 9a27ae7a9d90607c71456ea90389063f1df81878..19e8e04725dd6c387f23eae74e6c5db992db797b 100644
--- a/ansible/roles/ceilometer/templates/ceilometer-compute.json.j2
+++ b/ansible/roles/ceilometer/templates/ceilometer-compute.json.j2
@@ -6,7 +6,13 @@
             "dest": "/etc/ceilometer/ceilometer.conf",
             "owner": "ceilometer",
             "perm": "0600"
-        }{% if ceilometer_policy_file is defined %},
+        }{% if ceilometer_polling_file_path is defined %},
+        {
+            "source": "{{ container_config_directory }}/polling.yaml",
+            "dest": "/etc/ceilometer/polling.yaml",
+            "owner": "ceilometer",
+            "perm": "0600"
+        }{% endif %}{% if ceilometer_policy_file is defined %},
         {
             "source": "{{ container_config_directory }}/{{ ceilometer_policy_file }}",
             "dest": "/etc/ceilometer/{{ ceilometer_policy_file }}",
diff --git a/ansible/roles/ceilometer/templates/ceilometer-notification.json.j2 b/ansible/roles/ceilometer/templates/ceilometer-notification.json.j2
index bad19d97771452129049b6d78cf71b4c0d668df5..cf6eeee05f4332905b55600f4578fb13617ea6e5 100644
--- a/ansible/roles/ceilometer/templates/ceilometer-notification.json.j2
+++ b/ansible/roles/ceilometer/templates/ceilometer-notification.json.j2
@@ -24,7 +24,13 @@
             "dest": "/etc/ceilometer/pipeline.yaml",
             "owner": "ceilometer",
             "perm": "0600"
-        }{% if ceilometer_policy_file is defined %},
+        }{% if ceilometer_polling_file_path is defined %},
+        {
+            "source": "{{ container_config_directory }}/polling.yaml",
+            "dest": "/etc/ceilometer/polling.yaml",
+            "owner": "ceilometer",
+            "perm": "0600"
+        }{% endif %}{% if ceilometer_policy_file is defined %},
         {
             "source": "{{ container_config_directory }}/{{ ceilometer_policy_file }}",
             "dest": "/etc/ceilometer/{{ ceilometer_policy_file }}",