K1000 Software Metering

Using the K1000 Software Metering to report on software usage by user is a failure.  This is one area that Novell’s Zenworks does a really good job – sort of.  I won’t lie, with ZCM I had to really work to get my report.  It usually meant spending hours with Excel re-compiling the data into a usable report.  But the data was there to do it.

KACE on the other hand cannot do this for my environment.  The K1000 Software Metering has promise but I found two major flaws and one minor one.  First, here’s a screenshot of the report I made.

Software Metering Report

At first glance the report looks great.  Look again.

Software Metering Report Again

Major Flaw #1.  While the last logged in user is recorded into the database, it is not tied to the software in any way, shape, or form.  You can add it on to the report like I did here, but it doesn’t mean anything.  Whom ever logged on last to a machine is whose name shows up.  KACE tracks metering by machine only, not user.

Major Flaw #2.  Metering tracks the running process.

Task Manager Process List

The metering process looks for photoshop.exe and if the KAgent finds it running it logs the event.  But is that Photoshop from CS 6, CS4, or Elements?  It doesn’t know.  It shows on the report as CS6 but that is only because I associated the meter with CS6.

Minor Flaw – the meter doesn’t know any difference between 32bit photoshop and 64bit photoshop.

Windows Task manager Process List 32bit Photoshop

Windows Task Manager knows the difference and puts *32 on the process list.  But KACE picks it up as photoshop.exe and sums the usage together.  32bit, 64bit, as far as the K1000 is concerned they are the same.

Using MySQL WorkBench

When I started looking at the reporting engine in the K1000 I quickly realized that the KACE people missed building a decent report builder.  What you get is the ability to put in your own SQL.  I asked to see some documentation on the database or some guide on how to get out what I was looking for.  The KACE answer was to use MySQL WorkBench and look at the actual DB.

So that is what I did for the software meter.  The KACE Agent stores the application usage into a table named METER_COUNTER.

MySQL WorkBench METER_COUNTER table

You will notice that the MACHINE_ID is what the usage data is linked to.  Also it creates a monthly entry.  WINDOW_BEGIN is set to the first of the month.  LAST_LOGGED is the date the KAgent last tracked use.  It then sums the minutes together for the month and increments the TIMES_LAUNCHED.  Next month another entry is created with the WINDOW_BEGIN set to the first day of the month.

So even if I pulled the data out every day I would have to do work to get just the number of launches and minutes used for a single day.  I have KIOSK machines that many people log in and out of every day and figuring out who did what would take a bunch of work.

Ideally there should be a single entry for each use WITH the user.  The SQL could then SUM the use by user when you run the report.  That does take a lot more DB space to hold the data that way.  At a minimum it really needs a user entry too.

Setting Up K1000 Software Metering

In the Management Center under Asset, Assets I created a Software Asset and a License Asset.  These are then tied to the Meter.

Asset Software

Software Asset

Software Asset Detail

In Assets add a new Software Asset.  Give it a name.  Then in the Filter box type in something to narrow the search.  Since I am picking on Adobe that is what I typed in the Filter.  Then the drop down only lists the software that is from Adobe.

This list comes from the inventory that the KAgent reports back.  You need to let the inventory run on your machines before you try setting this up.

You can label the asset too.  Again, a pet peeve of mine is that you have to go make the label elsewhere and then you can use it.  KACE really should have added a button to create the label every place where you can assign a label.

License Asset

License Asset Detail Part 1

Create the License Asset and give it a name,n license count, add the software and the computers.

License Asset Detail Part 2

You then set the license model and can give it a product key, set the purchase date, PO, notes, etc.

Save the license.

Software Meter

Software Meter

I want to track the use of my adobe applications.  They are in a suite license but I find that some users only use one application.  By tracking what the users actually do I can buy appropriate licenses.  Suite license for users that use at least 2 of the apps.  Photoshop licenses for those that only use photoshop.  The process for each app is the same.

Inventory the machines.  Go run the application and figure out what the process name is.  Task Manager will show you this.  Then in the Management Center, Asset, Metering tab you create a new Software Meter.

Software Meter Detail

You pick the process from the Select Process drop down.  You may find that you have to filter or uncheck the Limit List to 20 Processes.  Then grab the Associated Software asset from the drop down.  And Save.

The Clear Counters button removes the entries from the METER_COUNTER table.  Be careful with this.  Once the data is cleared it is gone.  Forever.

Creating the Meter Report

Meter Report

In the Management Center under Reporting create a new report called Metering Report.

Meter Report Details

Assign it to the Metering category and in the SQL Select Statement add the SQL:

SELECT M.PROCESS_NAME AS METER_PROCESS,
S.NAME AS SOFTWARE_NAME,
MA.NAME AS MACHINE_NAME,
MC.TIMES_LAUNCHED,
MC.MINUTES AS MINUTES_USED,
MA.USER, MA.USER_FULLNAME,
MC.LAST_LOGGED
FROM METER M
JOIN METER_COUNTER MC ON MC.METER_ID = M.ID
LEFT JOIN ASSET S ON S.ID = M.SOFTWARE_ID
JOIN MACHINE MA ON MA.ID = MC.MACHINE_ID
ORDER BY MA.NAME;

Then save the report.  When you run the report you will start seeing data for the applications you are tracking.

For those who give a PC to a user and that user only uses that machine then this report will be accurate.