Understanding SAS auditing and performance management

SAS programmers will immediately recognize the importance of reviewing the SAS log to provide insights into what’s going in a SAS program.  As a SAS Administrator, however, you rarely have the luxury of being able to sit down with a cup of coffee and read through the server logs to get a true picture of what’s happening across your organization.  (I be would be suspect of anyone who actually had that kind of time!)  So instead of the alternative (waiting for a user to report problems), there is a free tool at our disposal that will make quick work of the dozens, if not hundreds, of logs that SAS can generate across the various SAS platform servers – the Auditing and Performance Management (APM) package.

I originally wrote about "Auditing and Monitoring SAS Performance" back in 2009 when it was first being introduced and subsequently presented a webinar on "How is my SAS Performing?" .  I’m surprised when I talk with SAS Administrators that they are still unaware of the capabilities provided with the APM package, so let’s first start with an example. In the simplest case, a user might submit a basic SAS program that includes a few procedures (or PROCS):

proc sort data=sashelp.class out=WORK.class;
  by gender age;

proc print data=WORK.class;

The user obviously cares about getting the data sorted and printed.  However, an administrator might care about which datasets were used, who submitted the program, which libraries were accessed, which procedures were used, how long each step took, how many resources were consumed (CPU, memory, I/O) and so on.  As you can see, even from this simple example, that whenever resources are consumed, administrators care about these details so they can accurately monitor the system, plan for growth and accurately predict future resources.

Unlike the SAS log that a user gets when running a SAS program interactively or in batch, most modern instances of SAS have at least one SAS server running that is able to collect information about what is happening at the server level.  So if you take the same example and run this in Enterprise Guide (remember that the work is actually happening on the SAS Workspace Server), a log is generated on the server that you can consume. In fact, you can turn on additional logging so that whenever a user submits a program, you can get metrics information about the submission that could answer questions about who, what, when and where.

The screen shot below shows some of the reports that come with the APM package in SAS 9.2:

What’s in it for me?

As an administrator, you have to decide whether something is of value first before heading down a path to spend time on this over something else.  In a nutshell, there are a number of key benefits of APM:­­

  • Supplies real-time status of SAS servers and Web tier and presents the information via the Web
  • Issues real time alerts via email
  • Generates pre-defined HTML reports (also available as SAS Business Intelligence Reports) on SAS usage statistics such as:
    • Usage of SAS 9.x metadata including libraries, cubes, reports, stored processes, and tables
    • Information about changes to SAS metadata
    • SAS OLAP Server cube reports based on top users, name, and frequency counts
    • Workspace server utilization, including detailed metrics for elapsed time, CPU, I/O, and memory usage
  • Available for free by request from the SAS Support website for 9.2 and beyond
  • Can integrate with external monitoring tools such as Xymon Open Source Monitor, Hyperic HQ Open Source Monitor, IBM Tivoli Enterprise Monitoring Server and HP OpenView

So whether you are planning an upgrade and need information that would help in sizing the new environment, performing capacity planning for capital expenditures, assessing the ongoing state of the servers or just curious, the APM package might be just what the doctor ordered.

OK, so tell me already – how do I get started?

In order to use the SAS APM package, you need to download the package for your environment.

Once you download the zip file (Windows) or tar file (UNIX), extract the file and take a look at this documentation "Audit, Performance and Measurement Package for SAS 9.3 Enterprise Business Intelligence".

Since I can’t go into detail on every aspect of APM here, I'm provided a few helpful links that will get you on your way:

Let us know if you install the APM package and tell us what reports you find most useful for your environment!

tags: SAS Administrators


  1. Posted December 26, 2012 at 5:22 pm | Permalink

    Hi Gregory,

    Interesting blog, just in time to, as we are currently looking into installing the 9.2 APM Package on our servers.
    I was wondering if you have tackled installing/using the APM package for Distributed/Multiple machines EBI installation. How did you analyze the logs for the various servers (Metadata, Compute, OLAP)?


  2. Barry Stevens
    Posted January 6, 2013 at 11:08 pm | Permalink

    Is there anyway to split the logs, Ie after implementing this our users are complaining about the APM log informatino in the Enterprise Logs, We were to implement something but the documentation said it would stop the DIS perf information which is also important to our user.

    Also This part for * Ahmed * question, we implemented for distributed model and all worked well, just some additional steps in the configuration.



    • Barry Stevens
      Posted January 6, 2013 at 11:11 pm | Permalink

      For those thinking of implementing

      For the version we have implemented - some of the midteir status reports doesn't work if you have Single Sign On


  3. Greg Nelson
    Posted January 7, 2013 at 12:08 pm | Permalink

    Hi Ahmed
    Thanks for your question! Starting with the the January, 2010 release and updated in the May, 2012 release for SAS 9.2, the ARM Package includes the ability to analyze data from multiple servers and more specifically, multiple host environments. At a high level, you will need to update the setEnvLogs_*.sas programs as outlined in the installation and configuration instructions.

    As you know with multiple servers, you have the added complexity of keeping track of not only which SAS service is represented by the log, but also which physical server. In the case of most grid implementations, this is usually accomplished with a shared file system which allows you to collect and analyze without first having to move the log files to a centralized location. When you have multiple SAS servers without a shared file system, you can either pre-process the SAS logs and move the SAS data or better yet, just collect the raw logs into a central location. In this latter scenario you will want to make sure that your naming conventions lend predictability to the log location.

    Hope this helps!


  4. June
    Posted January 15, 2013 at 2:35 pm | Permalink

    I've been using Audit Performance and Measurement for over 2 years. It is a sweet addition to a SAS admin's toolset.