Newer
Older
participant "OSOM" as osom
participant "TMF API" as tmf_api
actor -> tmf_api: Create Service Order Monitoring aaS
osom -> osom: Process order
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 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)
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
tmf_api -> actor: Retrieve Monitoring data from the updated Service
@enduml