US 11,886,320 B2
Diagnosing application problems by learning from fault injections
Xiaoyun Zhu, Cupertino, CA (US); Pradeep Padala, Sunnyvale, CA (US); Nathaniel Morris, Columbus, OH (US); and David Lee, Foster City, CA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NeurOps Inc., Mountain View, CA (US)
Filed on Jun. 19, 2020, as Appl. No. 16/906,768.
Prior Publication US 2021/0397538 A1, Dec. 23, 2021
Int. Cl. G06F 11/36 (2006.01)
CPC G06F 11/3612 (2013.01) [G06F 11/366 (2013.01); G06F 11/3624 (2013.01); G06F 11/3636 (2013.01)] 20 Claims
OG exemplary drawing
 
1. 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.