Ensuring Affordable Access to Complete Usage Data ENH Records Improved Reporting with an Enhanced...

17
Ensuring Affordable Access to Complete Usage Data ENH Records Improved Reporting with an Enhanced Debug Log

Transcript of Ensuring Affordable Access to Complete Usage Data ENH Records Improved Reporting with an Enhanced...

Ensuring Affordable Access to Complete Usage Data

ENH RecordsImproved Reporting with an Enhanced Debug Log

Motivation: SAM and Sources of Usage Data

• usage analysis is a critical element of a software asset management (SAM) program

– provides information to enable many software business issue decisions

• license manager log files are the primary source of usage data

– enterprise end users have little to no control over choice of license manager

• Flex is by far the dominant license manager in use today

Motivation: Flex Log Files

• the Flex license manager creates 2 log files– debug log

• ASCII, open text• basic information only

– no precise out/in matching– no license sharing details– no project information– no software version details– no token usage details

– report log• encrypted (closed), requires proprietary tools• more complete usage information

– no token usage details

Motivation: Goals

• complete– all necessary/desired information

• open– ASCII text– published specification

• can be validated– usable by ISVs for pay-per-use and compliance verification

• ease of deployment– fast deployment: daemon based not client based– ISV development effort must be low

• affordable– for ISVs: integration and licensing costs can not

discourage implementation– for end users: analysis tools must be priced to make

buy/develop decision easy

How It Works: Using Available Callbacks

• Flex ISV customers are provided callbacks they can use in their vendor daemons

• they can write whatever they want into the debug log during these callbacks

• the Enhanced Logging Initiative convened interested parties to define:

– a common format for enhanced records to be written into the debug log

– common source code for vendor daemon integration to write the enhanced records

How It Works: Registering ENH Functions to Callbacks

• if ISVs are already using callbacks– then add calls to ENH functions in the

existing callback functions

• if ISVs are not using the callbacks– then register the ENH functions to the

callback

• primary ENH functions– enh_init()

• called after lmreread• determines duplicate grouping

information from FEATURE lines in license files

– enh_out()• called in the pre-checkout filter• writes an ENH_OUT record

– enh_in()• called in the pre-checkin filter• writes an ENH_IN record

How It Works: Building an ENH Daemon

• add LTI provided source to daemon build environment (source tree and makefile)

• modify two files (enh_vendor.c and enh_vendor.h) to customize for the specific software vendor

• register or modify callbacks

• build -> test -> deploy

• approximate level of effort -> ½ day

How It Works: Enabling the ENH Daemon

• standard vendor daemon replacement process

• set environment variable<daemon>_ENH_RECORDS=1

How It Works: Processing ENH Records

• ENH_OUT records (pre-checkout)– process subsequent “standard” debug records to determine

• checkout or denied• queuing or update

• ENH_IN records (pre-checkin)– process subsequent “standard” debug records to determine

• linger or direct checkin

ENH Records: Basic Usage Logging Standard Fields

Field Type Description

feature string feature name

user string user logon ID

host string host name

timestamp string milliseconds since 00:00:00 Jan. 1, 1970 (UTC)

formatted as <seconds>.mmm

num_licenses int number of licenses requested/returned

session_handle int handle assigned by the license server

display string display details

addr string IP address of user

ENH Records: Basic Usage Logging Advanced Fields

Field Type Description

dup_group string duplicate grouping

N - none

S - site

UHDV - user, host, display, vendor

if V, then V:<vendor_code>

project string value of LM_PROJECT

sw_version string version of software checking out the feature

linger int linger period, in secondsENH_IN only

ENH Records: Basic Usage Logging Token System Fields

Field Type Description

actual_feature string name of actual software feature used for token feature checked out

actual_feature_count integer number of licenses of the actual feature used

ENH Records: Basic Usage Logging, ENH_OUT & ENH_IN

• ENH_OUT– output during the pre-checkout callback– provides all additional information needed for a detailed OUT or DENIED

hh:mm:ss (daemon_name) ENH_OUT: “feature” user@host timestamp num_licenses session_handle “display” addr dup_group “project” “sw_version” “actual_feature” “actual_feature_count”

• ENH_IN– output during the pre-checkin callback– provides all additional information needed for a detailed IN, or detection of a

“lingered” checkout

hh:mm:ss (daemon_name) ENH_IN: “feature” user@host timestamp num_licenses session_handle “display” addr dup_group linger “project” “sw_version” “actual_feature” “actual_feature_count”

ENH Records: Log File Integrity

• ENH_SECURITY– indicates that log file security is being used– indicates which digest technique is being used– output during the enh_init() function

hh:mm:ss (daemon_name) ENH_SECURITY: “digest_method”

• ENH_DIGEST– provides data for post processing to ensure log file integrity– obfuscated with a vendor specific pass phrase– output whenever one of two conditions is met

• length of text in digest• number of records in digest

hh:mm:ss (daemon_name) ENH_DIGEST: “digest”

ENH Records: Other Records

• ENH_VERSION– mandatory– output during enh_init()– provides ENH Records specification version

hh:mm:ss (daemon_name) ENH_VERSION: version

• ENH_VENDOR– optional– provides some information for ISV specific post analysis– output whenever vendor chooses, ignored by License Tracker

hh:mm:ss (daemon_name) ENH_VENDOR: “name” “value”

What It Costs

• for ISVs– source code license -> $0– source code royalties -> $0– integration effort -> approx. ½ day– for ISVs using ENH records for pay-per-use licensing or for compliance

validation, a license for the License Tracker toolset is required

• for enterprise end users– for ENH daemon -> up to ISVs, likely $0– for License Tracker software

• no additional cost -> just another data source

“You can only optimize -what you understand…

…and you can only understand -what you track!”

www.licensetracker.ca