A method for identifying latency contributors in a data storage network, comprising: creating a historical workload fingerprint model for a data storage network from training data, the historical workload fingerprint model being a multidimensional vector representing a plurality of data latency metrics, wherein the data latency metrics include input/output (I/O) counts in the training data, a read/write ratio of the training data, and a cache hit percentage in the training data, comprising: recording the training data from a storage network over a sampling interval, wherein the training data includes total and average data latency metrics for the data storage network; creating a bin histogram representative of the training data; creating a labelled point data structure using the bin histogram, the labelled point data structure comprising a plurality of points, each point of the plurality of points representing a distribution of a number of input/output (I/O) operations of various sizes into predetermined sized groups, running a clustering algorithm on the labelled point data structure to generate clusters representing respective workload fingerprints; and identifying latency thresholds for each workload fingerprint of the training data, each latency threshold delineating a boundary between normal and high latency; monitoring and classifying a current sample data from the data storage network into a cluster of the clusters generated by the clustering algorithm; assigning a score to the current sample data based on the cluster and the historical workload fingerprint model; and when the score is greater than zero, correlating measured latency values, including a latency value for the current sample data, to historically measured latency related factors to create a latency score chart identifying factors causing latency in the data storage network, based on their increase or decrease, for the current sample data. creating a historical workload fingerprint model for a data storage network from training data, the historical workload fingerprint model being a multidimensional vector representing a plurality of data latency metrics, wherein the data latency metrics include input/output (I/O) counts in the training data, a read/write ratio of the training data, and a cache hit percentage in the training data, comprising: recording the training data from a storage network over a sampling interval, wherein the training data includes total and average data latency metrics for the data storage network; creating a bin histogram representative of the training data; creating a labelled point data structure using the bin histogram, the labelled point data structure comprising a plurality of points, each point of the plurality of points representing a distribution of a number of input/output (I/O) operations of various sizes into predetermined sized groups, running a clustering algorithm on the labelled point data structure to generate clusters representing respective workload fingerprints; and identifying latency thresholds for each workload fingerprint of the training data, each latency threshold delineating a boundary between normal and high latency; recording the training data from a storage network over a sampling interval, wherein the training data includes total and average data latency metrics for the data storage network; creating a bin histogram representative of the training data; creating a labelled point data structure using the bin histogram, the labelled point data structure comprising a plurality of points, each point of the plurality of points representing a distribution of a number of input/output (I/O) operations of various sizes into predetermined sized groups, running a clustering algorithm on the labelled point data structure to generate clusters representing respective workload fingerprints; and identifying latency thresholds for each workload fingerprint of the training data, each latency threshold delineating a boundary between normal and high latency; monitoring and classifying a current sample data from the data storage network into a cluster of the clusters generated by the clustering algorithm; assigning a score to the current sample data based on the cluster and the historical workload fingerprint model; and when the score is greater than zero, correlating measured latency values, including a latency value for the current sample data, to historically measured latency related factors to create a latency score chart identifying factors causing latency in the data storage network, based on their increase or decrease, for the current sample data.