Introduction

Monitoring structure

Host.it - Monitoring is composed of 3 inter-operative entities:

  • WebServer
  • Supervisor
  • Worker

WebServer

The Webserver component is based on the Hostit Agent. Is an API Interface to the MongoDB database of the Supervisor. Useful to populate and manipulate the database.

[dir: hostit-monitoring/hsm_webserver]

Supervisor

The Supervisor component coordinates the SLA queues. Controls the spawning of Workers, giving them URLs to check and other relevant parameters.

The spawning of workers is ruled by the delay or advance of the SLA queues. Delay and advance of the SLA queues are calculated by two parameters in the Supervisor config file:

  • delay_percentage = n
    if exstimated duration is more than scheduled duration + n %, the Supervisor spawns a new worker
  • advance_percentage = m
    if exstimated duration is less than scheduled duration - m %, the Supervisor kills a worker

N.B.: Available system resources can affect the spawning of workers.

Two kind of metrics (AKA services) are performed:

  • response_time
  • render_time (via Phantomas)

[dir: hostit-monitoring/hsm_supervisor]

Worker

The Worker component is the system basic entity, controlled by the Supervisor, based on SLA queues. It interacts with the Supervisor through specific APIs provided by the Supervisor. Each Worker is independent and saves data on InfluxDB on his very own.

[dir: hostit-monitoring/hsm_worker]

Definitions

SLA (Service Level Agreement)
SLA indicates the service of interest related to a maximum execution time and a tolerance for a single analysis.
CherryPy
An application server, a core component of the Supervisor.
Phantomas
A tool dedicated to the scripted rendering of web-pages, allowing the gathering of rendering performance metrics.
MongoDb
A nonrelational, document-oriented, NOSQL database.
InfluxDB
A time-based events specialized database.
Crank
Generalized Object based Dispatch mechanism for use across frameworks.