com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_link3' is unknown.

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 

  1. 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.
  2. Number of orders received by each customer - The owner wants to know the no of orders received by each customer. 

Sample Guide

  1. Start WSO2 BAM server with default settings.
  2. Go to 'WSO2_BAM_HOME/samples/kpi-definition/' directory
  3. 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.

    ParameterDefault Value
    URLtcp://localhost:7611
    User Nameadmin
    Passwordadmin

    Now lets see how new values can be given as parameters 

    ParameterNew Value
    URLtcp://localhost:7612
    User Nameuser
    Passwordpass123

     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. Click Main and then click Add in the BAM Toolbox menu.

  6. Select Phone Retail Store Toolbox, and click Install

    add a BAM toolbox

  7. Click Main and then click List in the BAM Toolbox menu, to view the list of all installed toolboxes.

    list of BAM toolboxes

  8.   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

  9. Click on Main -> Gadgets -> View portal to see the populated gadgets on the summarized data.

    Phone models sales summary

    Sales summary by customers

The Hive script associated with the default KPI Monitoring sample has Cassandra port set as 9160. If you change the port offset, you should manually change the Cassandra port as well by following these steps:

  1. After installing the tool box, log in to the management console, select List sub menu under Analytics menu. This will open the Available Scripts window.
  2. Set "cassandra.port" = "9161" in the phone_retail_store_script and Save.
com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.