1. Technical Field
The present disclosure relates generally to data analysis and more particularly, but not by way of limitation, to systems and methods for analyzing computing performance.
2. History of Related Art
Modern web applications process millions of transactions per day and can include multiple redundant layers. When a problem occurs, it can be difficult to trace the problem to a cause. Typical reports and alerts regarding transactions are complex and do not adequately indicate a root cause of poor-performing transactions.
Moreover, as the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
In one embodiment, a method includes selecting an overall set of end-user transactions. Each end-user transaction of the overall set is associated with at least one outcome of a plurality of outcomes. The method further includes selecting an outcome from the plurality of outcomes. In addition, the method includes identifying an outcome-filtered subset of the overall set, the outcome-filtered subset comprising end-user transactions of the overall set associated with the selected outcome. The method also includes, for each transaction property of a plurality of transaction properties, measuring a difference between the transaction property's prevalence in the outcome-filtered subset and the transaction property's prevalence in the overall set. The measuring yields a property-prevalence differential for each transaction property. Moreover, the method includes, based, at least in part, on the property-prevalence differentials, determining one or more of the plurality of transaction properties to be correlation factors for the selected outcome.
In one embodiment, an information handling system includes a processing unit, wherein the processing unit is operable to implement a method. The method includes selecting an overall set of end-user transactions. Each end-user transaction of the overall set is associated with at least one outcome of a plurality of outcomes. The method further includes selecting an outcome from the plurality of outcomes. In addition, the method includes identifying an outcome-filtered subset of the overall set, the outcome-filtered subset comprising end-user transactions of the overall set associated with the selected outcome. The method also includes, for each transaction property of a plurality of transaction properties, measuring a difference between the transaction property's prevalence in the outcome-filtered subset and the transaction property's prevalence in the overall set. The measuring yields a property-prevalence differential for each transaction property. Moreover, the method includes, based, at least in part, on the property-prevalence differentials, determining one or more of the plurality of transaction properties to be correlation factors for the selected outcome.
In one embodiment, a computer-program product includes a non-transitory computer-usable medium having computer-readable program code embodied therein. The computer-readable program code is adapted to be executed to implement a method. The method includes selecting an overall set of end-user transactions. Each end-user transaction of the overall set is associated with at least one outcome of a plurality of outcomes. The method further includes selecting an outcome from the plurality of outcomes. In addition, the method includes identifying an outcome-filtered subset of the overall set, the outcome-filtered subset comprising end-user transactions of the overall set associated with the selected outcome. The method also includes, for each transaction property of a plurality of transaction properties, measuring a difference between the transaction property's prevalence in the outcome-filtered subset and the transaction property's prevalence in the overall set. The measuring yields a property-prevalence differential for each transaction property. Moreover, the method includes, based, at least in part, on the property-prevalence differentials, determining one or more of the plurality of transaction properties to be correlation factors for the selected outcome.
A more complete understanding of the method and apparatus of the present disclosure may be obtained by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:
In various embodiments, a performance-monitoring system can track and trace end-user (EU) transactions. The performance-monitoring system can produce and store, for example, an end-to-end (E2E) response time for each EU transaction. An EU transaction, as used herein, is initiated by an EU request such as, for example, a web request, includes subsequent processing of the request by a backend-computing system, and is concluded by a web response from the backend-computing system. EU transactions can cross multiple nodes such as, for example, a web browser, a web server, an application server, a database, one or more external services, etc. An E2E response time can include, for example, a time elapsed from initiation through conclusion of an EU transaction.
One way to troubleshoot slow transaction performance is to aggregate E2E response times for a group of EU transactions and examine execution times at each node in an E2E transaction path. An E2E transaction path typically includes a set of nodes through which a given transaction passes. The E2E transaction path can be, for example, application-specific (e.g., web-application-specific). An E2E response time is typically made up of an execution time at each node in the E2E transaction path. For example, consider an exemplary E2E transaction path that includes a web browser, a network, a web server, an application server, and a database. Each E2E response time can be composed of execution times at each of the web browser, the network, the web server, the application server, and the database. For purposes of troubleshooting, execution times for a group of EU transactions can be aggregated, for example, by determining a mean, median, or mode, performing a statistical analysis, etc. From this information, it can be determined where transactions generally spend the most time. Manual root-cause analysis can subsequently occur.
A downside of the above-mentioned approach is that significant performance aberrations may become diluted in the aggregations. For example, it may be that each poor-performing transaction spends an excessively long period of time at the application server. However, until the poor-performing transactions become abundant in number, the aggregate execution times at the application server may not be indicative of a major problem and thus may not be useful in performing a root-cause analysis. In addition, it may not be immediately apparent what constitutes an excessively long execution time or to what degree a given execution time is excessive.
Another way to troubleshoot slow transaction performance is to analyze aggregate statistics such as, for example, error percentages or response times, for transactions that have a particular transaction property. For example, it may be calculated that ninety percent of slow-performing transactions result from New York City web traffic. A downside of this approach is that such aggregate statistics do not adequately account for the prevalence of the particular transaction property being analyzed. For instance, continuing the above example, if ninety percent of EU transactions result from New York City web traffic, it may not be notable that ninety percent of slow-performing transactions result from New York City web traffic. Conversely, if only two percent of EU transactions result from New York City web traffic, the fact that ninety percent of all slow-performing transactions result from New York City web traffic may be much more significant.
Various embodiments described herein can facilitate a comparative performance analysis of transaction properties for a set of EU transactions. In certain embodiments, transaction properties for a set of EU transactions can be aggregated and analyzed. In particular, an overall prevalence of each transaction property can be compared to a prevalence of the transaction property in a subset of EU transactions that are associated with a particular outcome such as, for example, acceptable, unacceptable, error (e.g., indicating that the EU transaction resulted in particular error), and/or the like. Based on this comparison, certain transaction properties can be determined to be correlation factors for the particular outcome.
In general, a transaction property can be any identifiable characteristic of an EU transaction. For a given EU transaction, examples of transaction properties include a particular web browser (e.g., MICROSOFT INTERNET EXPLORER, APPLE SAFARI, GOOGLE CHROME, MOZILLA FIREFOX, etc.), a particular transaction type (e.g., log-in, checkout, etc.), a geographic location (e.g., city, state, province, country, etc.), each method, function, or subroutine called during execution of the EU transaction, each database statement executed, a screen resolution or size, and/or the like. In general, each node of an E2E transaction path can also be a transaction property. It should be appreciated that some transaction characteristics such as a geographic location can include multiple layers of specificity such that each layer is a distinct transaction property. For example, for an EU transaction originating in Atlanta, Ga., Atlanta, Ga., and United States may be distinct transaction properties for the EU transaction. Other examples of transaction properties will be apparent to one skilled in the art after reviewing the present disclosure.
In various embodiments, transaction properties can result from any element of backend-performance data and/or EU-experience data. Backend-performance data, as used herein, refers to data collected during runtime of a software application such as, for example, a web application, through instrumentation of the software application. EU-experience data, as used herein, refers to data collected through observation of one or more transactions from an EU perspective. For example, in various embodiments, the EU perspective may be a node between a web server and an EU information handling system, a node between a web server and an application server, or the EU information handling system.
In general, an outcome of an EU transaction is an assessment of a quality of the EU transaction as measured by performance. For example, in some embodiments, an outcome can indicate whether the EU transaction is an acceptable EU transaction or an unacceptable EU transaction, whether the EU transaction resulted in an error, etc. In other embodiments, an outcome can include other assessments such as good, fair, poor, error, high value, low value, and spam. In certain embodiments, each EU transaction can be associated with either an acceptable category or an unacceptable category based, at least in part, on whether an E2E response time exceeds a configurable threshold. The configurable threshold can be an absolute value (e.g., defined in seconds), a relative value (e.g., defined relative to a mean or median value for a transaction type), and/or the like. The configurable threshold can also be varied by type of transaction (e.g., log-in, checkout, etc.).
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer (e.g., desktop or laptop), tablet computer, mobile device (e.g., personal digital assistant (PDA) or smart phone), server (e.g., blade server or rack server), a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, touchscreen and/or a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
For illustrative purposes, the backend-computing system 110 is shown to utilize a three-tier architecture that includes a presentation tier 116, a logic tier 114, and a data tier 112. The presentation tier 116 includes at least one information server 138 such as, for example, a web server, that serves content to be rendered by the client application 104. The logic tier 114 includes at least one application server 136 that operates a platform based on, for example, Java EE, ASP.NET, PHP, ColdFusion, Perl, and/or the like. The data tier 112 includes at least one database 134 that further includes, for example, data sets and a database management system that manages and provides access to the data sets.
It should be appreciated that, in various embodiments, the backend-computing system 110 may include any number of tiers. In addition, in various embodiments, the backend-computing system 110 may implement various alternative architectures such as, for example, a model-view-controller architecture. It should also be appreciated that the at least one application server 136 and the at least one information server 138 are shown separately in
The backend-computing system 110 executes one or more distributed software applications such as, for example, a web application, from which backend-performance data is collected. In a typical embodiment, the one or more distributed software applications have been instrumented to provide the backend-performance data. Each of the one or more distributed software applications may be, for example, a collection of software components or services that make up an application stack. In various embodiments, the backend-computing system 110 may use an agent resident thereon to collect the backend-performance data.
The backend-performance data can include, for example, metrics related to infrastructure components (virtual or physical) such as, for example, the at least one database 134, the at least one application server 136, and the at least information server 138. The backend-performance data can also include aggregated metrics related to infrastructure tiers such as, for example, the presentation tier 116, the logic tier 114, and the data tier 112. In addition, the backend-performance data can include metrics related to the application stack for each of the one or more distributed software applications. In a typical embodiment, the backend-performance data can trace EU transactions through a topology of nodes that can include, for example, infrastructure components, infrastructure tiers, and/or application-stack components as described above. Metrics can include, for example, execution time at each tier or by each component or node. Examples of how backend-performance data can collected and managed is described in detail in U.S. Pat. No. 7,979,245 and U.S. Pat. No. 8,175,863, each of which is hereby incorporated by reference.
The data collector 108 is a software component that collects the EU-experience data for the at least one EU information handling system 102. In a typical embodiment, the data collector 108 is situated in the system 100 such that the data collector 108 is capable of seeing all network traffic (i.e., all packets exchanged) between the at least one EU information handling system 102 and the backend-computing system 110. In this fashion, the data collector 108 functions as a packet analyzer and is operable to extract the EU-experience data and transmit the EU-experience data to the EU archive system 126. The EU archive system 126 includes at least one server computer 128 and at least one database 130. The EU archive system 126 receives the EU-experience data from the data collector 108 and stores the EU-experience data in the at least one database 130. An example of how EU-experience data can be collected is described in U.S. Pat. No. 7,941,385. U.S. Pat. No. 7,941,385 is hereby incorporated by reference.
As illustrated, the data collector 108 can reside at various nodes in the system 100. For example, the data collector 108 can reside on the backend-computing system 110 between the presentation tier 116 and the logic tier 114. The data collector 108 can also be resident on the backend-computing system 110 between the presentation tier 116 and the network 106. In addition, in various embodiments, the data collector 108 is representative of client-side scripting that is executed on the at least one EU information handling system 102. In this fashion, the data collector 108 can also be resident on the at least one EU information handling system 102. It should be appreciated that other locations for the data collector 108 such as, for example, within the presentation tier 116, are also contemplated.
The monitoring system 118 includes at least one server computer 120 and at least one database 122. The at least one server computer 120 is operable to execute a correlator 124. The correlator 124 is typically a software component that correlates the EU-experience data maintained by the EU archive system 126 with the backend-performance data maintained by the monitoring system 118 to yield E2E response times for EU transactions. Exemplary operation of the system 100 will be described with respect to
The administrative system 140 includes a reporting module 142. The administrative system 140 can include any number of server computers and/or databases. The reporting module 142 can include hardware and/or software for generating and/or presenting alerts, reports, and/or the like based on data stored or generated by the monitoring system 118 and the EU archive system 126. The reports and/or alerts can be served to an administrative user using, for example, an information handling system similar to the EU information handling system 102. For example, in certain embodiments, the reporting module 142 can facilitate a comparative performance analysis between acceptable EU transactions and unacceptable EU transactions. An example of functionality of the reporting module 142 will be described with respect to
One of ordinary skill in the art will appreciate that each instance of a computer or computer system as described above may be representative of any number of physical or virtual server computers. Likewise, each instance of a database may be representative of a plurality of databases. In addition, it should be appreciated that, in various embodiments, each instance of a network such as, for example, the network 106 or the network 132, can be viewed as an abstraction of multiple distinct networks. For example, the network 106 and the network 132 can each include one or multiple communications networks such as, for example, public or private intranets, a public switch telephone network (PSTN), a cellular network, the Internet, or the like. In addition, in various embodiments, the network 106 and the network 132 may overlap or refer to a same network.
A monitoring agent on the at least one application server 136 injects the identifier in a response to the request (i.e., a UUID-injected response), which response is directed to the at least one EU information handling system 102 along a transmission path that includes that at least one information server 138 and the at least one EU information handling system 102. In this fashion, no modification of application code is required to inject the identifier. Rather, the monitoring agent, which is already being utilized for existing instrumentation of the distributed software application, injects the identifier into the response. The response may be a web response such as, for example, an HTTP response. In various embodiments, the identifier can be injected, for example, into a response header for the response. In some embodiments, the identifier may be inserted into a cookie that is sent as part of the response header. Content of the UUID-injected response is rendered on the at least one EU information handling system 102 via the client application 104.
As noted above, the data collector 108 is situated on the system 100 so that the data collector 108 can observe all network traffic exchanged between the backend-computing system 110 and the EU information handling system 102. Therefore, the data collector 108 is effectively a transparent node along the transmission path. The data collector 108 passively observes the UUID-injected response and uses the identifier to identify EU-experience data that is collected.
The correlator 124 is operable to extract EU-experience data not previously obtained by the correlator (i.e., new EU-experience data) from the EU archive system 126. In various embodiments, the correlator 124 may operate on a periodic basis, on-demand, or in real-time. The correlator 124 is operable to correlate the EU-experience data and the backend-performance data that relates to a same transaction (i.e., a same request and response) by cross-referencing identifiers. In this manner, data resulting from instrumentation (the backend-performance data) and the EU-experience data, which is typically collected without instrumentation, can be correlated. The correlated data can be stored in the at least one database 122. The correlated data can also be used to generate E2E response times for end-use transactions. In addition, on a periodic basis (e.g., every five minutes) or on demand, the correlator 124 may aggregate the correlated data into one or more high-level transaction categories such as, for example, log-in, search, or checkout. Therefore, problems with particular transaction categories can be readily identified and appropriate alerts generated.
At block 302, the system 100 processes an EU transaction. For example, the block 302 can include tracing the EU transaction as described with respect to
At block 306, the monitoring system 118, the reporting module 142, or another component, associates the EU transaction with an outcome. For purposes of this illustration, the outcome is either an acceptable category or an unacceptable category. For example, in certain embodiments, the EU transaction can be associated with the unacceptable category if the E2E response time exceeds a configurable threshold value. Otherwise, the EU transaction can be associated with the acceptable category. The configurable threshold can be an absolute value (e.g., defined in seconds), a relative value (e.g., defined relative to a mean or median value for a transaction type), and/or the like. The configurable threshold can also be varied by type of transaction (e.g., log-in, checkout, etc.). The association can also be stored, for example, in the at least one database 122, a database on the administrative system 140, in memory of the monitoring system 118 and/or the administrative system 140, etc.
At block 402, the reporting module 142 selects an overall set of EU transactions. In various embodiments, the overall set of EU transactions can be any grouping of EU transactions, systematic or arbitrary. In some cases, the overall set of EU transactions can relate to a same application or web application. Each EU transaction of the overall set may be of a same type or a different type. In an example, the overall set can include all checkout transactions over a certain period of time. In another example, the overall set can include a heterogeneous set of transaction types such as, for example, log-in, search, and checkout. In certain embodiments, the overall set can include EU transactions for which a process similar to the process 300 of
At block 404, the reporting module 142 selects an outcome from among a plurality of potential outcomes. For example, in some embodiments, the plurality of potential outcomes can include the acceptable and unacceptable categorizations described with respect to
At block 406, the reporting module 142 identifies an outcome-filtered subset of the overall set. In a typical embodiment, the outcome-filtered subset includes those EU transactions of the overall set that are associated with the selected outcome. In an example, a given EU transaction may be associated with the selected outcome as a result of a process similar to the process 300 of
At block 408, the reporting module 142 aggregates transaction properties. In some embodiments, the reporting module 142 may aggregate transaction properties of all transactions in the overall set. In other embodiments, the reporting module 142 may aggregate transaction properties of transactions in the outcome-filtered subset. Transaction properties can also be aggregated in other fashions such as, for example, through manual specification, access of a pre-specified set of transaction properties, etc.
At block 410, the reporting module 142 generates a property-prevalence differential for each of the aggregated transaction properties. In a typical embodiment, the block 410 involves measuring a difference between a particular transaction property's prevalence in the outcome-filtered subset and the particular transaction property's prevalence in the overall set. The property-prevalence differential can be indicative of the difference. Consider, for example, a transaction property of city. If ninety percent of transactions in the outcome-filtered subset have the transaction property of New York City but only ten percent of transactions in the overall set have set the transaction property of New York City, the property-prevalence differential could be eighty-five percent. It should be appreciated that, in various embodiments, the property-prevalence differentials can represent values that are weighted or otherwise manipulated. In some embodiments, the property-prevalence differential can be an absolute value so as to exclude negative values.
At block 412, the reporting module 142 determines one or more correlation factors for the selected outcome. The one or more correlation factors can be determined from among the aggregated transaction properties. According to the examples described above, a higher property-prevalence differential is generally indicative of a higher correlation with the selected outcome. In some embodiments, a specified number of top transaction properties can be determined to be the one or more correlation factors. The specified number can be automatically selected, input by an administrator or other use, etc. In other embodiments, transaction properties that meet certain criteria can be determined to be the one or more correlation factors. The certain criteria can specify a constraint such as, for example, a minimum property-prevalence differential. The one or more correlation factors can also be determined using a combination of the foregoing and/or in another fashion.
At block 414, the reporting module 142 generates a report of the one or more correlation factors. The report can include the correlation factors, corresponding property-prevalence differentials, and/or other information.
At block 416, the reporting module 142 publishes the report. For example, the report can be transmitted to a system, entity, or user. In some embodiments, the block 416 can include causing the report to be displayed, for example, to an administrative of user of an EU information handling system such as the EU information handling system 102 of
Advantageously, in certain embodiments, a report such as the report 500 enables identification and comparison of transaction properties of heterogeneous types. A root cause of a particular outcome can thereby more easily be identified. For example, in the illustration of
Although various embodiments of the method and apparatus of the present invention have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth herein.
Number | Name | Date | Kind |
---|---|---|---|
3701971 | Sanner et al. | Oct 1972 | A |
3839707 | Woodward et al. | Oct 1974 | A |
4468728 | Wang | Aug 1984 | A |
4683532 | Yount et al. | Jul 1987 | A |
4937740 | Agarwal et al. | Jun 1990 | A |
5103394 | Blasciak | Apr 1992 | A |
5321838 | Hensley et al. | Jun 1994 | A |
5375199 | Harrow et al. | Dec 1994 | A |
5432932 | Chen et al. | Jul 1995 | A |
5450586 | Kuzara et al. | Sep 1995 | A |
5493658 | Chiang et al. | Feb 1996 | A |
5506955 | Chen et al. | Apr 1996 | A |
5517629 | Boland | May 1996 | A |
5528753 | Fortin | Jun 1996 | A |
5539907 | Srivastava et al. | Jul 1996 | A |
5572640 | Schettler | Nov 1996 | A |
5600789 | Parker et al. | Feb 1997 | A |
5623598 | Voigt et al. | Apr 1997 | A |
5649187 | Hornbuckle | Jul 1997 | A |
5671351 | Wild et al. | Sep 1997 | A |
5673386 | Batra | Sep 1997 | A |
5684945 | Chen et al. | Nov 1997 | A |
5701137 | Kiernan et al. | Dec 1997 | A |
5708775 | Nakamura | Jan 1998 | A |
5715388 | Tsuchihashi | Feb 1998 | A |
5715415 | Dazey et al. | Feb 1998 | A |
5720018 | Muller et al. | Feb 1998 | A |
5740357 | Gardiner et al. | Apr 1998 | A |
5748881 | Lewis et al. | May 1998 | A |
5752062 | Gover et al. | May 1998 | A |
5768501 | Lewis | Jun 1998 | A |
5872909 | Wilner et al. | Feb 1999 | A |
5881306 | Levine et al. | Mar 1999 | A |
5903453 | Stoddard II | May 1999 | A |
5903898 | Cohen et al. | May 1999 | A |
5911048 | Graf | Jun 1999 | A |
5960425 | Buneman et al. | Sep 1999 | A |
5978594 | Bonnell et al. | Nov 1999 | A |
5983366 | King | Nov 1999 | A |
6018567 | Dulman | Jan 2000 | A |
6029170 | Garger et al. | Feb 2000 | A |
6035412 | Tamer et al. | Mar 2000 | A |
6128016 | Coelho et al. | Oct 2000 | A |
6148335 | Haggard et al. | Nov 2000 | A |
6173322 | Hu | Jan 2001 | B1 |
6195092 | Dhond et al. | Feb 2001 | B1 |
6199199 | Johnston et al. | Mar 2001 | B1 |
6223171 | Chaudhuri et al. | Apr 2001 | B1 |
6243105 | Hoyer et al. | Jun 2001 | B1 |
6330008 | Razdow et al. | Dec 2001 | B1 |
6351754 | Bridge, Jr. et al. | Feb 2002 | B1 |
6381628 | Hunt | Apr 2002 | B1 |
6473791 | Al-Ghosein et al. | Oct 2002 | B1 |
6538669 | Lagueux, Jr. et al. | Mar 2003 | B1 |
6543006 | Zundel et al. | Apr 2003 | B1 |
6594655 | Tal et al. | Jul 2003 | B2 |
6622221 | Zahavi | Sep 2003 | B1 |
RE38270 | Nakajima | Oct 2003 | E |
6654830 | Taylor et al. | Nov 2003 | B1 |
6751555 | Poedjono | Jun 2004 | B2 |
6771646 | Sarkissian et al. | Aug 2004 | B1 |
6833787 | Levi | Dec 2004 | B1 |
6847970 | Keller et al. | Jan 2005 | B2 |
6901582 | Harrison | May 2005 | B1 |
6993454 | Murstein et al. | Jan 2006 | B1 |
7010588 | Martin et al. | Mar 2006 | B2 |
7103843 | Hand et al. | Sep 2006 | B2 |
7127324 | Batori et al. | Oct 2006 | B2 |
7274375 | David | Sep 2007 | B1 |
7363211 | Naganathan et al. | Apr 2008 | B1 |
7389345 | Adams | Jun 2008 | B1 |
7436822 | Lee et al. | Oct 2008 | B2 |
7480647 | Murstein et al. | Jan 2009 | B1 |
7480866 | Germain et al. | Jan 2009 | B2 |
7483978 | Esfahany et al. | Jan 2009 | B2 |
7512888 | Sugino et al. | Mar 2009 | B2 |
7523128 | Miller et al. | Apr 2009 | B1 |
7532642 | Peacock | May 2009 | B1 |
7557803 | Furukawa et al. | Jul 2009 | B2 |
7558790 | Miller et al. | Jul 2009 | B1 |
7565610 | Li et al. | Jul 2009 | B2 |
7587492 | Dyck et al. | Sep 2009 | B2 |
7620984 | Kallahalla et al. | Nov 2009 | B2 |
7644397 | Warren et al. | Jan 2010 | B2 |
7685251 | Houlihan et al. | Mar 2010 | B2 |
7698683 | Miller et al. | Apr 2010 | B1 |
7784027 | Harrison | Aug 2010 | B2 |
7792941 | Fried et al. | Sep 2010 | B2 |
7822837 | Urban et al. | Oct 2010 | B1 |
7882216 | Houlihan et al. | Feb 2011 | B2 |
7917617 | Ponnapur et al. | Mar 2011 | B1 |
7962590 | Or et al. | Jun 2011 | B1 |
7979245 | Bourlatchkov et al. | Jul 2011 | B1 |
8051162 | Arlitt et al. | Nov 2011 | B2 |
8051330 | Cinato et al. | Nov 2011 | B2 |
8051382 | Kingdom et al. | Nov 2011 | B1 |
8103638 | Voznika et al. | Jan 2012 | B2 |
8103826 | Kobayashi | Jan 2012 | B2 |
8112366 | Hollingsworth et al. | Feb 2012 | B2 |
8155996 | Cassone et al. | Apr 2012 | B1 |
8161058 | Agarwal et al. | Apr 2012 | B2 |
8175862 | Bourlatchkov et al. | May 2012 | B1 |
8175863 | Ostermeyer et al. | May 2012 | B1 |
8181154 | Harrison | May 2012 | B2 |
8185598 | Golovin et al. | May 2012 | B1 |
8203972 | Sauermann | Jun 2012 | B2 |
8217945 | Moscovici | Jul 2012 | B1 |
8239526 | Simpson et al. | Aug 2012 | B2 |
8255516 | Zhang et al. | Aug 2012 | B1 |
8347273 | Nageshappa et al. | Jan 2013 | B2 |
8364460 | Ostermeyer et al. | Jan 2013 | B2 |
8423646 | Jamjoom et al. | Apr 2013 | B2 |
8490055 | Basak | Jul 2013 | B2 |
8555244 | Harrison | Oct 2013 | B2 |
8635498 | Kahana et al. | Jan 2014 | B2 |
8819673 | Wilkinson et al. | Aug 2014 | B1 |
8880678 | Colton et al. | Nov 2014 | B1 |
8892415 | Bourlatchkov et al. | Nov 2014 | B2 |
8930395 | Sharma et al. | Jan 2015 | B2 |
20010018710 | Clarke et al. | Aug 2001 | A1 |
20020138659 | Trabaris et al. | Sep 2002 | A1 |
20020175941 | Hand et al. | Nov 2002 | A1 |
20030009551 | Benfield et al. | Jan 2003 | A1 |
20030028630 | Bischof et al. | Feb 2003 | A1 |
20030084155 | Graupner et al. | May 2003 | A1 |
20030097438 | Bearden et al. | May 2003 | A1 |
20030101262 | Godwin | May 2003 | A1 |
20030126256 | Cruickshank et al. | Jul 2003 | A1 |
20030149753 | Lamb | Aug 2003 | A1 |
20030204588 | Peebles et al. | Oct 2003 | A1 |
20030225563 | Gonos | Dec 2003 | A1 |
20040006763 | Van De Vanter et al. | Jan 2004 | A1 |
20040012637 | Alford et al. | Jan 2004 | A1 |
20040030592 | Buck et al. | Feb 2004 | A1 |
20040039728 | Fenlon et al. | Feb 2004 | A1 |
20040046785 | Keller | Mar 2004 | A1 |
20040059812 | Assa | Mar 2004 | A1 |
20040064293 | Hamilton et al. | Apr 2004 | A1 |
20040068560 | Oulu et al. | Apr 2004 | A1 |
20040102925 | Giffords | May 2004 | A1 |
20050021743 | Fleig et al. | Jan 2005 | A1 |
20050021748 | Garcea et al. | Jan 2005 | A1 |
20050111352 | Ho et al. | May 2005 | A1 |
20050187750 | Satoh et al. | Aug 2005 | A1 |
20050198649 | Zakonov | Sep 2005 | A1 |
20050232227 | Jorgenson et al. | Oct 2005 | A1 |
20060002478 | Seo | Jan 2006 | A1 |
20060101340 | Sridhar et al. | May 2006 | A1 |
20060168199 | Chagoly et al. | Jul 2006 | A1 |
20060171334 | Hirata et al. | Aug 2006 | A1 |
20060173875 | Stefaniak | Aug 2006 | A1 |
20070008884 | Tang | Jan 2007 | A1 |
20070028239 | Dyck et al. | Feb 2007 | A1 |
20070043860 | Pabari | Feb 2007 | A1 |
20070087756 | Hoffberg | Apr 2007 | A1 |
20070226341 | Mateo | Sep 2007 | A1 |
20070250525 | Sanghvi et al. | Oct 2007 | A1 |
20070255814 | Green et al. | Nov 2007 | A1 |
20080016115 | Bahl et al. | Jan 2008 | A1 |
20080077366 | Neuse et al. | Mar 2008 | A1 |
20080155537 | Dinda et al. | Jun 2008 | A1 |
20080162107 | Aniszczyk et al. | Jul 2008 | A1 |
20080222633 | Kami | Sep 2008 | A1 |
20080263073 | Ohba et al. | Oct 2008 | A1 |
20080306711 | Bansal | Dec 2008 | A1 |
20080320269 | Houlihan et al. | Dec 2008 | A1 |
20090013281 | Helfman et al. | Jan 2009 | A1 |
20090083276 | Barsness et al. | Mar 2009 | A1 |
20090119301 | Cherkasova et al. | May 2009 | A1 |
20090150538 | Tripathi et al. | Jun 2009 | A1 |
20090164250 | Hamilton et al. | Jun 2009 | A1 |
20090172666 | Yahalom et al. | Jul 2009 | A1 |
20090177567 | McKerlich et al. | Jul 2009 | A1 |
20090199177 | Edwards et al. | Aug 2009 | A1 |
20090204718 | Lawton et al. | Aug 2009 | A1 |
20090210527 | Kawato | Aug 2009 | A1 |
20090222558 | Xu et al. | Sep 2009 | A1 |
20090241108 | Edwards et al. | Sep 2009 | A1 |
20090271646 | Talwar et al. | Oct 2009 | A1 |
20090300605 | Edwards et al. | Dec 2009 | A1 |
20100015926 | Luff | Jan 2010 | A1 |
20100114554 | Misra | May 2010 | A1 |
20100125665 | Simpson et al. | May 2010 | A1 |
20100190509 | Davis | Jul 2010 | A1 |
20100223609 | DeHaan et al. | Sep 2010 | A1 |
20100229096 | Maiocco et al. | Sep 2010 | A1 |
20100241690 | Kurapati et al. | Sep 2010 | A1 |
20100315958 | Luo et al. | Dec 2010 | A1 |
20100317420 | Hoffberg | Dec 2010 | A1 |
20100325273 | Kudo | Dec 2010 | A1 |
20110047496 | Harrison | Feb 2011 | A1 |
20110066780 | Bruce | Mar 2011 | A1 |
20110119748 | Edwards et al. | May 2011 | A1 |
20110125800 | Seager et al. | May 2011 | A1 |
20110145380 | Glikson et al. | Jun 2011 | A1 |
20110153724 | Raja et al. | Jun 2011 | A1 |
20110161851 | Barber et al. | Jun 2011 | A1 |
20110209146 | Box et al. | Aug 2011 | A1 |
20110254704 | Fournier et al. | Oct 2011 | A1 |
20110270566 | Sawada et al. | Nov 2011 | A1 |
20110302577 | Reuther et al. | Dec 2011 | A1 |
20120005148 | Horvitz et al. | Jan 2012 | A1 |
20120011254 | Jamjoom et al. | Jan 2012 | A1 |
20120023429 | Medhi | Jan 2012 | A1 |
20120030346 | Fukuda et al. | Feb 2012 | A1 |
20120166623 | Suit | Jun 2012 | A1 |
20120198073 | Srikanth et al. | Aug 2012 | A1 |
20120221314 | Bourlatchkov et al. | Aug 2012 | A1 |
20120222002 | Harrison | Aug 2012 | A1 |
20120254900 | Kumar et al. | Oct 2012 | A1 |
20120271821 | Qin et al. | Oct 2012 | A1 |
20120284713 | Ostermeyer et al. | Nov 2012 | A1 |
20130066823 | Sweeney et al. | Mar 2013 | A1 |
20130159999 | Chiueh et al. | Jun 2013 | A1 |
20130174127 | Chen et al. | Jul 2013 | A1 |
20130211905 | Qin et al. | Aug 2013 | A1 |
20130212285 | Hoffmann et al. | Aug 2013 | A1 |
20130218547 | Ostermeyer et al. | Aug 2013 | A1 |
20140006580 | Raghu | Jan 2014 | A1 |
20140013315 | Genevski et al. | Jan 2014 | A1 |
20140052712 | Savage et al. | Feb 2014 | A1 |
20140079297 | Tadayon et al. | Mar 2014 | A1 |
20140089901 | Hadar | Mar 2014 | A1 |
20140092722 | Jain et al. | Apr 2014 | A1 |
20140115164 | Kalyanaraman et al. | Apr 2014 | A1 |
20140165063 | Shiva et al. | Jun 2014 | A1 |
20140269691 | Xue et al. | Sep 2014 | A1 |
20140304407 | Moon | Oct 2014 | A1 |
20140310813 | Murthy | Oct 2014 | A1 |
20140317261 | Shatzkamer et al. | Oct 2014 | A1 |
20140317293 | Shatzkamer | Oct 2014 | A1 |
20140350888 | Gesmann | Nov 2014 | A1 |
20140372230 | Ray et al. | Dec 2014 | A1 |
20150032437 | Kumar et al. | Jan 2015 | A1 |
20150046212 | Mos | Feb 2015 | A1 |
20150052250 | Doganata et al. | Feb 2015 | A1 |
20150127415 | Showalter et al. | May 2015 | A1 |
20150134589 | Marrelli et al. | May 2015 | A1 |
20150142457 | Marshall | May 2015 | A1 |
20150358391 | Moon et al. | Dec 2015 | A1 |
20160042296 | Shan et al. | Feb 2016 | A1 |
Number | Date | Country |
---|---|---|
WO-2013162596 | Oct 2013 | WO |
Entry |
---|
U.S. Appl. No. 13/745,677, Ostermeyer. |
U.S. Appl. No. 13/658,709, Wang et al. |
U.S. Appl. No. 13/658,724, Wang et al. |
U.S. Appl. No. 14/725,778, Chen et al. |
U.S. Appl. No. 14/607,776, Qin et al. |
U.S. Appl. No. 14/607,907, Qin et al. |
U.S. Appl. No. 14/858,341, Qin et al. |
Template Software, Workflow Template Process Template, “Developing a WFT Workflow System”, 1997, whole manual. |
Partridge C. et al. FIRE State Message Protocol Specification, BBN Technologies, Jul. 12, 2000, (pp. 1-19). |
Newrelicblog, “Platform as a Service Meets SaaS Application Performance Management”; http://blog.newrelic.com/2011/01/13/platform-as-a-service-meets-saas-application-performance-management/; Jan. 13, 2011; 3 pages. |
Quest Software, Inc.; “Instance Monitor”; Brochure, Quest Software, Inc.; 1999; 2 pages. |
Boucher, Karen et al.; “Essential Guide to Object Monitors”; Mar. 1999; 263 pages (whole book). |
Dewan, Prasun et al.; “A High-Level and Flexible Framework for Implementing Multiuser User Interfaces”; 1992; pp. 345-380. |
Distributed Management Task Force, Inc. (DMTF); “Common Information Model (CIM) Infrastructure Specification”; Version 2.3 Final; Oct. 4, 2005; 102 pages. |
Harrison, Guy; “Oracle SQL High-Performance Tuning”; (“Building a High-Performance Oracle Database Server” and “Tuning the Database Server”); Prentice-Hall, NJ; 1997; pp. 363-364 and 399-400. |
Hitachi, Ltd et al.; “Hitachi TPBroker User's Guide: Release 3.1”; Sep. 28, 1998; 311 pages (entire manual). |
Laessig, Dirk; “Score Big with JSR 77, the J2EE Management Specification”; Javaworld; Jun. 14, 2002; 8 pages. |
Muller, Nathan J.; “Focus on HP OpenView: A Guide to Hewlett-Packard's Network and Systems Management Platform”; CBM Books; 1995; 304 pages (entire book). |
Savant Corporation; “Products”; http://www.savant-corp.com/prods.html, downloaded on Nov. 16, 1999; 1 page. |
Savant Corporation; “Products”; http://www.savant-corp.com/prods.html, downloaded on Feb. 15, 2000; 1 page. |
Savant Corporation; “Q Application Diagnostics”; http://www.savant-corp.com/qappd.html, downloaded on Nov. 16, 1999; 1 page. |
Savant Corporation; “Q Hot SQL”; http://www.savant-corp.com/qhsql.html, downloaded on Nov. 16, 1999; 1 page. |
Savant Corporation; “Q Instance Overview”; http://www.savant-corp.com/qiov.html, downloaded on Nov. 16, 1999; 1 page. |
Savant Corporation; “Q Job Queue Manager”; http://www.savant-corp.com/qjobq.html, downloaded on Nov. 16, 1999; 1 page. |
Savant Corporation; “Q Lock Manager”; http://www.savant-corp.com/qlock.html, downloaded on Nov. 16, 1999; 1 page. |
Savant Corporation; “Q Replay Viewer”; http://www.savant-corp.com/greplay.html, downloaded on Nov. 16, 1999; 1 page. |
Singh, Inderjeet et al.; “Designing Web Services with J2EE 1.4 Platform JAX-RPC, SOAP, and XML Technologies”; Chapter 6 (pp. 247-289); May 2004; 46 pages. |
Tang, Steven H. et al.; “Blending Structured Graphics and Layout”; ACM; Nov. 1994; pp. 167-174. |
Wikimedia Foundation, Inc.; “Network Functions Virtualization”; http://en.wikipedia.org/wiki/Network—Functions—Virtualization; last modified Mar. 17, 2015; 6 pages. |
NEO4J; “Network Dependency Graph”; http://www.neo4j.org/graphgist?github-neo4J . . . ; Jun. 18, 2014; 9 pages. |
BMC Software, Inc.; “BMC Atrium Discovery and Dependency Mapping”; http://documents.bmc.com/products/documents/18/60/451860/451860.pdf ; 2014; 2 pages. |
Grisby, Duncan; “The Power behind BMC Atrium Discovery and Dependency Mapping”; http://documents.bmc.com/products/documents/18/97/451897/451897.pdf; 2014; 5 pages. |
Hewlett-Packard Development Company, L.P.; “Data Sheet: HP Universal Discovery Software”; http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA4-1812ENW.pdf; Sep. 2014; 8 pages. |
Quest Software, Inc.; “Foglight 5.6.4: Managing Dependency Mapping User Guide”; 2012; 62 pages. |
Quest Software, Inc.; “Foglight 5.6.2: Managing the Dependency Mapping User Guide”; 2011; 55 pages. |
Quest Software, Inc.; “Foglight APM: An Adaptive Architecture for All Environments”; 2011; 25 pages. |
vFoglight Alarms: Overview—Demo 6; 2009; 31 pages. |
Quest Software, Inc.; “Foglight 5.5.8: Managing Dependency Mapping User Guide”; 2011; 53 pages. |
Cappelli, Will; “APM Needs Three-Layered Application Materials”; Gartner Research; Feb. 26, 2010; 5 pages. |
Microsoft; “What is System Center Advisor?”; http://onlinehelp.microsoft.com/en-us/advisor/ff962512(printer).aspx; accessed on Apr. 5, 2011; 2 pages. |
Microsoft; “Microsoft System Center Advisor”; https://www.systemcenteradvisor.com/; accessed on Apr. 4, 2011; 1 page. |
Microsoft; “Windows Management Instrumentation (WMI): Frequently Asked Questions: Troubleshooting and Tips”; http://technet.microsoft.com/en-us/library/ee692772(d=printer).aspx; Microsoft TechNet; Jul. 28, 2004; 20 pages. |
Maston, Michael; “Managing Windows with WMI”; http://technet.microsoft.com/en-us/library/bb742445(d=printer).aspx; Nov. 1, 1999; 11 pages. |
Aternity, Inc., “Aternity Virtual Desktop Monitoring: Get Visibility into all Tiers of the Virtual Desktop,” http://www.aternity.com/products/workforce-apm/virtual-desktop-monitoring/, May 11, 2014, 2 pages. |
Solarwinds Worldwide. LLC., “SolarWinds: Virtualization Manager Administrator Guide,” DocVersion 6.3.0.1, Sep. 8, 2015, 321 pages. |
EG Innovations, Inc., “eG Enterprise Performance Monitoring for Citrix XenDesktop: Performance Assurance for Citrix Virtual Desktops,” www.eginnovations.com, accessed on Sep. 17, 2015, 2 pages. |
EG Innovations, Inc., “Service Overview: VDI Performance Assessment: Move VDI Deployments from Test to Best,” www.eginnovations.com, accessed on Sep. 17, 2015, 2 pages. |
EG Innovations, Inc., “Total Performance Monitoring for Citrix XenApp and XenDesktop,” www.eginnovations.com, accessed on Sep. 17, 2015, 2 pages. |
Goliath Technologies, “Goliath Performance Monitor: for Citrix XenApp & XenDesktop,” http://goliathtechnologies.com, May 2014, 2 pages. |
Goliath Technologies, “Goliath Performance Monitor: for VMware,” http://goliathtechnologies.com, May 2014, 2 pages. |
VMTurbo, “VDI Control Module,” http://vmturbo.com, Nov. 2014, 2 pages. |
VMTurbo, “VMTurbo Operations Manager: Demand-Driven Control for Cloud and Virtualization,” http://vmturbo.com, Jun. 2015, 2 pages. |
U.S. Appl. No. 14/619,897, Diep et al. |
U.S. Appl. No. 14/562,474, Rustad et al. |
U.S. Appl. No. 14/249,147, Rustad et al. |
Quarles, John et al.; “A Mixed Reality Approach for Merging Abstract and Concrete Knowledge”; IEEE Virtual Reality 2008; Mar. 8-12, 2008; pp. 27-34. |
Layered Technologies, Inc., “Optimized Application Performance and User Experience: Application Performance Management Service,” 2013, 4 pages. |
Levey, Tom, “Monitoring the Real End User Experience,” www.appdynamics.com, Jul. 25, 2013, 7 pages. |