Skip to content
Snippets Groups Projects
FlowDiagram.puml 4.13 KiB
Newer Older
trantzas's avatar
trantzas committed
@startuml
actor        "USER"              as actor
George Tziavas's avatar
George Tziavas committed
participant  "OSOM"               as osom
participant  "TMF API"            as tmf_api
trantzas's avatar
trantzas committed
queue        "Message Bus"                  as amq
participant  "METRICO" as metrico
trantzas's avatar
trantzas committed
participant  Prometheus           as prom
trantzas's avatar
trantzas committed
actor   -> tmf_api: Create Service Order Monitoring aaS
osom    -> osom: Process order
trantzas's avatar
trantzas committed
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
trantzas's avatar
trantzas committed
osom    -> amq: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD \n<color:green>payload: MeasurementCollectionJobFVO
trantzas's avatar
trantzas committed
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)
trantzas's avatar
trantzas committed
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
George Tziavas's avatar
George Tziavas committed
end
trantzas's avatar
trantzas committed
tmf_api -> actor: Retrieve Monitoring data from the updated Service

@enduml