Abstract:
Disclosed are embodiments of a method, a system and a computer program product for selecting data to be presented in a report form. A selector window is displayed to a user, the selector window displaying periods of time for indicating those periods of time for which data is available. The periods of time are displayed as a stack of temporally aligned time lines that are each partitioned into time periods of different duration, where each partition of a given time line has a spatial extent that differs from the spatial extent of partitions of other time lines, with longer partitions encompassing a plurality of shorter partitions. In response to the user selecting a point on a time line, the method, system and computer program product displays a report of that data. The method, system and computer program product further display a partition within a time line to comprise a visual indicator to indicate the occurrence of at least one event of interest that occurred during the time that corresponds to that partition. The data may represent computer system performance metric data that includes rolled-up data, and an absence of a displayed partition indicates to the user that the corresponding data is not available.

Description:
TECHNICAL FIELD  
         [0001]    These teachings relate generally to graphical user interfaces (GUIs) for data processing systems and, more specifically, relate to methods and apparatus for displaying data to a user, where the data represents a historical record of past events.  
         BACKGROUND  
         [0002]    In many data processing applications records are made of events, and these records are then stored in a database. A user may then query the database to obtain a visual display of the information relating to the stored records.  
           [0003]    One type of database application that is of particular interest to this invention is one that measures and records data processing system performance. In some of these systems the data for a number of monitored computers is maintained in a central database. The data typically includes performance metrics, such as CPU Utilization, Disk Utilization, Memory Utilization, Input/Output (I/O) Wait Time, and other similar performance-related metrics.  
           [0004]    It is often the case that data is stored with a higher resolution for more recent periods of time. For example, the metrics can be displayed for one day, but only for the past 30 days; and the metrics can be displayed for one week, but only for the past 52 weeks; and the metrics can be displayed for one month, but only for the past three years. This arrangement avoids a requirement to save data at a high resolution (e.g., once per day) for longer than is necessary, and thus conserves system memory. The underlying assumption in this type of data storage scheme is that long-term analysis will only be concerned with major trends, whereas short-term analysis will only be concerned with recent specific events and conditions. In this scheme the older data can be said to be “rolled-up”, that is, averaged over longer periods of time (e.g., performance metrics for each day of a week are averaged into one performance metric for the entire week).  
           [0005]    During use, a user will typically review a monthly report, and then attempt to view a particular week within the month. However, this will be effective only if the month of interest occurred within the past year. Likewise, a user viewing a weekly report may wish to view a particular day within a week of interest, but may find that the week of interest did not occur recently enough for the individual days to be available for viewing.  
           [0006]    As such, a need exists for a user interface that enables a user to quickly and efficiently determine, at a glance, what time periods, such as months, weeks and days, are currently available to be viewed, and what relationships exist between the available time periods.  
           [0007]    In addition, and in order to avoid the user having to generate and review many reports, a need exists to provide a user interface that enables a user to determine, at a glance, what months, weeks and days have data that indicate a problem, such as a system bottleneck or a system outage.  
           [0008]    Representative U.S. patents that may be interest to this invention include the following.  
           [0009]    U.S. Pat. No. 6,397,359 B1, “Methods, Systems and Computer Program Products for Scheduled Network Performance Testing”, V. Chandra et al., describes a system to test network performance by defining test schedules to be implemented, and when test protocols should be executed. In this system it is said to not be necessary to continuously update test-related auto-thresholds, particularly if sufficient damping is provided, to insure stable operations of performance analysis and threshold crossing detection. Auto-thresholds may be adjusted for those connections which have auto-thresholds on a periodic basis, such as a nightly basis. This time period may be increased as greater amounts of prior data are obtained and are available for a given connection and threshold. As an example, for a connection and threshold having a full week or more of data, the auto-threshold may only be updated on a weekly basis, rather than on a nightly basis  
           [0010]    Commonly assigned U.S. Pat. No. 6,470,464, “System and Method for Predicting Computer System Performance and for Making Recommendations for Improving Its Performance”, R. L. Bertram et al., describes a system and method of monitoring and analyzing the performance of a computer system and its components in a data processing network, and for proposing changes to the network to improve the performance. The system involves identifying undesirable conditions (sometimes called bottlenecks) in the system, determining which bottlenecks are the most severe in affecting the performance of the system, and proposing changes to the components of the system to improve performance of the network. This U.S. patent uses historical data and forecasting techniques to predict bottlenecks which have not yet occurred, but which can be expected, so that further bottlenecks can be projected, along with a prediction interval to indicate the confidence of the prediction. The further projections and the prediction interval are provided in a graph that is available to the user.  
           [0011]    In addition, U.S. Pat. No. 5,093,794, “Job Scheduling System”, G. R. Howie et al., describes a system to schedule jobs by the use of a time map that also indicates bottlenecks. JP09113308, “Measurement Data Processor”, R. Hagiwara et al., describes, in the Abstract, a raw data file into which raw data, obtained by averaging measurement data, are written at one minute intervals; a daily report data file into which the sum value or average value of the raw data, per one hour, are written; a monthly report data file into which the sum value of the average value of daily report data, per one day, are written; and an annual report data file into which the sum value or average value of the monthly report data, per one year, are written. In response to a command to display a graph, a processor reads out the necessary data from a required file and displays the graph.  
           [0012]    As should be apparent, prior to this invention the foregoing and other user interface needs have not been adequately fulfilled.  
         SUMMARY OF THE PREFERRED EMBODIMENTS  
         [0013]    Disclosed herein are embodiments of a method, a system and a computer program product for selecting data to be presented in a report form. A selector window is displayed to a user, the selector window displaying periods of time for indicating those periods of time for which data is available. The periods of time are displayed as a stack of temporally aligned time lines that are each partitioned into time periods of different duration, where each partition of a given time line has a spatial extent that differs from the spatial extent of partitions of other time lines, with longer partitions encompassing a plurality of shorter partitions. In response to the user selecting a point on a time line, the method, system and computer program product displays a report of that data. The method, system and computer program product further display a partition within a time line to comprise a visual indicator to indicate the occurrence of at least one event of interest that occurred during the time that corresponds to that partition.  
           [0014]    In a presently preferred, but non-limiting, embodiment of this invention the data represents computer system performance metric data that includes rolled-up data, and an absence of a displayed partition indicates to the user that the corresponding data is not available. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    The foregoing and other aspects of these teachings are made more evident in the following Detailed Description of the Preferred Embodiments, when read in conjunction with the attached Drawing Figures, wherein:  
         [0016]    [0016]FIG. 1 is a simplified block diagram of a computer system that is suitable for practicing this invention;  
         [0017]    [0017]FIG. 2 illustrates an exemplary report window that shows various performance metrics for a plurality of servers;  
         [0018]    [0018]FIG. 3A shows a time line window in accordance with an aspect of this invention;  
         [0019]    [0019]FIG. 3B shows a detail of the time line window of FIG. 3A, and also shows various examples of information bearing time icons;  
         [0020]    [0020]FIG. 3C shows an embodiment of the time line window where the horizontal extent of icons are progressively compressed in a direction away from a current report date;  
         [0021]    [0021]FIG. 4 is another view of the time line window of FIGS. 3A, and shows an example of the use of certain of the information-bearing icons introduced in FIG. 3B; and  
         [0022]    [0022]FIG. 5 is a logic flow diagram that illustrates a method for constructing the time line window. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0023]    [0023]FIG. 1 is a block diagram of a computer system  10  that is suitable for practicing this invention. The computer system  10  includes a central processor unit (CPU)  12  coupled to a system bus  11 . Also coupled to the system bus  11  are a user interface  14 , a system memory  16  and a display  18 . The user can input information to the computer system  10  through the user interface  14 , and the display  18  allows the user to view information from the system  10 , for example, in graphical or text form (or, in some cases, in both forms), as described in further detail below. The display  18  may be considered to form a part of the user interface  14 . An interface (INT)  20  may be coupled to a network  21  and thence to at least one other system, shown by example as System_ 1   22 , System_ 2   24  and System_n  26 . These other Systems  22 ,  24  and  26  could be other computer systems, servers, printers or other computer apparatus. In the presently preferred, but non-limiting embodiment performance metrics for the various Systems  22 ,  24  and  26 , as well as for the system  10 , are stored in a Performance Metrics Database (PMDB)  16 A, shown for convenience as part of the system memory  16 . In the context of this invention a database is considered to be any collection of data stored in any format, including data stored as a simple flat file, as well as data stored in a database as the term is conventionally used to refer to a data storage application. Applications software that is suitable for gathering and recording performance metrics can be of any suitable type. As one non-limiting example, reference can be had to the above-mentioned commonly assigned U.S. Pat. No. 6,470,464, “System and Method for Predicting Computer System Performance and for Making Recommendations for Improving Its Performance”, R. L. Bertram et al., incorporated by reference herein insofar as there is no conflict with the teachings of this invention.  
         [0024]    The CPU  12  is assumed for the purposes of this invention to include a display and report controller  12 A that operates with a display buffer  16 A to implement the method of this invention. Further in this regard, the memory  16  may contain one or more computer programs provided on a computer readable media for directing the operation of the display and report controller  12 A to execute the method of this invention. The computer program can be embodied on or in any suitable tangible media, such as a disk and/or semiconductor memory, and may also be referred to herein as a computer program product.  
         [0025]    A user of the computer system  10  may wish to view the performance of the computer system  10  and/or the performance of one of the other systems  22 ,  24 ,  26  on display  18 . The performance may be of concern to a system or network administrator, for example, in managing the performance of the overall data processing system and network, including network servers such as those embodied in Systems  22 ,  24 ,  26 . Applications that reside on the user&#39;s system  10  (but are not shown) allow a query to receive the performance data.  
         [0026]    [0026]FIG. 2 shows an exemplary display window containing a report  30  of performance metrics for a user specified date, in this case for one month. The date (e.g., October 2001) is shown displayed in a Date field  32 . In the illustrated report  30  a total of five servers are listed in five rows, with the performance metrics data listed for each in column fashion. The performance metrics can include, as non-limiting examples only, Processor Utilization  34 , System %  36 , User %  38 , I/O Wait %  40 , Run Queue  42  and Active Virtual Memory (AVM)  44 . The AVM performance metric  44  represents an average amount of Active Virtual Memory in use throughout the data collection period, more specifically the number of 4 Kb blocks of virtual memory (referred to as pages) that are in use. Various buttons (e.g., Print, Graph, etc.) and information windows (e.g., Enterprise, Customer, etc.) may also be displayed as desired, however these are not particularly germane to an understanding of this invention.  
         [0027]    In accordance with an aspect of this invention, and referring to FIG. 3A, by the user selecting the Date field  32 , such as by positioning a cursor on the Date field  32  and by clicking on or otherwise designating the Date field  32 , the display and report controller  12 A operates to cause a new display window to appear over the report  30  in the display window. The new display window is referred to herein as a time map window  50 , and may also be referred to for convenience as a “Time Machine” window.  
         [0028]    In accordance with an aspect of this invention, the time map window  50  is organized as a stack of temporally aligned time lines that are divided into a plurality of partitions, represented by displayable icons, shown more clearly as rectangular bars in FIG. 3B, each representing a different temporal resolution. In the illustrated embodiment a first time line  52  contains a first sequence of icons  52 A, where each icon  52 A represents one day, a second time line  54  contains a second sequence of icons  54 A, where each icon  54 A represents one week, and a third time line  56  contains a third sequence of icons  56 A, where each icon  56 A represents one month. More or less than three time lines  52 ,  54 ,  56  may be present, such as one for hours in a day and/or one representing years. Also by example, the monthly time line  56  may be eliminated and replaced with a yearly time line (not shown), thereby representing time as years and weeks within the year (e.g., Week — 1, Week — 2, Week — 3, etc.). Further by example, another embodiment may employ any combination of some or all of minutes, hours, days, weeks, months, years and decades. Another embodiment may use irregular time periods, such as weekends/weekdays which have the ratio of 2-5-2-5-2, etc.  
         [0029]    Regardless of the time line convention used, in response to a user selecting a point on a time line within a given resolution (e.g., the time line 52 for days), the report  30  of the corresponding performance metrics data for the selected time is displayed.  
         [0030]    The time lines  52 ,  54  and  56  may be said to be organized as a “stack” because they are displayed in a closely adjacent manner one to another so as to facilitate the user&#39;s perception of the temporal relationships between the icons in each of the time lines.  
         [0031]    It is instructive to note in FIG. 3A that no individual day icons  52 A are shown after the fourth day of September 2001. This clearly indicates to the user that the days following the fourth day of September have been “rolled-up”, i.e., averaged into their respective weekly (and monthly) performance metrics data and removed from the PMDB  16 A. Thus, the user is clearly notified, at a glance, that the performance metrics data for these individual days is not available for viewing, thereby saving the user the effort attempting to locate and view the corresponding performance metrics data.  
         [0032]    In the preferred embodiment the time map window  50  can be repositioned by the user on the display screen  18  so that the underlying report  30  can also be simultaneously viewed. In the time map window  50  the user can switch the report  30  to any day, week or month by clicking on the corresponding displayed icon  52 A,  54 A,  56 A, respectively.  
         [0033]    The time map window  50  preferably also displays other pertinent information, such as user instructions  51 , and may contain a legend bar  58  for providing information regarding the displayed information, better seen in FIG. 4.  
         [0034]    Note in the non-limiting example of FIG. 3A that the time map window  50  is centered on the date from the Current Report, or October 2001 in this case. However, in other embodiments, such as those that do not employ horizontal scrolling, or horizontal compression, of the time lines  52 ,  54 ,  56 , the current, selected date may not be centered in the time map window  50 . That is, the currently selected date could appear at either side of the center of the displayed icons.  
         [0035]    The month time line  52  partition that corresponds to October 2001 is preferably displayed to be visually contrasting to (e.g., by the use of a different color) the month partitions on each side. In the time line  54  (Weeks) it can be seen that there were three full weeks and two partial weeks in October 2001. That is, the vertical spatial alignment of the icons  52 A,  54 A,  56 A corresponds to the actual (calendar) temporal alignment of the respective time periods.  
         [0036]    Depending on the size of the display  18 , and the amount of screen space allocated for the time line window  50 , only certain of the icons may have room to display text, shown by example in FIG. 3A as the year and month information displayed in the month icon  56 A (e.g., 2001-10). However, fly-over text  53 , shown in FIG. 3B, can be displayed to indicate the date (and/or some other information, such as the nature of the event(s) represented by the icon) if the user points to a day icon  52 A or a week icon  54 A.  
         [0037]    There may be more weeks and months than will fit into the time line window  50 . In this case the additional weeks or months can be viewed by horizontally scrolling them. Alternatively, or in conjunction with scrolling, the additional weeks and months (and possibly days) can be displayed in a horizontally compressed fashion towards the left and/or right sides of the time line window  50 . FIG. 3C shows an example of this optional horizontal compression. In this case the icon(s) corresponding to the date that is currently of most interest can be displayed in the center of the time line window  50  as full size (normal display), and those further away in time (both past and future) can be displayed in a progressively smaller, compressed fashion (e.g., with a “fish-eye lens effect”).  
         [0038]    When viewing the display  18  the user may desire to see at what times system outages, performance bottlenecks, and other events of interest occurred. In conventional practice the user may be required to manually view a number of reports to locate these events of interest. In accordance with a further aspect of this invention, however, the user can be presented with a clear indication of when such events of interest occurred, e.g., during what month, weeks and/or days a system outage occurred.  
         [0039]    Referring to FIG. 3B, it can be seen that certain of the day icons  52 A are displayed to have a visually distinct color and/or a graphical or symbolic pattern that indicates an occurrence of some event of interest (see the icons  52 A a ,  52 A b ,  52 A c  and  52 A d ). This beneficially gives the user an overview of the performance metrics data in the performance metrics database  16 A. The type of event or events of interest may be selected by the user. For example, one user may be interested in only seeing system outages, while another is interested in seeing system outages as well as those periods when the I/O Wait Queue exceeded some threshold value, which may also be user selectable. By using this type of display the user is enabled to go directly to the time(s) when the event or events of interest occurred, again by pointing to an icon having the visually distinct display format and then viewing the corresponding performance metrics report  30 .  
         [0040]    It should be noted that an event of particular interest can be if a certain metric or metrics fall above or below a threshold value. For example, it is common for system analysts to flag performance data that is higher or lower than a predefined threshold. Also, system analysts may often flag performance data /by using a combination of several performance metrics and thresholds. For example, and referring to FIG. 2, the Status column  33  indicates whether any of a server&#39;s key metrics are outside of optimal boundaries. The same status information may be indicated in the time map window  50 , such as by the use of the icon  52 A d.    
         [0041]    In the example of FIG. 4, and considering also the Legend  58 , the current report date (11 October) is indicated by the day icon having the white outline, see icon  52 A c  in FIG. 3B, missing data is indicated by a date icon  52 A that is clear (white), while performance metrics data that the user should check is indicated by a solid black day icon. In this regard it should be noted that there are any of a number of reasons why data may be missing from or unavailable in the PMDB  16 A. As non-limiting examples, data could be missing or unavailable, due to roll-up, a system outage, a storage error, or because of a manual deletion. In the example of FIG. 4, then, there is one day (14 October) where there is missing performance metrics data in the PMDB  16 A, for whatever reason, and four days that the user should check. Note that the presence of at least one solid black indicated day results in the corresponding solid black colored week icon  54 A, as well as in the corresponding solid black colored monthly icon  56 A. The Overall Status-Check solid black icon may correspond to a day when some user-specified event occurred, such as a system outage, or some combination of user-specified events. Alternatively, the event type(s) marked to be checked may not be user-specified, but instead may be system-specified (default) event types. A combination of user-specified and system-specified event types can also be employed. The fly-over text  53 , shown in FIG. 3B, can also be used to provide information related to a displayed Overall Status-Check icon, such as the type or types of problems that occurred during the corresponding time period.  
         [0042]    Note that the underlying report  30  may show a group of servers (e.g., servers  22 ,  24 ,  26 ) or an individual server (e.g., only server  24 ). For a group of servers, the status appearing in the icon(s) of the time line window  50  can indicate that at least one of the servers of the group of servers experienced some problem. After generating the report, the user may then click on one specific server of the group to examine the performance metrics of that server in detail. For an individual server, the data is plotted over time in the report  30 , and the status displayed in the time line window  50  indicates that a problem exists in the performance metrics plotted for that particular server.  
         [0043]    At this point those skilled in the art should appreciate that this invention both addresses and fulfills the need of providing a user interface that enables the user to quickly and efficiently determine, at a glance, what months, weeks and days have data that is currently available to be viewed, and what relationships exist between the available months, weeks and days. The invention also addresses and fulfills the need of providing a user interface that enables the user to determine at a glance what months, weeks and days have data that indicates an occurrence of a specific event or events, such as a system bottleneck and/or a system outage.  
         [0044]    Reference is now made to FIG. 5 for a description of a method executed by the display and report controller  12 A for constructing the time line window  50 , and for implementing related aspects of this invention. The method starts at Block A, and at Block B the display and report controller  12 A determines the date of a user-specified current report from the Date field  32 , such as October 2001 as in the examples of FIGS. 2 and 3A. At Block C the display and report controller  12 A retrieves the applicable performance metric records from the PMDB  16 A. This involves retrieving records for the specific user-specified report date, as well as records for periods of time both preceding and following the user specified report date. For example, the performance metrics records can be retrieved for the user-specified month, as well as for the preceding and following one or two months (if available). In Block D the display and report controller  12 A constructs the time lines  52 ,  54  and  56  in the display buffer  16 B. This involves mapping the individual days to day icons  52 A, assuming that the days in question have not been rolled-up and the corresponding records can be found in the PMDB  16 A, and mapping the summary information for the applicable weeks and months to week icons  54 A and month icons  56 A. During this process the display and report controller  12 A preferably consults a stored calendar  16 C in order to determine the correct horizontal alignment between the day, week and month icons for the date range of interest (possibly but not necessarily centered on the user-specified report date). At Block E the display and report controller  12 A marks those day icons  52 A that correspond to performance metrics records that indicate the occurrence of an event or events of interest to the user, or that correspond to system default events (e.g., the occurrence of an outage may be considered to be a default event that is always marked in the corresponding day icon). If a null performance metric record is found for a particular day then a blank day icon  52 A can be provided to indicate missing data. The same procedure is then followed for the icons of the remaining time lines  54  and  56 , i.e., it is preferred to process each time line independently as, for example, the weekly data is a roll-up of the daily data, which may or may not have been retained in the PMDB  16 A. The Legend  58  may then constructed to reflect the events of interest that may or may not have been indicated in the day, week and month icons, depending on the content of the performance metric records for the applicable time period. Block F shows the optional horizontal compression of the icons  52 A,  54 A and  56 A at one or both sides of the displayable icons, as was discussed above with reference to FIG. 3C. Having thus suitably prepared the content of the time map window  50  in the display buffer  16 B, the display and report controller  12 A writes the buffer contents to the display  18 , resulting in the display shown to the user in FIGS. 3A or  4 . Block H represents the further action of the display and report controller  12 A in responding o the user. This can involve, as was discussed above, displaying the performance metrics report for a time period selected by the user (e.g., for 11 Oct. 2001 as in the example of FIG. 4), or is playing a date or other text in the fly-over text window  53  shown in FIG. 3B, or re-plotting the content of the time map window  50  due to horizontal scrolling of the time map window contents, or any other activity desired by the user.  
         [0045]    The foregoing description has been a full and informative description of the best method and system presently contemplated for carrying out the present invention which is known to the inventors at the time of filing the patent application. Of course, many modifications and adaptations will be apparent to those skilled in the relevant arts in view of the description when read in conjunction with the accompanying drawings and the appended claims. As but one example, the icons of the time line window could be arranged in a vertical fashion. As another example, the icons need not have rectangular shapes as illustrated. As another example, the time line window as described above is not restricted for use in a system that stores and reports performance metrics for data processing systems and components, such as network-connected servers and the like, but instead may find applicability in many types of database systems where a historical record of data and events is stored, including billing systems, human resources systems, meteorological systems and other types of database systems. It should further be noted that the use of this invention is not restricted to only historical data, but can be employed as well to display projected or predicted and/or planned future data. While the system and method described herein are provided with a certain degree of specificity, the present invention could be implemented with either greater or lesser specificity, depending on the needs of the user. Further, some of the features of the present invention could be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles of the present invention, and not in limitation thereof, since this invention is defined by the claims which follow.