- Methods for calculating availability indicators
- Methodology for calculating availability of one CI by the calculated status of CI
- Methodology for calculating availability of Information system (a group of CIs) according to the calculated statuses of CIs
- Methodology for calculating availability of complex Information system based on the estimated availability of seperate ISs

- Methods for calculating impact indicators (Factor analysis)
- Methodology of factor analysis for calculating availability of one CI by the calculated status of CI
- Method of factor analysis for calculating availability of Information system (group of CIs) by the estimated status of CIs
- Method of factor analysis for calculating availability of a complex Information system according to the estimated availability of seperate ISs

To calculate availability for a period, *SA (Service Availability)*, a function of the problem state of CI over time `fProblem(t)`

is built, which takes one of 4 values:

- Value
`0`

– no problems corresponding to the filter were registered on the CI at the particular moment in time. - Value
`1`

– problem*(-s)*corresponding to the filter was registered on the CI at the particular moment in time. - The value
`N`

- CI is in an unattended state. - Value
`S`

- CI is in agreed maintenance mode.

To build the `fProblem(t)`

function:

- Take all the problems related to the selected CI over the interval under study. A
*problem*is a synthetic trigger (ST) state that is not`OK`

or`Disabled`

. The following cases are possible:- Problem states of ST that began before the beginning of the period under consideration, but ended inside it - their beginning is considered from the moment the period under consideration begins.
- Problem states of ST that began in the period under review, but ended outside it - their end is considered at the end of the period under consideration.
- Problem states of ST that began before the beginning of the period under consideration and ended beyond its limits - their beginning and end are equivalent to the beginning and end of the period under consideration.

- Filter problems according to a custom filter
*(CT name, tags, priority, duration)*. - Apply problems to the time series. As a result, set the value to
`1`

on areas where problems are fixed, and`0`

on areas without problems. - If it is required to take into account the maintenance mode, enter into the function the sections on which the CI was in the maintenance mode. Redefine the function in these sections
*(function value*.`S`

) - Clear the problem state function from areas where the CI was not serviced (unattended) according to
*SLA*. Sections where the CI was not served according to*SLA*are assigned the function value`N`

. - Find time spans of
*bouncing*- when the duration of the time span with the function value`1`

is less than the RTO (Recovery Time Objective) specified by the user. In these time spans, set the value of the function`fProblem(t)`

=`0`

.

As a result of these operations, in the general case, we should get the following indicators:

**timeNonWorking**– CI non-working time for the period under study. The value of the function is`N`

.**timeWorkingProblem**– time when the CI was in a state that did not meet*SLA*. The value of the function is`1`

.**timeWorkingService**– time of the agreed downtime, when the CI was in the maintenance mode during working hours. The value of the function is`S`

.**timeWorkingOK**– the time at which our CI met*SLA*. Function`fProblem(t)`

was in state`0`

.

Availability for the *SA* period is calculated using the formula:

`SA = timeWorkingOK / ( timeWorkingOK + timeWorkingProblem ) * 100%`

.

Then the unavailability of CI is given according to the formula `100% - SA`

.

For calculation of a CI group availability for a period, *SAG (Service Availability Group)*, a function of the problem state of CI over time `fProblem(t)`

is built for each CI included in the group. Further, the results of calculating the function `fProblem(t)`

for each CI are superimposed on each other, based on the following rules *(operations are commutative)*:

`fProblem1` | `fProblem2` | `fGroupProblem` |
---|---|---|

0 | 0 | 0 |

0 | 1 | 1 |

0 | N | 0 |

0 | S | 0 |

1 | 1 | 1 |

1 | S | 1 |

1 | N | 1 |

N | N | N |

N | S | S |

S | S | S |

⚠️ Non-working time is set for the whole group and, in the calculation, is taken into account for each CI.

As a result, we get the function `fGroupProblem(t)`

, from which we can get the following 3 indicators:

- timeGroupService is the time when
`fGroupProblem(t)`

=`S`

; - timeGroupOK is the time when
`fGroupProblem(t)`

=`0`

; - timeGroupProblem – time when
`fGroupProblem(t)`

=`1`

;

Thus, the availability of a CI group is calculated by the formula:

`SAG = timeGroupOK / ( timeGroupOK + timeGroupProblem ) * 100%`

.

Then the unavailability of the CI group is given according to the formula `100% - SAG`

.

The availability of a complex Information system, *SAMg (Service Availability Multigroup)*, is calculated as a weighted average of the availability of all smaller information systems included in it *(CI groups)*.

- For the calculation, it is necessary to determine the weight coefficient for each IS,
`ki = Wi / ∑Wi`

, where`Wi`

is the weight of the information system specified by the user. - Calculate
*SAG*for all ISs for the specified period.

The availability of a complex IS is calculated by the formula:

`SAMg = ∑( ki * SAGi )`

.

Then the unavailability of a complex IS is given according to the formula `100% - SAMg`

.

