diff --git a/osm_mon/dashboarder/service.py b/osm_mon/dashboarder/service.py
index 48e8150..0a1f947 100644
--- a/osm_mon/dashboarder/service.py
+++ b/osm_mon/dashboarder/service.py
@@ -147,6 +147,18 @@
     def create_grafana_user(self, user):
         self.grafana.create_grafana_users(user)
 
+    def delete_non_existing_users(self):
+        if self.keystone:
+            # Get users from keystone
+            users = self.keystone.getUsers()
+            usernames = []
+            for user in users:
+                usernames.append(user.name)
+            grafana_users = self.grafana.get_grafana_users()
+            users_to_be_deleted = list(set(grafana_users) - set(usernames))
+            for grafana_user in users_to_be_deleted:
+                self.grafana.delete_grafana_users(grafana_user)
+
     def create_grafana_team_member(
         self, project_data, userid=None, project_list=None, user=None
     ):
