Commit 2ad5c6c3 authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

Merge branch '11-update-documentation-with-current-metrico-logic' into 'develop'

Resolve "Update Documentation Sequence Diagram with current METRICO logic"

See merge request !7
parents f3df407b f8e4179c
Loading
Loading
Loading
Loading
Loading
+55 −27
Original line number Diff line number Diff line
@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

tmf_api -> actor: Retrieve Monitoring data from the updated Service

@enduml