Factor analysis allows you to determine which factors-*problems* influenced the calculation of availability for the reporting period, and compare the degree of this influence with other factors-*problems*.

Assumptions of the methodology:

- In the methodology for determining availability by the estimated status of CI, in contrast to the methodology for CI Health, it is impossible to determine the weight of a particular problem if they occurred simultaneously. Thus, the only calculated parameter is the duration of problems.
- If two or more problems occurred at the same time, then for the problem period the duration of each is multiplied by the coefficient
`1/N`

, where`N`

is the number of problems that occurred simultaneously. - To work with factor analysis, problems are supposed to collapse into groups
*(for example, by synthetic trigger ID, source, etc.)*. Basically, the methodology should set the impact metric*(percentage of the total duration)*for each problem included in the calculation.

Calculation method:

- It is necessary to take the function
`fProblem(t)`

constructed during the*SA*calculation. - For each time span, where the final function
`fProblem(t)`

=`1`

, make a list of CI problems, on the basis of which this time span was assigned a value. When compiling the list, it is necessary to take into account the problems that began or ended outside the function range. - Assign an impact metric to the problem. It is equal to the duration of the problem in the time span, multiplied by the weight. If there was only one problem on the segment, then it is set to
`1`

, in case of multiple problems -`1/N`

, where`N`

is the number of problems that occurred simultaneously. - When calculating, the following points should be taken into account:
- In the general case, in the same time span, but over different intervals, the weight of the problem may change due to the emergence of new problems.
- The same problem may be present in different segments of
`fProblem(t)`

=`1`

.*For example, if the problem started on Friday and ended on Tuesday, but the CI is not serviced according to SLA on weekends.*

- As a result, a list of problems that participated in the calculation of the
`fProblem(t)`

function should be formed. At the same time, for each problem, the metric of influence on*SA*should be calculated. - It is necessary to verify the calculation. The sum of the impact metrics of all problems must equal
`timeWorkingProblem`

. - The relative influence value is displayed as a percentage. To do this, the impact metric is divided by
`timeWorkingProblem`

and multiplied by`100%`

.

Factor analysis allows you to determine which *CI* factors influenced the calculation of availability for the report period, and compare the degree of this influence with the rest of the *CI* factors.

Assumptions of the methodology:

- For group calculation, the primary factors are the CIs themselves, and not problems as for the factor analysis of the availability of a single CI.
- The methodology provides for the transition from factors-
*CIs*to factors-*problems*. But for this it is necessary to make a factor analysis for each CI included in the calculation. - In the methodology for determining availability by the estimated status of CI, unlike the methodology for health, it is impossible to determine the weight of one or another CI if the problems associated with them occurred simultaneously. Thus, the only parameter will be the duration of the problematic status of the CI.

Calculation method:

- It is necessary to take the functions
`fProblem(t)`

for each CI included in the calculation. - Calculate the weight coefficients of time spans for each CI, where
`fProblem(t)`

=`1`

.- To do this, it is necessary to determine which other CIs in a particular time span had the value of the function
`fProblem(t)`

=`1`

. - On the time segments, the weight coefficient is equal to
`1/N`

, where`N`

is the number of CIs that were simultaneously in a problem state. If only this CI was in a problem state, then the weight is`1`

. - As a result, you should get a list of time spans with different weights
*(one interval can have several spans)*.

- To do this, it is necessary to determine which other CIs in a particular time span had the value of the function
- Calculate the metric of the influence of each CI as the sum of the products of the duration of all received time spans and their weight coefficients.
- Verify the received calculation. The sum of the impact metrics must equal
`timeGroupProblem`

. - The relative influence value is displayed as a percentage. To do this, the impact metric is divided by
`timeGroupProblem`

and multiplied by`100%`

. - To move from factors-
*CI*to factors-*problems*, it is necessary:- Conduct a factor analysis on the availability of each CI included in the calculation. The result is a list of problems for each CI and relative impact of the problems on those CIs.
- Make a general list of all problems.
- For each problem, determine its relative impact on the group calculation. To do this, it is necessary to multiply its relative influence on the CI by the relative influence of the CI itself. If the problem occurred on several CIs, then it is necessary to sum the obtained products of relative influences.

Factor analysis for a group of Information systems allows you to determine how much a CI group influenced the complex IS as a whole during the reporting period.

For group calculation, the primary factors are the estimated availability of the included ISs, and not the CIs themselves, as for the factor analysis of the IS availability *(group of CIs)*.

Calculation method:

- It is necessary to take the time the IS was in the problematic status -
`timeGroupProblem`

, for each IS included in the calculation. - For each IS, calculate the weight coefficients
`ki = Wi / ∑Wi`

, where`Wi`

is the weight of the information system specified by the user. - Multiply these numbers.
- The relative influence value is displayed as a percentage. To do this, the impact metric is divided by
`timeMultigroupProblem`

and multiplied by`100%`

. - Thus, the influence of
*i*-th information system on a complex IS is calculated by the formula`ki * timeGroupProblemi * 100% / timeMultigroupProblem`

.