Monitoring service is architected as multi-tenant, scalable service inside CORD by leveraging XOS service construction toolkit, where each service is composed of a "Service Controller" and set of "Service Instances".

Fig1: Monitoring service as a mutli-tenant service inside CORD

 

Typically, “Service Controller” components run as part of XOS platform on the head node and “Service Instances” that implement the Service will be instantiated on CORD Compute cluster.

A "Service Controller" is composed of:

Fig2: Monitoring service controller and service instances

 

When monitoring service is instantiated through XOS TOSCA or REST APIs, the "Service Controller" spins up the monitoring service virtual machine instance(s) on the compute node.

The monitoring service virtual machine instance(s) are launched using pre-built image as defined at "Build Monitoring service instance custom image"

High level view of different software components running in Monitoring service Instance:

Fig3: Monitoring service instance components

 

 

The architecture is modular such that components in this stack can be replaced with some other high performing components.

Some examples where monitoring service is instantiated with different database backends:

  

Deployment Model

Current CORD release supports deploying all monitoring service components in a single VM as shown below:

 

In order to support production environment, Monitoring service is capable of running in a scaled configuration (future work). A high level view of monitoring service deployment at scale: