Monitoring key Performance Indicators
Key Performance Indicators are quantifiable measurements that reflect the critical success factors of an organization. They will differ depending on the organization.
- A school may focus its Key Performance Indicators on graduation rates of its students.
- A Customer Service Department may have as one of its Key Performance Indicators, percentage of customer calls answered in the first minute.
- A Key Performance Indicator for a social service organization might be number of clients assisted during the year.
This sample develops and visualizes couple of KPIs (Key Performance Indicator) for a phone retail store. The developed KPIs are
- Quantity sold from each phone model - The owner wants to know the performance of his product line. Total sales for each of the phone model is required.
- Number of orders received by each customer - The owner wants to know the no of orders received by each customer.
Sample Guide
- Start WSO2 BAM server with default settings.
- Go to 'WSO2_BAM_HOME/samples/kpi-definition/' directory
Type 'ant' with in the directory from the console(This publishes the events to BAM)
Note that you can give custom values for parameters for Data receiver URL, user name and password. Default values of them are as follows.
Parameter Default Value URL tcp://localhost:7611 User Name admin Password admin Now lets see how new values can be given as parameters
Parameter New Value URL tcp://localhost:7612 User Name user Password pass123 Command with new values : ant -Durl=tcp://localhost:7612 -Dusername=user -Dpassword=pass123
Published event format (Stream definition)
{ "name" : "org.wso2.bam.phone.retail.store.kpi", "version" : "1.0.0", "nickName" : "Phone_Retail_Shop", "description" : "Phone Sales", "metaData" : [ { "name" : "clientType", "type" : "STRING" } ], "payloadData" : [ { "name" : "brand", "type" : "STRING" }, { "name" : "quantity", "type" : "INT" }, { "name" : "total", "type" : "INT" }, { "name" : "user", "type" : "STRING" }] }
Sample data
Event{ streamId = 'org.wso2.bam.phone.retail.store.kpi-1.0.0-97c75175-776d-4732-aa21-1b901c15778f', timeStamp = 1343723606667, metaData = [external], correlationData = null, payloadData = [Nokia, 2, 140000, Harry] }
4. Go to management console and login
5. Go to Main -> BAM Toolbox -> Add. Select 'Phone Retail Store Toolbox' and click on Install button.
6. Go to Main -> BAM Toolbox -> List. Wait until the 'KPI_Phone_Retail_Store' toolbox status changes to Installed.
7. Wait for some time, until script complete the first run after publishing the data. (Script will run in each minute)
If hive job is successful you will see the following message on BAM console.
Ended Job = job_local_0001
Execution completed successfully
Mapred Local Task Succeeded . Convert the Join into MapJoin
OK
8. Click on Main -> Gadgets -> View portal to see the populated gadgets on the summarized data.
Phone models sales summary
Sales summary by customers