Introduction
The Monitors domain enables the possibility to administrate and schedule containers to monitor according to the specific needs.
#
OverviewThe Monitors domain mainly consists of the following four objects:
- ModelDefinition
- Model
- Monitor
- MonitorJob
#
ModelDefinitionThe ModelDefinition object is the one that points directly to where a Docker image is stored, so it is known where to fetch the container from. The object contains a name and a version so it is possible to distinguish the different versions of a container. It also has a location attribute to indicate whether the container is stored on the Azure Container Registry (ACR) or externally. If it is stored externally the exact location of the container should be specified in the URI attribute.
#
ModelOnce ModelDefinitions are in the system, it is possible to setup a Model around a specific ModelDefinition. The Model should hold the information about which parameters the container can be executed with along with their default values. To be more specific, the Model has two parameter attributes, namely staticParameters and configurableParameters which are key value pairs of strings to indicate the name and value of the parameters of the container. The static parameters will not be possible to change in a Monitor while the configurable parameters can. On the Model object it is also possible to specify the default number of cpuCores, amount of memory, number of gpuCores, and which GPU to use.
The Model can also hold information on which plants or mainsystems the Model can be applied on, as well as which type of data it operates on.
#
MonitorWhen the Model is defined it is possible to create a Monitor based on a Model, where the configurable parameters can be changed as well as the execution options. Now a triggerSchedule can be defined to schedule how often the container should run with the specified parameters.
On the Monitor is also possible to add some Controllers with some Conditions. These can be used to specify what should happen if the specified conditions are met.
#
MonitorJobWhen a Monitor is triggered, a MonitorJob is created. This MonitorJob holds all the static parameters from the Model and the configurable parameters from the Monitor. The combination of those will be injected as environmental variables in the execution of the container.
If the MonitorJob is based on a ModelDefinition where the location is ACR, then the MonitorJob is replicated to the DataProcessing domain and will be executed automatically. If the location is External, then the MonitorJob should be picked up by an external system which will take care of the execution. And then it is the external system's job to report the status of the job back to AIH.