diff --git a/osm_policy_module/autoscaling/service.py b/osm_policy_module/autoscaling/service.py
index fb3ecaf..57756b7 100644
--- a/osm_policy_module/autoscaling/service.py
+++ b/osm_policy_module/autoscaling/service.py
@@ -73,7 +73,6 @@
                             log.debug("No scaling aspect present in vnfd")
                             continue
                         # TODO: Change for multiple instantiation levels support
-                        instantiation_level = df.get('instantiation-level', [{}])[0]
                         scaling_aspects = df['scaling-aspect']
                         all_vnfd_monitoring_params = self._get_all_vnfd_monitoring_params(vnfd)
                         for scaling_aspect in scaling_aspects:
@@ -122,10 +121,12 @@
                                                 if admin_scale_info["name"] == scaling_aspect["name"]:
                                                     nb_scale_op = admin_scale_info.get("nb-scale-op", 0)
                                                     break
-                                        for vdu_level in instantiation_level.get('vdu-level', ()):
-                                            if vdu_level.get('vdu-id') == vdu_id:
-                                                min_instance_count = int(vdu_level['number-of-instances'])
-                                        if nb_scale_op > min_instance_count:
+                                        min_instance_count = 1
+                                        for vdu_profile in df.get('vdu-profile', ()):
+                                            if vdu_profile.get('id') == vdu_id:
+                                                min_instance_count = int(vdu_profile.get('min-number-of-instances ', 1))
+                                                break
+                                        if nb_scale_op >= min_instance_count:
                                             alarm_uuid = await self.mon_client.create_alarm(
                                                 metric_name=metric_name,
                                                 ns_id=nsr_id,
