diff --git a/osm_mon/dashboarder/service.py b/osm_mon/dashboarder/service.py
index 1e81c8a..10508e4 100644
--- a/osm_mon/dashboarder/service.py
+++ b/osm_mon/dashboarder/service.py
@@ -18,7 +18,7 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 # For those usages not covered by the Apache License, Version 2.0 please
-# contact: glavado@whitestack.com
+# contact: glavado@whitestack.com or fbravo@whitestack.com
 ##
 import logging
 
@@ -26,6 +26,7 @@
 from osm_mon.core.config import Config
 from osm_mon.dashboarder.backends.grafana import GrafanaBackend
 from osm_mon import __path__ as mon_path
+from osm_mon.dashboarder.utils import find_in_list
 
 log = logging.getLogger(__name__)
 
@@ -72,7 +73,8 @@
                 try:
                     vnfd = self.common_db.get_vnfd_by_id(vnf_profile['vnfd-id'])
                     # If there are metrics, create dashboard (if exists)
-                    if vnfd and 'monitoring-parameter' in vnfd["vdu"][0]:
+                    vdu_found = find_in_list(vnfd["vdu"], lambda a_vdu: "monitoring-parameter" in a_vdu)
+                    if vdu_found:
                         if nsr_id not in dashboard_uids:
                             nsr_name = nsr['name']
                             project_id = nsr["_admin"]["projects_read"][0]
diff --git a/osm_mon/dashboarder/utils.py b/osm_mon/dashboarder/utils.py
new file mode 100644
index 0000000..7b13c9d
--- /dev/null
+++ b/osm_mon/dashboarder/utils.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+# Copyright 2018 Whitestack, LLC
+# *************************************************************
+
+# This file is part of OSM Monitoring module
+# All Rights Reserved to Whitestack, LLC
+
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+
+#         http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: fbravo@whitestack.com or agarcia@whitestack.com
+##
+
+def find_in_list(the_list, condition_lambda):
+    for item in the_list:
+        if condition_lambda(item):
+            return item
+    else:
+        return None
