1. A method for analyzing performance of an application, comprising: collecting performance metric data from the application over time; segmenting the performance metric data into time segments representing sets of contiguous time samples which exhibit similar performance metric behavior, wherein each of the time segments relates to a period of different behavior within the performance metric data; determining the presence of an anomaly in a time segment; and correlating the anomalous segment with other data available to the system to determine the cause of the anomaly.