A computer-readable medium including computer instructions that, when executed on a host processor of a computer apparatus, directs the host processor to perform a method for performance bottleneck diagnosis and dependency discovery in distributed systems and computer networks including the computer apparatus, the method comprising:
- receiving, at the computer apparatus, a real-valued end-to-end measurement matrix, a number of end-to-end measurements, a number of time points, a number of network components, a loss function, and a plurality of constraints on output matrices, wherein,
- a number of columns of the real-valued end-to-end measurement matrix is the number of time points,
- a number of rows of the real-valued end-to-end measurement matrix is the number of end-to-end measurements,
- the network components include all components included in a distributed system or computer network,
- the end-to-end measurements are end-to-end measurements across at least a portion of the network components, and
- the loss function is defined in terms of the output matrices;
- learning basic output matrices by best approximation of a transpose of the real-valued end-to-end measurement matrix subject to the loss function and the constraints on the output matrices, wherein, the basic output matrices include a real-valued mixing-weights matrix and a real-valued delay matrix;
- selecting a first threshold based on the real-valued mixing-weights matrix and a second threshold based on the real-valued delay matrix, wherein the first threshold and the second threshold are selected such that appropriate binary matrices are calculated from the real-valued mixing weights matrix and the real-valued delay matrix;
- converting the real-valued mixing-weights matrix and the real-valued delay matrix into the respective binary dependency and bottleneck matrices using the first threshold and the second threshold;
- and
- returning, from the computer apparatus, the real-valued mixing-weights matrix, the real-valued delay matrix, and the respective binary dependency and bottleneck matrices.