Key performance indicators (KPIs) are quantifiable measurements of the improvement or deterioration in the performance of an activity critical to the success of a business. They enable you to measure essential activities of your business so that you can see how these activities influence business results. For example, in a call center, the timely answering of customer calls is a key business activity. A KPI could be Average time for response to a customer call for the last 30 days. This KPI could have a target of less than one minute.
KPIs are usually aggregations of values across many instances, where the aggregation function can be average, maximum, minimum, sum, count (number of occurrences), or standard deviation. KPIs can also be based on expressions; for example, a Profit KPI could be a Revenue KPI minus an Expenses KPI.
When selecting business activities to monitor with KPIs, choose those that reflect the goals of your business, are critical to its success, and permit corrective action through early detection of problems. You can use KPIs to measure aspects of your business in relation to defined targets and sets of ranges. In WebSphere® Business Monitor, KPIs are compared with the target and ranges to determine the level of success.
You can define KPIs either in the Monitor Model editor or on the WebSphere Business Monitor dashboards. If you model the KPIs in the Monitor Model editor, there are some restrictions on the changes you can make in the dashboards.
A KPI can have a target, which is the exact value that the KPI should achieve. It can also have ranges, each of which is a span of possible values. Ranges can be specified either as a percentage of the target value or as an actual value. For each range, you specify the start value and the end value.
Start value | End value | Name |
---|---|---|
0 | 30 seconds | Excellent |
30 seconds | 1 minute | Good |
1 minute | 2 minutes | Fair |
2 minutes | 10 minutes | Poor |
Start value | End value | Name |
---|---|---|
0% | 75% | Unacceptable |
75% | 90% | Good |
90% | 110% | Excellent |
For several ranges to work properly, the start element of each row must equal the end element of the previous row, as shown in both examples.
avgOrderAmount < avgOrderAmount/unacceptable/endValuewhere avgOrderAmount is the ID of the KPI and unacceptable is the ID of the range.
You can also specify a color for each range. For example, you might want the unacceptable range to be red, the good range to be yellow, and the excellent range to be green.
The values for target and ranges that you specify in the Monitor Model editor are the initial values. An administrator can modify the target and personalize the ranges for KPIs that will be used in a dashboard. A user of a dashboard can also personalize the ranges. Triggers that reference these ranges will use the new value the next time the trigger is evaluated.
KPIs get their values at run time in one of two ways: either the value comes from a metric using an aggregation function, or the value comes from a calculation based on other KPIs or user-defined XPath functions. In the dashboards, these KPIs are called Aggregate KPIs and Expression KPIs.
Expression KPIs are defined by expressions that use other KPIs. For example, you could have a Total Profit KPI that subtracts the Total Cost KPI from the Total Revenue KPI. You can also define a KPI based on user-defined XML Path Language (XPath) functions. You can use XPath functions to retrieve KPI values from sources outside WebSphere Business Monitor.
When you define a KPI based on the aggregation of a metric, you decide whether you want to calculate the KPI using values collected from all versions of the model, including all previous and future versions, or using only the values from the most recent version of the model. In general, if the semantics of the KPI have not changed, include all versions. However, if a new version of the KPI has incompatible changes, choose only the current version.
You can choose to preserve the historical values of KPIs for viewing and analysis. In the KPI Manager widget, you will be able to create prediction models and use the collected historical data to predict future trends for the KPI. Using prediction models, you can take action before things go wrong rather than finding out afterwards.
Although you can enable or disable historical tracking in the KPI Manager widget, enabling tracking in the KPI model means that you can track the KPI history from the beginning.
When you define a KPI based on the aggregation of a metric, you can specify a limited time period over which the KPI value is calculated. The time period is based on a metric from the same monitoring context as the metric on which the KPI is based. The metric must have a type of Date or DateTime. For example, if you are monitoring a process, you might have a Start Time metric based on the arrival of the event that starts the process.
If you want to see the results from more than one month at the same time, define two KPIs in the model: one for the current month and one for the previous month. Then use a third KPI to compare them and display the result.
If you are measuring a period of time that crosses a daylight saving time boundary, you can optionally specify a location based on the time zone you choose. When the KPI is calculated, an hour will be subtracted or added as appropriate for that location.
When you define a KPI based on the aggregation of a metric, you can use other metrics as data filters to restrict the set of information that is included in the KPI calculation. For example, you might have a KPI called Average Price in London. You want to take the Price metric and average it, but you only want to use monitoring contexts for which the city is London. You select the City metric, select IN for the comparison operator, and type London for the value.
Alternatively, you could have a KPI that measures price values for which the city is either London or Toronto, or a KPI that measures price values in any city that starts with the letter L, or any city that occurs in a list of cities that you specify. As another example, you might be interested in calculating an Average Order Amount KPI when the Customer metric contains the value GOLD or SILVER but not when it contains other values. You can enter a list of values for comparison.
To send outbound events based on the value of the KPI achieving its target or exceeding a range, create triggers and outbound events in the KPI context. For example, if you have a KPI that expects an average order amount of $500, you could create an outbound event that is triggered when the average falls below $400. The trigger is evaluated based on a specific time interval or the arrival of a specific inbound event, and it has a condition that causes it to fire only when the average falls below the amount you specify.
The start values and end values of KPI ranges are frequently considered thresholds, which can be monitored by a trigger that fires when they are crossed. You must, however, define those triggers. A KPI value exceeding a KPI range boundary will not automatically cause a trigger to fire or an outbound event to be emitted
You do not need to create outbound events to be able to send alerts. Users in the dashboard can create alerts based on KPIs. Alerts that are created in the dashboards can also be based on predictions.