Patent ID: 7962797

Claim:
At a computer system including one or more processors and system memory, a computer implemented method for generating a health model for a software service, the computer implemented method comprising: an act of accessing historical telemetry data for the software service, the historical telemetry data generated by a plurality of application servers during interoperation between the plurality of application servers to perform a primary function of the software service, the historical telemetry data including telemetry data values for various monitored characteristics of the software service; an act of accessing Key Performance Indicator (KPI) data, the KPI data identifying one or more KPI telemetry counters and corresponding KPI thresholds, the KPI telemetry counters and corresponding KPI thresholds used to determine if the software service is adequately performing a primary function such that when data values for the KPI telemetry counters satisfy the corresponding KPI thresholds, the software service is adequately performing the primary function and when a data value for any of the KPI telemetry counters does not satisfy its corresponding KPI threshold, the software service is not adequately performing the primary function; an act of analyzing the historical telemetry data for the software service to identify any prior problem events when a data value for a corresponding KPI telemetry counter did not satisfy a corresponding KPI threshold for some period of time; for each identified problem event: an act of creating a problem fingerprint for the problem event, problem fingerprint creation including: an act of identifying a subset of other telemetry counters relevant to the KPI telemetry counter from within the historical telemetry data; an act of accessing corresponding data values for the other telemetry counters for at least during the period of time when the data value of the KPI telemetry counter did not satisfy the KPI threshold; an act of combining the subset of other telemetry counters and corresponding data values into a problem fingerprint to detect future occurrences of the identified problem event when the software service is not adequately performing the primary function; and an act of, automatically and without user intervention, subsequently using the problem fingerprint to generate a health model for the software service, the generated health model configured to monitor the software service to detect further occurrences of the software service not adequately performing the primary function.