Adding Custom Utilization
You can customize the Utilization calculation by adding a bean that implements the IUtilizationCalculator
interface. Here’s how to do this:
1. Create the Spring Bean
The IUtilizationCalculator
contains two methods that need to be overridden:
public interface IUtilizationCalculator {
/**
* @param copperContext
*
* Creates the utilization measure in the Limits cube using copper
*/
void createUtilizationMeasure(ICopperContext copperContext);
/**
* @param incident
* @return the utilization value as per the evaluation
*/
double computeUtilization(Incident incident);
The createUtilizationMeasure
method is used to create the utilization measure in the Limits cube. The computeUtilization
method is used to compute the
utilization
once a limit has been evaluated, and is visible in the Limits Status screen. The class DefaultUtilizationMeasureCalculator
handles the default calculation.
If you want to implement your own utilization calculation, for instance exposurelimitValueexposurelimitValue, the custom Spring Bean will look as follows:
@Component
public class MyUtilizationMeasureCalculator implements IUtilizationCalculator {
@Override
public void createUtilizationMeasure(ICopperContext copperContext) {
Copper
.measure(MEASURE_EXPOSURE)
.divide(Copper.measure(MEASURE_LIMIT_VALUE))
.per(Copper.level(DIM_TECHNICAL, HIER_INCIDENT_KEY, HIER_INCIDENT_KEY))
.doNotAggregateAbove()
.withName(MEASURE_UTILIZATION)
.withFormatter(PERCENT_FORMAT)
.publish(copperContext);
}
@Override
public double computeUtilization(Incident incident) {
return incident.getMeasureValue() / incident.getLimitValue()[0];
}
}
2. Import the Spring Bean
Once the bean is created, you need to import it to the project. Once done, Spring will use the custom bean for calculating the utilization.