Theory of Operation

Monitor monitors tools with licenses using live sampling and debug logs for denials, and it monitors tools with no licenses using wrapper scrips and a monitoring agent.

Live Sampling

For monitoring live license servers, data collection jobs are executed periodically. The default is every 30 seconds; this is because most daemons update the license usage every 30 seconds, but this is a configurable time frame. When a checkout is detected in the data collection job output, it is stored in the Monitor server memory. The checkout remains active if it is detected in the subsequent samples that are taken. Once the checkout disappears from the job output, it is considered checked-in by the server and is written to a checkouts data file for the current day. As new data is written to the data file, it is loaded into the database to use for historical reporting.

Debug Logs for Denials

For debug log parsing, parsing jobs are executed periodically. The default is every 12 hours, but this is a configurable time frame. (It can take a lot of time to parse the debug logs, especially if they are not rotated, so we recommend that you keep the existing time frame.) A denial is an instance in which a license application has been denied by the vendor daemon. The denial data is extracted and written to a denials data file for the current day, organized in a tag/daemon/server directory structure. Optionally, checkout data can also be obtained from the debug log, which will be stored in the checkouts data directory (licmon.swd/data/checkouts) and organized in a tag/daemon/server directory structure.

Note: This debug log data retrieval is not nearly as accurate as live sampling. We recommend you use live sampling, because the data used by Monitor will be inaccurate otherwise. This debug log data can be used to fill the gap if the sampling data is missing due to network or other issue.

Monitoring Tools with No License

With Monitor, you can also monitor applications and tools with no licenses.

There are two different methods for doing this. The first method uses a wrapper script or binary to perform license counting and restriction. The second method uses a monitoring agent running on every machine that may execute the unlicensed tool. The agent sends information about the processes running on the machine, which is used to detect running tools that have been configured to be monitored.

Operational Flow Graphic

The following graph provides an overview of the Monitor System.


Figure 1. System Diagram