diff --git a/robot-systest/lib/prometheus_lib.resource b/robot-systest/lib/prometheus_lib.resource
index be3c120..4ad3028 100644
--- a/robot-systest/lib/prometheus_lib.resource
+++ b/robot-systest/lib/prometheus_lib.resource
@@ -34,13 +34,18 @@
 Set Testsuite Prometheus Variables
     [Documentation]   Set Testsuite Prometheus Variables to be used in subsequent test cases
 
-    IF   ${PROMETHEUS_HOST} == 'UNKNOWN'
+    IF   '${PROMETHEUS_HOST}' == 'UNKNOWN'
         ${local_prometheus_host}=   Get Environment Variable   OSM_HOSTNAME
+        IF   '${local_prometheus_host}'.startswith('nbi.')
+            ${local_prometheus_host}=   Replace String   ${local_prometheus_host}   nbi.   prometheus.
+        END
         Set Suite Variable   ${PROMETHEUS_HOST}   ${local_prometheus_host}
-        Set Suite Variable   ${PROMETHEUS_HOST}   9091
+        Set Suite Variable   ${PROMETHEUS_PORT}   80
     END
+    Set Suite Variable   ${PROMETHEUS_URL}   http://${PROMETHEUS_HOST}:${PROMETHEUS_PORT}
     Log   ${PROMETHEUS_PORT}
     Log   ${PROMETHEUS_HOST}
+    Log   ${PROMETHEUS_URL}
     Log   ${PROMETHEUS_USER}
     Log   ${PROMETHEUS_PASSWORD}
 
@@ -49,16 +54,22 @@
     ...                 The filter parameters are given to this function in key=value format (one argument per key/value pair).
     ...                 Fails if the metric is not found or has multiple values.
     ...                 Examples of execution:
-    ...                     \${metric}=   Get Metric   \${prometheus_ip}   \${prometheus_port}   ${prometheus_password}   \${metric}
-    ...                     \${metric}=   Get Metric   \${prometheus_ip}   \${prometheus_port}   ${prometheus_password}   \${metric}   \${param1}=\${value1}   \${param2}=\${value2}
-    [Arguments]   ${prometheus_ip}   ${prometheus_port}   ${prometheus_user}   ${prometheus_password}   ${metric}   @{filter_parameters}
+    ...                     \${metric}=   Get Metric   \${prometheus_url}   ${prometheus_password}   \${metric}
+    ...                     \${metric}=   Get Metric   \${prometheus_url}   ${prometheus_password}   \${metric}   \${param1}=\${value1}   \${param2}=\${value2}
+    [Arguments]   ${prometheus_url}   ${prometheus_user}   ${prometheus_password}   ${metric}   @{filter_parameters}
+    Log   ${prometheus_url}
+    Log   ${prometheus_user}
+    Log   ${prometheus_password}
+    Log   ${metric}
+    Log   ${filter_parameters}
     ${filter}=   Set Variable   ${EMPTY}
     FOR   ${param}   IN   @{filter_parameters}
         ${match}   ${param_name}   ${param_value}=   Should Match Regexp   ${param}   (.+)=(.+)   msg=Syntax error in filter parameters
         Log   ${match},${param_name},${param_value}
         ${filter}=   Catenate   SEPARATOR=   ${filter}   ${param_name}="${param_value}",
     END
-    ${resp}=   Execute Prometheus Instant Query   ${prometheus_ip}   ${prometheus_port}   ${prometheus_user}   ${prometheus_password}   query=${metric}{${filter}}
+    ${resp}=   Execute Prometheus Instant Query   ${prometheus_url}   ${prometheus_user}   ${prometheus_password}   query=${metric}{${filter}}
+    Log   ${resp}
     ${result_list}=   Convert To List   ${resp["data"]["result"]}
     ${results}=   Get Length   ${result_list}
     Should Not Be Equal As Numbers   0   ${results}   msg=Metric ${metric} not found   values=false
@@ -68,10 +79,14 @@
 Execute Prometheus Instant Query
     [Documentation]   Execute a Prometheus Instant Query using HTTP API.
     ...                 Return an inline json with the result of the query.
-    ...                 The requested URL is the next: http://\${prometheus_ip}:\${prometheus_port}/api/v1/query?\${querystring}
-    [Arguments]   ${prometheus_ip}   ${prometheus_port}   ${prometheus_user}   ${prometheus_password}   ${querystring}
+    ...                 The requested URL is the next: \${prometheus_url}/api/v1/query?\${querystring}
+    [Arguments]   ${prometheus_url}   ${prometheus_user}   ${prometheus_password}   ${querystring}
+    Log   ${prometheus_url}
+    Log   ${prometheus_user}
+    Log   ${prometheus_password}
+    Log   ${querystring}
     ${auth}=   IF   '${prometheus_password}' != '${EMPTY}'   Create List   ${prometheus_user}   ${prometheus_password}   ELSE   Set Variable   None
-    Create Session   prometheus   http://${prometheus_ip}:${prometheus_port}   timeout=${TIMEOUT}   max_retries=${MAX_RETRIES}   verify=false   auth=${auth}
+    Create Session   prometheus   ${prometheus_url}   timeout=${TIMEOUT}   max_retries=${MAX_RETRIES}   verify=false   auth=${auth}
     ${resp}=   GET On Session   prometheus   /api/v1/query?${querystring}   timeout=${TIMEOUT}
     Status Should Be   200   ${resp}
     RETURN   ${resp.json()}
