Diagnosing application problems by learning from fault injections
AssigneeNetApp, Inc.
InventorsXiaoyun Zhu, Pradeep Padala, Nathaniel Morris, David Lee
Life of this patent
Estimating the term…
Abstract
Identifying a likely cause of a problem in an application can include: injecting a series of a set of predetermined faults into the application; sampling a subset of a set of training features from the application during each predetermined fault injected into the application and labeling each subset with an identifier of the corresponding predetermined fault; and training a classifier to identify the likely cause by associating a set of real-time features sampled from the application that pertain to the problem to one or more of the predetermined faults in response to the training features.
Claims20
A method for diagnosing a problem in an application, comprising:
- obtaining a set of real-time features sampled from the application corresponding to a time when a set of real users of the application experienced the problem in the application;
- and
- obtaining a likely cause of the problem in the application by applying the obtained set of real-time features to a classifier that has been pre-trained for recognizing a set of predetermined faults that may occur in the application based on a previous injection of a series of the predetermined faults into the application that occurred while a set of simulated user accesses providing at least simulated user inputs were applied to the application and while a set of training features for training the classifier were sampled from the application in a development or staging environment, wherein the pre-training is based on multiple time windows each having one or more faults injected into the application and, for each of the multiple time windows, sample sets of features from each of multiple resources within the application are extracted from corresponding logs and labeled with corresponding time window information and used as training information to generate refined sets of features corresponding to the problem in the application from multi-grain scanning to create new features corresponding to the problem in the application based on historical data utilizing a window size corresponding to a step having a pre-selected number of samples for which a feature vector is generated and multi-grain scanning is utilized to flatten each window and increase a number of features corresponding to the problem in the application for the corresponding window.
A computing system to diagnose a problem in an application, the computing system comprising:
- a storage device;
- a hardware processor coupled with the storage device, the hardware processor and storage device to provide:
- a classifier pre-trained to recognize a set of predetermined faults that may occur in the application based on an injection of a series of the predetermined faults into the application during a previous training while a set of simulated user accesses providing at least simulated user inputs were applied to the application and while a set of training features were sampled from the application in a development or staging environment, wherein the pre-training is based on multiple time windows each having one or more faults injected into the application and, for each of the multiple time windows, sample sets of features from each of multiple resources within the application are extracted from corresponding logs and labeled with corresponding time window information and used as training information to generate refined sets of features corresponding to the problem in the application from multi-grain scanning to create new features corresponding to the problem in the application based on historical data utilizing a window size corresponding to a step having a pre-selected number of samples for which a feature vector is generated and multi-grain scanning is utilized to flatten each window and increase a number of features corresponding to the problem in the application for the corresponding window;
- and
- a diagnostic service to apply the classifier to a set of real-time features sampled from the application when a set of real users of the application experienced the problem in the application such that the classifier yields a likely cause of the problem in the application in response to the real-time features.
A computational environment for diagnosing a problem in an application, the computational environment comprising:
- an application having multiple resources, wherein a set of one or more real-time features is extracted from each of the multiple resources of the application during a time window during which the problem exists;
- a diagnostic service commutatively coupled with the application, the diagnostic service having a local classifier corresponding to each of the multiple resources for which real-time features are extracted, the local classifiers to generate a likely cause for each set of one or more real-time features, the diagnostic service providing a voting mechanism to select one of the likely causes from the local classifiers as an overall likely cause of the problem, wherein at least one of the local classifiers is pre-trained based on multiple time windows each having one or more faults injected into the application and, for each of the multiple time windows, sample sets of features from each of multiple resources within the application are extracted from corresponding logs and labeled with corresponding time window information and used as training information.
Dependencies are inferred from the claim text.