@startuml FlowDiagram actor "ACTOR" as actor participant "OSOM" as osom participant "TMF API" as tmf_api queue amq as amq participant "METRICO" as metrico 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 \nqueue:? \npayload: ??? amq -> tmf_api: CREATE: TMF628 Measurement Collection Job \nqueue: MEASUREMENT_COLLECTION_JOB.CREATED \npayload: ??? tmf_api -> amq: PUBLISH EVENT: Monitoring Job Created\nqueue: MEASUREMENT_COLLECTION_JOB.CREATED \npayload: ??? amq -> metrico: RECEIVE EVENT: Monitoring Job Created\nqueue: MEASUREMENT_COLLECTION_JOB.CREATED \npayload: ??? metrico -> metrico: create job metrico -> amq: UPDATE TMF628 Measurement Collection Job\nqueue: MEASUREMENT_COLLECTION_JOB.UPDATE \npayload: ??? (maybe previous payload + JOB_ID) amq -> tmf_api: UPDATE TMF628 Measurement Collection Job\nqueue: MEASUREMENT_COLLECTION_JOB.UPDATE \npayload: ??? (maybe previous payload + JOB_ID) metrico -> metrico: Create a java job with refresh rate 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 performance indicator metrico -> amq : UPDATE TMF628 Measurement Collection Job\nqueue: MEASUREMENT_COLLECTION_JOB.UPDATE \npayload: ??? (maybe previous payload + METRICS) amq -> tmf_api: UPDATE TMF628 Measurement Collection Job\nqueue: MEASUREMENT_COLLECTION_JOB.UPDATE \npayload: ??? (maybe previous payload + METRICS) metrico -> amq : UPDATE: Related service to the Service Inventory\nqueue:? \npayload: ??? amq -> tmf_api: UPDATE: Related service to the Service Inventory\nqueue:? \npayload: ??? end @enduml