KPI:Availability Application

From OneCMDB

Contents

Overview

The Availability Example Application is an example of an application built on top of the OneCMDB Core.

Demo of Availability Application

This Example Application calculates one simple Key Performance Indicator (KPI) and currently has the following functionality:

  1. Continuously monitor online status of all servers registered in the CMDB
  2. Calculate Availability KPI (in percent) per server
  3. Display detailed online status history per server

Description

This application lists all servers registered in the CMDB and presents the Availability KPI (in percent) as well as current operational status (online or offline).

Add new servers via the demo of Inventory Application.

The algorithm for calculation of Availability uses a predefined time span, which by default is set to seven days. This can not be altered from the Example Application. However, the time span is defined in the underlying OneCMDB data model and can thus be changed by manipulating the model.

The algorithm also takes into account predefined Maintenance Windows, which also can be changed by manipulating the data model. The Availability Example Application uses the standard 'ping' command available in most OS releases to continuously ping all servers.
This is a pragmatic approach and has its limitations but we prefer to use it in an example application for its simplicity and ease of configuration.

The User Interface

The Availability Example Application presents the availability of all IP addresses registered in the CMDB for a given timespan.

Availability table report

The availability information for each IP address is presented as a percentage along with the hostname mapping to the IP address and the current availability status for the IP address.

Timespan

Per default, the timespan used for the availability calculations covers the last 7 days (this will be configurable in a future release).

Maintenance Windows

Per default, all servers have a maintenance window spanning from each Sunday morning at 00:00:00 AM until 03:00:00 AM (this will be configurable in a future release).
Availability starts to decrease as soon as downtime occurs outside of the maintenance window. In other words, the availability of a server is not affected if this server is unreachable during the maintenance window. For example, a server being down during all 3 hours of the maintenance window but up the rest of the time will have an availability of 100%.

Availability algorithm

Availability is calculated as followed:
<math> Availability = \frac{ \left(AST-DT \right)} {AST} \times 100 </math>
Where:

  • AST: agreed service time
  • DT: actual downtime during agreed service time

Availability Details

Clicking on the availability % displays the Availability Details page.

The following information is available:

  • IP Address the IP address being monitored.
  • Hostname the host name(s) mapping to the IP address (purely for user-friendliness).
  • Time Span From the date at which availability status information starts to be used for that IP@ (per default: 7 days ago).
  • Time Span To the date at which availability status information stops to be used for that IP@(per default: today).
  • Time Span the total number of hours between Time Span 'from' and 'to'.
  • Maintenance Window During Time Span the total number of hours the IP@ goes through a maintenance window during the chosen time span.
  • Agreed Service Time (AST) During Time Span the total number of hours the server is not in a maintenance window for the given time span.
  • Down Time During Time Span the total number of minutes the IP@ has been unreachable during maintenance windows for the given time span.
  • Down Time During AST the total number of minutes the IP@ has been unreachable during production time for the given time span.
  • Calculated Availability the actual availability % for this IP@ for the given time span. This is calculated using (Agreed Service Time (AST) During Time Span - Down Time During AST) / Agreed Service Time (AST) During Time Span * 100
  • Online History the up/down events for the IP@ during the given time span. This information is used to calculate AST and others.
  • Maintenance Window(s) During Time Span the date at which the maintenance windows have occurred during the chosen time span.


Implementation

Source Code

The Inventory application is written in Java using Spring Web framework and JSPs.
The source code will be made available with full comments that will explain how the application is built.
Come back soon for more information.

Community and support