WOW Usage Tracking is a separately licensed, fee based add on provided by PlanetJ Corporation. Usage Tracking provides the ability to “track” who is executing operations along with search parameters and internal values, track sign-on and sign-off, and track sessions. It can also be used to track the performance of your operations as well as give your developers an idea of which applications and operations are being used the most and the least. The tracked information is stored in a table (default name is TRACKING). The Usage Tracking add on also pairs up very well with PlanetJ's WOW Fusion Charts add on to provide graphical dashboards and charts for a better visual understanding of your tracking data.
Setting up the Usage Tracking Application
Running the Usage Tracking Application
Operation Performance Overview
Usage Tracking Properties and Configuring Tracking for Your Applications
Configuring Usage Tracking With Init Params
Tracking provides the ability to “track” who is executing operations along with search parameters and internal values, track sign-on and sign-off, and track sessions. The tracked information is stored in a table (TRACKING) in your WOW user library. To use WOW Tracking you must set up the wowperf65 library and insert a script into your web.xml file. Setup instructions differ depending on your metadata server:
http://localhost:8080/wow65/tracking/jsp/update.as400.jsp
No matter what type of server is used, you may need to add a script to your web.xml file if you plan on tracking a) User signons or b) user sessions. If tracking user sessions or user signons, the web.xml file for the web application requires an entry (insert after <description> tag) that points to either SessionTracker (when "sessions" are to be tracked) or SessionListener (for "user sign on" tracking):
"Session" tracking or "session" tracking combined with "sign on" tracking:
<listener>
<listener-class>planetj.dataengine.tracking.SessionTracker</listener-class></listener>
"Sign on" tracking only:
<listener><listener-class>planetj.dataengine.tracking.SessionListener</listener-class></listener>
After you get the wowperf65 library restored in your database, you will need to set up the usage tracking application, which provides a set of operations to analyze your tracking data. To work with the usage tracking application, you will first need to call the builder and reference your new wowperf65 library by using the ?_pj_lib=wowperf65 parameter. An example of a URL would be: www.testingserver.com/wow65/wowBuilder?_pj_lib=wowperf65. This will bring up your WOW Builder screen with the library set to wowperf65.
Notice the user library is referenced at the top of the page (it is set to wowperf65 in the image).
The next step is to sign in to the builder.
The E-mail should be set to: tracking@planetj.com
The Password should be set to: wow
NOTE: PlanetJ recommends that you change your password and/or E-mail sign-in after signing in and getting everything set up in the wowperf65 context. To change the password and/or the E-mail address run this SQL statement against your database:
UPDATE wowperf65.admin SET email = <email>, password = <pass> WHERE id = 9;
If you don't wish to change the email for signing in (tracking@planetj.com) just leave out the “email = <email>,” from the SQL, this will leave the email but will change the password to whatever you replaced the <pass> with.
Once logged in you should be taken to the Application page inside the builder. The Usage Tracking Application should be in there, it's called "WOW Tracking & Performance." This is the application that is set up to read from the tracking tables and overlay charts/graphs and dashboards to allow for better understanding of your tracking information.
You will need to go into the "Connections" tab and set up the connection so that the application is connecting to your metadata database. When you go into the "Connections" tab, you will see a connection called "TRACKING-PERFORMANCE." This connection will need to be edited to include your metadata database IP address as well as a valid User ID and Password for that database.
This is the edit screen for the connection. The fields with the red arrows next to them need to be filled in with your databases information, including a valid UserID and Password for the database.
Try starting the connection to verify settings. After the connection has been customized to connect to your database, the Usage Tracker is ready to use.
Your Usage Tracking Add-on comes with a fully functional tracking & performance application set up inside the user library (wowperf65). Once you have your connection set up and set tracking up on some operations and/or applications, you can use this usage tracking application to track your own data.
NOTE: The TRACKING table may contain sample data that was used when creating the Usage Tracker application. If the TRACKING table contains data, be sure to clean out the table before starting tracking, or this data will remain in the table and may impact your data.
As you can see, the Usage Tracking Application has 4 different menu items, "Usage" "Operation Performance" "WOW" and "Server". Each of these items are discussed in depth below.
The "Usage" section of the application contains operations that help developers understand the traffic and use of their WOW Applications and Operations. It also contains dashboards, charts and graphs to help put an image to the numbers.
There are four data operations in the Usage section, as well as two dashboards and seven chart operations. This overview will briefly explain each of these operations.
The "Operation Performance" section contains operations that provide needed information about performance. WOW Tracking records information such as database read time, UI generation time, result set read time and overall operation runtime. This section also contains charts and graphs to help put an image to the numbers.
There are 3 Chart operations along with 9 data operations in the Operation Performance section. This overview will briefly explain each of these operations.
The "WOW" section contains operations that deal with WOW Application performance. These operations help to detail the caching level of WOW operations and Possible Values Operations, a good way to improve performance.
There are 2 data operations in the WOW section. This overview will briefly explain each of these operations.
The final section, "Server", contains an operation that tracks the JVM of the server. Both Max and Current JVM are recorded and displayed in a stacked line chart, similar to the image below:
As you can see, the data can be filtered based on a Date Range.
Listed below are the new properties for the UsageTracking property group. Most of these properties can be specified (in the properties field) on both the application and operation levels (the signon property is an application ONLY property). Note that any tracking property assigned to an operation will override any tracking properties defined at the application level.
Property | Value | Description |
operation | TRUE | FALSE | If specified in the Application (as TRUE), activates tracking for all operations in the application (unless turned off (FALSE) in a specific operation). If specified in the operation, overrides property in Application. |
signon | TRUE | FALSE | If specified in the Application (as TRUE), activates tracking for users signing on to the application. This property can only be specified at the application level. |
table | table name | If specified in the Application, indicates the table to receive tracking entries for the application. If specified in the operation, overrides property in Application. Defaults to table TRACKING. |
schema | schema name | If specified in the Application, indicates the library/schema containing the tracking table. If specified in the operation, overrides property in Application. Defaults to the WOW user library (e.g. PJUSER64). |
Examples:
If you want to track user signons, you'll need the below configuration in the properties for the application to be tracked. You will also need the web.xml listener entry (from the setup instructions), which is needed for session timeouts (where an explicit sign off is not performed):
UsageTracking{
signon:TRUE;
}
To set up Usage Tracking on ALL operations within an application, your properties in your Application will have to look like this:
UsageTracking{
operation:TRUE;
}
If you want to track all operations except for 1 specific operation (or many specific operations), first set the above properties in your application. Next, for any operation to be excluded from tracking, change the operation properties as follows:
UsageTracking{
operation:FALSE;
}
If you don't want to track most of your operations, but instead just a few specific operations within applications, you would leave the application properties blank and just fill in the properties below in your operation:
UsageTracking{
operation:TRUE;
}
Notice the UsageTracking { } property is set in the properties field. In this example, it is set to track all the operations as well as signons and sign offs (because it was set on the Application, not a specific operation).
Here is an image of a sample set of properties in an Operation:
Notice the UsageTracking { } property is set in the properties field and, in this example, is set to turn tracking for this particular operation off (Operation:FALSE;)
Configuration settings for usage tracking can be set either in an Application’s properties or in the WOW init params. (More information on WOW Init params can be found here.)
The usage tracking init params are as follows:
Init Param Name | Data Type | Description |
wow.tracking.schema | text | The schema containing the table used to store tracking data. (Overridden by value in Application properties.) |
wow.tracking.table | text | The name of the table used to store tracking data. (Overridden by value in Application properties.) |
wow.tracking.expiration.days | integer | Entries in the tracking table may be automatically deleted by WOW after this many days. |
This section describes the fields in the TRACKING table, the data type inside those columns and the description of what the fields contain.
Item | Data Type | Description |
TRTYPE | CHAR (3) | SON = user signed on, SOF = user signed off, ROP = operation ran, NSE = new session created, ESE = session ended. |
TRSUBTYPE | CHAR (3) | Future use |
OPID | INT | The operation’s ID |
APPID | INT | The application's ID |
USERID | CHAR (50) | User Id that signed on to the application, if application is secured. |
SESSIONID | VARCHAR (50) | Unique session ID assigned to user's session. Can be used to tie together different tracking entries (especially when no user Id is available). |
IPADDR | VARCHAR (1000) | The users IP address that this request was executed from. Provides another layer of security. |
SPARMS | VARCHAR (1000) | All parameters specified by the user in search operations in KEY-VALUE relationship. For example: (“age=17, state=CA”) |
IPARMS | VARCHAR (1000) | All internal parameters such as association row values or sign on row values. |
DESC | VARCHAR (1000) | Optional description of activity |
STARTTIME | Timestamp | When operation started, used for tracking and also performance stats. Also provides timestamp when other entries added. |
ENDTIME | Timestamp | When operation completed. Used for performance measurements. |
STATUS | CHAR (1) | Used for workflow. Allows admin to flag operation for follow-up analysis. |
USERDEF1 | CHAR (10) | The user library that the operation was tracked from. |
USERDEF2 | CHAR (10) | User Defined |
DBTIME | BigINT | Time spent querying the Database (in milliseconds). |
UIGENTIME | BigINT | Time spent generating the UI (in milliseconds). |
RSTIME | BigINT | Time spent reading from the Result Set (in milliseconds). |
MAXJVM | BigINT | Max JVM Memory |
CURJVM | BigINT | Current JVM Memory |
CONTHD | INT | Number of concurrent users or threads at the time the operation was run. |