diff --git a/Documentation/FlowDiagram.puml b/Documentation/FlowDiagram.puml index 288b565f4542eff08ec4397057974fce7fe507f6..2334bd61820cbec2071d2063a1eb824a72aa0d4d 100644 --- a/Documentation/FlowDiagram.puml +++ b/Documentation/FlowDiagram.puml @@ -1,39 +1,67 @@ -@startuml FlowDiagram -actor "ACTOR" as actor +@startuml +actor "USER" as actor participant "OSOM" as osom participant "TMF API" as tmf_api -queue amq as amq +queue "Message Bus" as amq participant "METRICO" as metrico -participant prometheus as prom +participant Prometheus as prom -actor -> tmf_api: CREATE: Service Order Monitoring aaS -osom -> osom: PROCESS ORDER +actor -> tmf_api: Create Service Order Monitoring aaS +osom -> osom: Process order -osom -> tmf_api: CREATE: service instance of monitoring aaS (RFS)(Initial Status: Reseved) -osom -> tmf_api: CREATE: service instance of monitoring aaS (CFS)(Initial Status: Reseved) +osom -> tmf_api: Create Service instance of monitoring aaS (CFS) (Initial Status: Reserved) +osom -> tmf_api: Create Service instance of monitoring aaS (RFS) (Initial Status: Reserved) +osom -> amq: Create Resource Message \n<color:green>jms:queue:CATALOG.ADD.RESOURCE \n<color:green>payload: Status = "Reserved" & Characteristic _MT_MCJ_REF = "PENDING" +amq -> tmf_api: LISTENS FOR: Create Resource Message \n<color:green>jms:queue:CATALOG.ADD.RESOURCE +tmf_api -> tmf_api: Create Resource +tmf_api --> amq: RESPONSE: Resource +amq --> osom: RESPONSE: Resource -osom -> amq: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJobFVO -amq -> tmf_api: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJobFVO (Here I can find the MCJ ID) -tmf_api -> amq: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJob (Here I can find the MCJ ID) -osom -> tmf_api: CREATE: Resource Instance (Initial Status: Reseved)(associate to RFS)(add the MCJ UUID) -amq -> osom: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJob (Here I can find the MCJ ID) -tmf_api -> amq: PUBLISH EVENT: Monitoring Job Created\n<color:green>topic: PM_MEASUREMENT_COLLECTION_JOB_CREATED\n<color:green>payload: Measurement Collection Job Ref -amq -> metrico: RECEIVE EVENT: Monitoring Job Created\n<color:green>topic: PM_MEASUREMENT_COLLECTION_JOB_CREATED\n<color:green>payload: Measurement Collection Job Ref -metrico -> tmf_api: fetch Measurement Collection Job from ref -tmf_api -> metrico: fetch Measurement Collection Job from ref -metrico -> metrico: create METRICO job -metrico -> amq: UPDATE Measurement Collection Job Status +osom -> amq: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD \n<color:green>payload: MeasurementCollectionJobFVO +amq -> tmf_api: LISTENS FOR: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD +tmf_api -> tmf_api: Create Measurement Collection Job (MCJ) +tmf_api -> amq: Publish Measurement Collection Job Creation Event\n<color:green>jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.CREATE\n<color:green>payload: Measurement Collection Job Ref +tmf_api --> amq: RESPONSE: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD \n<color:green>payload: MeasurementCollectionJob (Includes MCJ ID) -group "java job" - metrico -> metrico : set how often job is done - metrico -> prom : send prom req - prom -> metrico : reply to prom req - metrico -> metrico : parse data from reply and cast them to data access endpoint +amq --> osom: RESPONSE: MeasurementCollectionJob +osom -> tmf_api: Update RFS \n<color:green>(Characteristic _MT_MCJ_REFID = MCJ ID) \n<color:green>(associate with RFS) + +amq -> metrico: LISTENS FOR: Measurement Collection Job Creation Event\n<color:green>jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.CREATE\n<color:green>payload: Measurement Collection Job Ref +metrico -> amq: Retrieve Measurement Collection Job by ID\n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID\n<color:green>payload: Measurement Collection Job ID + +amq -> tmf_api: LISTENS FOR: Retrieve Measurement Collection Job by ID\n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID +tmf_api --> amq: RESPONSE: Measurement Collection Job + +amq --> metrico: RESPONSE: Measurement Collection Job + +metrico -> metrico: create METRICO job from Measurement\nCollection Job and get its state + +metrico -> amq: Update Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE\n<color:green>payload: Measure Collection Job (update execution state) +amq -> tmf_api: LISTENS FOR: Update Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE + +metrico -> amq: Retrieve Service by ID Message\n<color:green>jms:queue:CATALOG.GET.SERVICE\n<color:green>payload: MCJ Producing Application ID (RFS ID) +amq -> tmf_api: LISTENS FOR: Retrieve Service by ID Message\n<color:green>jms:queue:CATALOG.GET.SERVICE +tmf_api --> amq: RESPONSE: Service (RFS with related Resource) +amq --> metrico: RESPONSE: Service (RFS with related Resource) + + +metrico -> amq: Update Resource Message\n<color:green>jms:queue:CATALOG.UPD.RESOURCE\n<color:green>payload: Characteristic _MT_MCJ_REF = MCJ ID \n<color:green>& Status = "AVAILABLE" +amq -> tmf_api: LISTENS FOR: Update Resource Message\n<color:green>jms:queue:CATALOG.UPD.RESOURCE +tmf_api --> amq: RESPONSE: Updated Resource +amq --> metrico: RESPONSE: Updated Resource + +group "METRICO job" + metrico -> metrico : Set job schedule and interval + metrico -> prom : Send Prometheus query + prom --> metrico : Prometheus response + + metrico -> amq : Update Service Message\n<color:green>jms:queue:CATALOG.UPD.SERVICE \n<color:green>payload: Characteristic named MCJ.outputFormat \n<color:green>is updated with Prometheus response + amq -> tmf_api: LISTENS FOR: Update Service Message\n<color:green>jms:queue:CATALOG.UPD.SERVICE - metrico -> amq : UPDATE: Related service to the Service Inventory\n<color:green>queue:jms:queue:CATALOG.UPD.SERVICE \n<color:green>payload: ServiceUpdate, serviceId - amq -> tmf_api: UPDATE: Related service to the Service Inventory\n<color:green>queue:jms:queue:CATALOG.UPD.SERVICE \n<color:green>payload: ServiceUpdate, serviceId end -@enduml \ No newline at end of file +tmf_api -> actor: Retrieve Monitoring data from the updated Service + +@enduml