EXPLOITING WEB PUBLISHING TECHNOLOGY TO ENHANCE PERFORMANCE REPORTING Claude Aron Chevron Information Technology Company San Ramon, CA 1 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 2 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 3 Introduction • Web-based reporting is the information delivery standard • Out-of-the box advantages over paper publishing: – – – – – Timeliness - delivery can be virtually instantaneous Universal accessibility - no need to predefine recipients Dynamic - content can be modified at any time Interactive access - users can select subsets of data Environmentally friendly - saves trees! 4 Introduction • But, merely converting existing paper reports to web format (e.g. HTML or GIF files) is NOT sufficient: – The increased exposure to increasingly sophisticated internet content has raised user expectations of usability – The volume of performance reports in a distributed environment with hundreds of servers requires: • • • • An efficient user interface for navigating to specific content A method for identifying exceptions & thresholds A method for drilling down to increasing levels of detail A help facility to define & explain reports & metrics 5 Introduction • Assumptions: – You don’t have the luxury of assigning or hiring an experienced web application developer to design and implement a performance reporting application – The volume of your data & capabilities of your hardware/software preclude dynamic report generation – You have a basic understanding of programming principles – You have some experience with SAS programming – You have some experience with VBScript programming (optional) 6 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 7 Environment • 400+ monitored NT servers: – File (54), Print (46), Domain Control (61), SMS (41), MSExchange (80), Shared Apps (47), RAS (16), Lotus Notes (14), SAP (17), Misc Apps (24) • 22 HP-UX servers & 14 Sun Servers • Performance Data Repository is SAS IT Service Vision • Data collectors are NTSMF (DataCore Software) & Measureware (HP) • Hardware: HP-UX K430, 4 CPUs, 768 MB memory, 13 GB disk space 8 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 9 Frame-based pages for reports • The “frame wars” are over • Frames provide an excellent UI structure for report retrieval – Form with selection criteria in one frame – Report output in second frame – User navigational interaction is kept to a minimum • Sample frameset syntax: <frameset rows=“15%,85%”> <frame src=“xxx.html”> <frame src=“yyy.html” name=“reportwin”> </frameset> • Sample form syntax: <form method=“POST” action=“zzz.asp” target=“reportwin” 10 Frame-based pages for reports • Best practices: – Establish a strict naming pattern for report files, to minimize complexity of server scripts. Example: servertype.servername.reporttype.interval.outputtype – Use the report output frame to display useful information when the page is first displayed, e.g. a high-level summary report or a help page that explains report contents or selection criteria. – Minimize the screen real estate used by the report selection frame to maximize the viewing area for reports. – Include a link to the site home page & to a help page in the report selection frame. – If you have multiple report framesets, include links to them in the report selection frame (use javascript routines to create dropdowns). 11 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 12 Exception reporting / hyperlinks • Exception Report Design – Large number of servers in a distributed environment makes exception reporting imperative. – Try to design exception reports so that all exceptions appear on a single web page. – Highlight exceptions that exceed thresholds (e.g. by color-coding) so that they stand out clearly. – Provide hyperlinks to detailed reports that provide additional data on exceptions (length, severity, potential causes, etc.) 13 Exception reporting /hyperlinks • SAS HTML Data Set Formatter – SAS HTML Data Set Formatter converts SAS data into html tables. – Invoked via %ds2htm macro call. – Specify input SAS data set, output html file, variables to display in table & optional formatting parameters. – Example: %ds2htm(htmlfile=abc.exceptions.20001231.html, data=mysas.exception.data, var=server1 metric1 server2 metric2 server3 metric3, clsize=1, vsize=1, caption=Server Exception Report) – Complete documentation at http://www.sas.com/rnd/web/intrnet/format/index.html 14 Exception reporting /hyperlinks • Embedding hyperlinks – – – – Build SAS variables formatted into html hyperlink syntax. Syntax is <a href=URL>text string</a>. Set length of SAS variable to a large value (e.g. 90). Concatenate literal strings to variables, e.g.: cellval=“<a href=&pfx..” || trim(servname) || “.” || trim(date) || “.gif>” || servname || “</a>”; – If a SAS macro variable needs to be followed by a period, you need to insert an extra period, e.g. %pfx.. – Use the SAS trim function to remove trailing blanks. 15 Exception reporting /hyperlinks • Highlighting thresholds – Same method as embedding hyperlinks - build SAS variables that contain html syntax for specifying color properties. – Syntax for specifying font color is <font color=colorname> – Test threshold value when building variables: if thresh=0 then exval = put(val,7.2); else exval = “<font color=red>” || put(val, 7.2) || “</font>”; – The SAS put function formats numeric variables as character strings. – If you don’t assign a <font color>, the default font color for that page is used. 16 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 17 Server health reporting • Server Health Report Design – Green light, yellow light, red light paradigm: • Green = Normal range, no action required • Yellow = Exceeds normal range, but may be acceptable • Red = Extreme range, should be investigated – Metrics for availability, processor utilization, available memory, & disk space. – Analyze your own historical data to determine thresholds & be prepared to tune & adjust if necessary. If you have a lot of red lights, either you’re in serious trouble or your thresholds are not set correctly! – Metrics are hyperlinks to detailed reports; column headings are hyperlinks to metric definitions (javascript popups). 18 Server health reporting • Coding techniques – Due to cell-coloring logic & javascript popups, we can’t use the %ds2htm macro - so we use standard SAS put statements instead. – Output file is “.asp”, to allow server-side includes. • Include syntax: <!--#include file=your.filename--> – Select/when statements are used to test metric values, determine what color cells should be, & build variables. – Syntax for hyperlinking to a javascript function: • <a href=javascript:void(functionname())>text string</a> – Javascript function definition must be placed above the function call! 19 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 20 Server configuration queries • Server Configuration Query Design – Be able to answer questions such as: • What are the hardware/software configurations of a class of servers? • Are there any servers that haven’t been upgraded to Service Pack n? • Which servers are configured with over 1 GB of memory? – – – – Can use flat file or database table. Use form input boxes to allow text or numeric input. Pre-fill with values that retrieve all servers IF that’s practical. Allow case-insensitive input. – Disregard leading or trailing blanks. 21 Server configuration queries • Form Processing Coding Hints – Form input statement syntax: Text: input type=text size=n maxlength=n name=“fieldname” Numeric: input type=number size=n maxlength=n value=nname=“fieldname” – Processing form input in Active Server Pages / VBScript: • To read values: x=Request.Form(“fieldname”) • To eliminate trailing/leading blanks & convert to upper case: x=Trim(Ucase(Request.Form(“fieldname”))) • To test for numeric input: if not IsNumeric(x) then ... 22 Server configuration queries • File Processing Coding Hints – To open a file for processing: • Set Sobj=Server.Create.Object(“Scripting.FileSystemObject”) • Set Sfil=sobj.OpenTextFile(ServerMapPath(“your.file”)) – To read data from a file: • SrvTemp=sfil.ReadLine • SrvVar=Split(OneRec,”,”,-1,1) – To test for presence of a character string: • if Instr(1,SrvVar(0),SrvString,1) > 0 then ... – To write output records: • Response.Write “……” 23 Server configuration queries • File Processing Coding Hints – To close a file: • Sfil.Close – Next two statements free memory & system resources - very important! • Set Sfil=Nothing • Set Sobj=Nothing – To send all the generated output to the browser: • Response.Flush • Needed only if Response.Buffer=True was set. Response buffering is recommended in most cases to optimize network transmission. 24 AGENDA • • • • • • • Introduction Environment Using frame-based pages for report retrieval Exception reporting with embedded hyperlinks Server health reporting using color-coded table cells Server configuration reporting with query capability Summary 25 Summary • Internet publishing of performance data has some intrinsic advantages. • With a little thought & effort, it’s possible to design reports & report interfaces that enhance the user experience. • You don’t need to be a professional web developer - even performance analysts can do it! 26