260 likes | 362 Views
JavaScript. ASP. EXPLOITING WEB PUBLISHING TECHNOLOGY TO ENHANCE PERFORMANCE REPORTING. tables. forms. Claude Aron Chevron Information Technology Company San Ramon, CA. frames. hyperlinks. AGENDA. Introduction Environment Using frame-based pages for report retrieval
E N D
JavaScript ASP EXPLOITING WEB PUBLISHING TECHNOLOGY TO ENHANCE PERFORMANCE REPORTING tables forms Claude Aron Chevron Information Technology Company San Ramon, CA frames hyperlinks
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
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
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!
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
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)
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
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
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
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”
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).
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
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.)
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
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.
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.
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
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).
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!
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
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.
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 ...
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 “……”
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.
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
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!