diff --git a/tcp_tests/managers/sl_manager.py b/tcp_tests/managers/sl_manager.py
index 5c1b3a1..364f219 100644
--- a/tcp_tests/managers/sl_manager.py
+++ b/tcp_tests/managers/sl_manager.py
@@ -45,6 +45,7 @@
     def get_sl_vip(self):
         tgt = 'I@prometheus:server:enabled:True'
         pillar = 'keepalived:cluster:instance:prometheus_server_vip:address'
+        pill = 'keepalived:cluster:instance:stacklight_monitor_vip:address'
         sl_vip_address_pillars = self._salt.get_pillar(tgt=tgt,
                                                        pillar=pillar)
         sl_vip_ip = set([ip
@@ -57,6 +58,13 @@
             sl_vip_ip = set([ip
                              for item in sl_vip_address_pillars
                              for node, ip in item.items() if ip])
+        if len(sl_vip_ip) != 1:
+            sl_vip_address_pillars = self._salt.get_pillar(tgt=tgt,
+                                                           pillar=pill)
+            sl_vip_ip = set([ip
+                             for item in sl_vip_address_pillars
+                             for node, ip in item.items() if ip])
+            LOG.info("Current response is {}".format(sl_vip_address_pillars))
         assert len(sl_vip_ip) == 1, (
             "SL VIP not found or found more than one SL VIP in pillars:{0}, "
             "expected one!").format(sl_vip_ip)
