diff --git a/Documentation.md b/Documentation/Documentation.md
similarity index 100%
rename from Documentation.md
rename to Documentation/Documentation.md
diff --git a/Documentation/FlowDiagram.puml b/Documentation/FlowDiagram.puml
new file mode 100644
index 0000000000000000000000000000000000000000..10dc57e0558e088b99ca36a6228ac747dcc984f8
--- /dev/null
+++ b/Documentation/FlowDiagram.puml
@@ -0,0 +1,34 @@
+@startuml FlowDiagram
+actor        "ACTOR"              as actor
+participant  "OSOM"               as osom
+participant  "TMF API"            as tmf_api
+queue        amq                  as amq
+participant  "Monitoring Service" as smon
+participant  prometheus           as prom
+
+
+actor   -> tmf_api: CREATE: Service Order Monitoring aaS
+osom    -> osom: PROCESS ORDER
+osom    -> tmf_api: CREATE: service instance of monitoring aaS (CFS)
+osom    -> tmf_api: CREATE: service instance of monitoring aaS (RFS)
+
+osom    -> amq: CREATE: TMF628 Measurement Collection Job
+amq     -> tmf_api: CREATE: TMF628 Measurement Collection Job
+tmf_api -> amq: PUBLISH EVENT: Monitoring Job Created
+amq     -> smon: RECEIVE EVENT: Monitoring Job Created
+smon    -> smon: create job
+smon    -> amq: UPDATE TMF628 Performance Indicator Job
+amq     -> tmf_api: UPDATE TMF628 object
+
+smon -> smon: Create a java job with refresh rate
+group "java job"
+    smon -> smon   : set how often job is done
+    smon -> prom   : send prom req
+    prom -> smon   : reply to prom req
+    smon -> smon   : parse data from reply and cast them to performance indicator
+    smon -> amq    : "UPDATE: TMF628 object"
+    amq  -> tmf_api: "UPDATE: TMF628 object"
+    smon -> amq    : "UPDATE: Related service to the Service Inventory"
+    amq  -> tmf_api: "UPDATE: Related service to the Service Inventory"    
+end
+@enduml
diff --git a/pom.xml b/pom.xml
index faa074bab0207287f57150235ea1cdd29adec52c..ab42bdf9c800c37c2934a71d38989bd6202f8423 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,6 +78,11 @@
 			<artifactId>org.etsi.osl.model.tmf</artifactId>
 			<version>${org.etsi.osl.model.tmf.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.etsi.osl</groupId>
+			<artifactId>org.etsi.osl.centrallog.client</artifactId>
+			<version>${org.etsi.osl.centrallog.client.version}</version>
+		</dependency>
 
 <!-- Lombok -->
 		<dependency>
diff --git a/src/main/java/org/etsi/osl/metrico/MetricoRouteBuilder.java b/src/main/java/org/etsi/osl/metrico/MetricoRouteBuilder.java
new file mode 100644
index 0000000000000000000000000000000000000000..96e060db4e9827f1926b5c79b19a2e826ba8fd2e
--- /dev/null
+++ b/src/main/java/org/etsi/osl/metrico/MetricoRouteBuilder.java
@@ -0,0 +1,45 @@
+package org.etsi.osl.metrico;
+
+
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.etsi.osl.metrico.prometheus.PrometheusQueries;
+import org.etsi.osl.metrico.reposervices.JobRepoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+import org.etsi.osl.centrallog.client.CentralLogger;
+
+@Configuration
+@Component
+public class MetricoRouteBuilder extends RouteBuilder {
+
+    private static final transient Log logger = LogFactory.getLog(MetricoRouteBuilder.class);
+
+    final JobRepoService jobRepoService;
+    private final PrometheusQueries prometheusQueries;
+
+    public MetricoRouteBuilder(JobRepoService jobRepoService, PrometheusQueries prometheusQueries) {
+        this.jobRepoService = jobRepoService;
+        this.prometheusQueries = prometheusQueries;
+    }
+
+    @Value("${MEASUREMENT_COLLECTION_JOB_CREATED}")
+    private static String MEASUREMENT_COLLECTION_JOB_CREATED;
+
+    @Value("${MEASUREMENT_COLLECTION_JOB_RESPONSE}")
+    private static String MEASUREMENT_COLLECTION_JOB_RESPONSE ;
+
+    public  void configure() throws Exception{
+        from(MEASUREMENT_COLLECTION_JOB_CREATED)
+                .log(LoggingLevel.INFO, log, MEASUREMENT_COLLECTION_JOB_CREATED + "message received!")
+                .to("log:DEBUG?showBody=true&showHeaders=true")
+                .process(exchange -> prometheusQueries.startPeriodicQuery())
+                .setBody(simple("Message received and processed"))
+                .to(MEASUREMENT_COLLECTION_JOB_RESPONSE);
+
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 9210047bcd9ac9a8d71da8967c0b722cc54e170a..07b2eaca893fda440a4b0c79a853f411a53487c8 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -59,4 +59,14 @@ logging:
     console: "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
     file: "%d %p %c{1.} [%t] %m%n"
     
-scheduling.enabled: true
\ No newline at end of file
+scheduling.enabled: true
+
+#TMF QUEUES
+PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID: "jms:queue:PM.GET.MEASUREMENTCOLLECTIONJOB_BY_ID"
+PM_GET_MEASUREMENT_COLLECTION_JOBS: "jms:queue:PM.GET.MEASUREMENTCOLLECTIONJOBS"
+PM_ADD_MEASUREMENT_COLLECTION_JOB: "jms:queue:PM.ADD.MEASUREMENTCOLLECTIONJOB"
+PM_UPDATE_MEASUREMENT_COLLECTION_JOB: "jms:queue:PM.UPD.MEASUREMENTCOLLECTIONJOB"
+
+# COMMON QUEUES
+MEASUREMENT_COLLECTION_JOB_CREATED: "jms:queue:MEASUREMENT_COLLECTION_JOB.CREATED"
+MEASUREMENT_COLLECTION_JOB_RESPONSE: "jms:queue:MEASUREMENT_COLLECTION_JOB.RESPONSE"
\ No newline at end of file