Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In this case it refers to monitoring the data that the participants will provide to DMaaP. Participants will send events to DMaaP which will be pulled by the CL_MonitoringSupervision_Service in to the runtime database. Monitoring service provides APIs to display the statistics data from runtime database to the Monitoring GUI. The data provided should include a reference id to the control loops that are instantiated on the participant, as well as the applications that have been instantiated as a part of that control loop for that participant. Data should also include the time that the application has started, state of it (running/terminated) and any other critical information which would help to determine the health of an instantiated control loop and its components. Idea is for the participant to provide events every certain period of time, similar to a health-check, in order to provide consistent monitoring.

...

PlantUML Macro
titleMonitoring Sequence Diagram
@startuml

control CL_Instance_Control
database Runtime_DB
participant Monitoring_Service
participant DMaaP
collections Participants

CL_Instance_Control -> DMaaP : INSTANTIATE Event (JSON/Yaml)
Participants -> DMaaP : Pulls its part of CL and starts instantiation of components

Participants -> DMaaP : Starts sending monitoring events once instantiation of components begins
note over DMaaP : Events are sent at set intervals

MonitoringSupervision_Service service-> DMaaP : Consistently pulls events off the monitoring topic
Monitoring_Service -> Runtime_DB : Puts and updates the monitoring data on the DB

@enduml

...

PlantUML Macro
titleBig Sequence Diagram
@startuml

actor Client
participant Commissioning_API
control CL_Instance_Control
database Runtime_DB
participant Supervision_Service
participant Monitoring_Service
participant DMaaP
collections Participants


==Instantation==

Client -> Commissioning_API : Fetch all Commissioned Control Loops
Commissioning_API -> Runtime_DB : Rest call to get Commissioned Control Loops
Runtime_DB -> Commissioning_API : Return Commissioned Control Loops
Commissioning_API -> Client : Provide the data
Client -> Client : Select CL for instantiation and provide config
Client -> CL_Instance_Control : Instantiate CL POST REST API call

alt case where Client sends commissioned CL id instead of the full CL in the body

CL_Instance_Control -> Runtime_DB : Fetch the Commissioned Control Loop from Models table
Runtime_DB -> CL_Instance_Control : Return the requested Commissioned Control Loop data

end

CL_Instance_Control -> DMaaP : INSTANTIATE Event (JSON/Yaml)
note over CL_Instance_Control, DMaaP : List of Participant ID's containing Participant Metadata Blocks
Participants -> DMaaP : Pulls its part of CL and tries to Instantiate


==Monitoring==

Participants -> DMaaP : Starts sending monitoring events \nOnce instantiation of components begins
note over DMaaP : Events are sent at set intervals, one per participant

MonitoringSupervision_Service -> DMaaP : Consistently pulls events off the monitoring topic
Monitoring_Service -> Runtime_DB : Puts and updates the monitoring data on the DB


==Supervision==

Supervision_Service -> Runtime_DBDMaap : Periodic check on monitoring data

alt CL successfully instantiated

Supervision_Service -> Client : Return Instantiation Successful

else CL failed to instantiate

... TIMEOUT CL state not changed to INSTANTIATED ...
Supervision_Service -> CL_Instance_Control : Timeout, error occured
CL_Instance_Control -> DMaaP : TEARDOWN Event (JSON/Yaml)
Participants -> DMaaP : Pulls its part of CL and starts Teardown
note over Monitoring_Service : Monitoring Service receives events and updates state
note over Supervision_Service : Supervision Service finds that status has changed
Supervision_Service -> Client : Return Instantiation Failed (http code and an error message) 

end
@enduml

...