...
Configure the service model.
The service model describes your data, which KPIs to generate and how to calculate them. A JSON representation is used to describe the model, which includes the following top-level objects:
dimension
tree
metric
kpi
threshold
(optional)
Configure the service model using a text editor, or in a KPI profile in the Desktop. To create a new KPI profile profile, click the New Configuration button in the upper left part of the Desktop the Desktop window, and then select KPI Profile from the menu.
Start with the
dimension
andtree
objects. The dimensions describe the fields of your data that are used for grouping and thetree
the relation between them. The identifying fields in the input data areregion
andcountry
. A region has one or more countries. The data type issales
. In the dimension object we specify each of our identifying fields as separate objects, with the datatype and field in the body.Scroll ignore scroll-viewport false scroll-pdf false scroll-office false scroll-chm true scroll-docbook true scroll-eclipsehelp true scroll-epub true scroll-html true falsetruefalsetruetruetruetruefalse xmlDimensions Page Properties hidden true Code Block language xml title Dimensions "dimension": { "Region": { "sales": "region" }, "Country": { "sales": "country" } }, "tree": { "tree1": { "Region": { "Country": { } } } }
Define the metrics using the amount field in the input data:
totalSales
- For total sales, sum up the amount for each record by using thesum
function on the expressionexpr
, which contains theamount
field.avgSales
- For average sales use theavg
function instead ofsum
.numSales
- To count the number of records, use the conditional functionisSet
in the expression. This function evaluates to 1 if there is a value inamount
or 0 if there is no value. Use the functionsum
to sum up the 1s and 0s.
Scroll ignore | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
Page Properties | |||||||
---|---|---|---|---|---|---|---|
| |||||||
|
Define the KPIs. The expected output is the total sales, average sales, and number of sales per region and country in 60 second periods.
Use the property node
to describe where in the topology the KPI should be calculated and windowSize
to set the period length. Use the names of the metrics defined above in the expr
property.
Scroll ignore | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
Page Properties | |||||||
---|---|---|---|---|---|---|---|
| |||||||
|
Combine all the objects above for a complete representation of the model.
Scroll ignore | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
Page Properties | |||||
---|---|---|---|---|---|
| |||||
|
If you have used configured the service model in an external text editor, open the Desktop and paste it into a KPI profile. Save the profile with the name SalesModel
in the folder kpisales
.
Create the real-time workflow. In this guide we will use Pulse agents to simulate sales data coming from three different sources, EMEA, AMERICAS, and APAC.
Add three Pulse agents and an Analysis agent.
Workflow - Pulse Agents
Configure the Pulse agents as follows:
- AMERICAS will send 1000 TPS - Set Time Unit to MILLISECONDS and Interval to 100
- EMEA will send 500 TPS - Set Time Unit to MILLISECONDS and Interval to 200
- APAC will send 250 TPS - Set Time Unit to MILLISECONDS and Interval to 400
To be able to identify the data, set the data to the region name.
Pulse agent configuration
The pulse agents only sends us a simple event containing the name of the region, the other data that will be used in the KPI calculations are generated in the connected Analysis agent.
The APL code below creates the input to KPI Management.
Scroll ignore scroll-viewport false scroll-pdf false scroll-office false scroll-chm true scroll-docbook true scroll-eclipsehelp true scroll-epub true scroll-html true falsetruefalsetruetruetruetruefalse APL code
Page Properties | |||||
---|---|---|---|---|---|
| |||||
|
Add a KPI agent and configure it to use the KPI profile that you created in step 1. Set Delay to 0.
Workflow - KPI agent
KPI agent configuration
- Add another Analysis agent for debugging of the KPIs.
Final workflow configuration
Add the APL code below to the Analysis agent.
Scroll ignore scroll-viewport false scroll-pdf false scroll-office false scroll-chm true scroll-docbook true scroll-eclipsehelp true scroll-epub true scroll-html true falsetruefalsetruetruetruetruefalse APL code Page Properties hidden true Code Block title APL code string format = "yyyy-MM-dd'T'HH:mm:ss:S"; consume { // input is KPIAggregatedOutput which contains a list of // KPIOutput list<kpimanagement.KPIOutput> kpis = input.kpiOutputUDRs; // loop the KPIs and debug string dateStr = ""; for (int i = 0; i < listSize(kpis); i++) { kpimanagement.KPIOutput kpi = listGet(kpis, i); dateToString(dateStr, dateCreateFromMilliseconds(kpi.periodStart * 1000), format); debug("Period start: " + dateStr + ", instance: " + kpi.instancePath + ", KPI: " + kpi.kpi + ", Value:" + kpi.value + ", Samples: " + kpi.sampleCount); } }
- Open the workflow configuration in the Workflow Monitor. Enable debugging and select events for the KPI agent and the Analysis agent that produces the debug output.
The calculated KPIs will be displayed in the debug output in the Workflow Monitor.
Note title Note! It will take a minute before the output is displayed due to the configuration of the
windowSize
property in the service model.Scroll ignore scroll-viewport false scroll-pdf true scroll-office false scroll-chm true scroll-docbook true scroll-eclipsehelp true scroll-epub true scroll-html false Next: