# US 10,374,919 B2 · Resource manager

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,374,919 B2
- Document ID: US10374919B2
- Status: Granted
- Kind: B2
- Application number: 15/380,889
- Filed: 2016-12-15
- Published: 2017-06-08
- Granted: 2019-08-06
- Earliest claimed: 2012-06-20
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Derek S. Pai; Michael R. Foster; David John Ward, Jr.; Christopher B. Barclay; Gautam S. Shanbhag
- Web page: https://patentgrep.com/patent/US10374919B2

## CPC

- H04L 41/5025: by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
- H04L 41/5051: Service on demand, e.g. definition and deployment of services in real time
- H04L 43/06: Generation of reports
- H04L 43/16: Threshold monitoring
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A resource manager may monitor resources offered by a resource provider. The resource manager receives computing metrics from the resources and may perform a management action when a customer defined usage limit is satisfied. The management action may include the resource manager generating an alert, or the resource manager preventing the customer from further accessing the resources offered by the resource provider. The resource manager may also be used to reduce the cost of running a customer's application that uses resources offered by the service provider. The resource manager may also receive business metrics from the customer and determine rates of return using the business metrics and the computing metrics.

## Claims

### Claim 1

A computer-implemented method for managing computing resources, the method comprising:
as implemented by one or more computing devices configured with computer-executable instructions,
determining first computing usage metrics for a first resource group, the first resource group comprising one or more computing resource instances, the one or more computing resource instances comprising one or more virtual machines executing one or more infrastructure applications, wherein the first computing usage metrics are associated with usage of the one or more computing resource instances of the first resource group, wherein a user previously identified each computing resource instance associated with the first resource group;
determining second computing usage metrics for a second resource group, the second resource group comprising one or more computing resource instances, the one or more computing resource instances comprising one or more virtual machines executing one or more infrastructure applications, wherein the second computing usage metrics are associated with usage of the one or more computing resource instances of the second resource group, wherein the user previously identified each computing resource instance associated with the second resource group;
receiving user-defined metrics from a user computing system, the user-defined metrics associated with the first resource group and the second resource group;
determining a first calculated performance metric based, at least in part, on the user-defined metrics and the first computing usage metrics for the first resource group;
determining a second calculated performance metric based, at least in part, on the user-defined metrics and the second computing usage metrics for the second resource group;
determining whether operation of the first resource group provides an improvement over operation of the second resource group based, at least in part, on a comparison of the first calculated performance metric and the second calculated performance metric; and
based on a determination that the first calculated performance metric indicates an improvement of the first resource group over the second resource group, automatically disabling the second resource group and directing all of the processing for the second resource group to the first resource group.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the user-defined metrics reflect a number of processed tasks, the first computing metrics reflect a cost of processing at least a portion of computing tasks processed using the first resource group, and the second computing metrics reflect the cost of processing at least a portion of some of computing tasks processed using the second resource group.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
generating a report comprising the first calculated performance metric and the second calculated performance metric; and
communicating the report to a customer computer system.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving a threshold value reflecting a minimum calculated performance metric defined by the user; and,
generating an alert when at least one of the first calculated performance metric or second calculated performance metric falls below the threshold value.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first calculated value is a first rate of return and the second calculated value is a second rate of return.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the user-defined metrics reflect revenue received by the user, the first computing metrics reflect a cost of using the first resource group, and the second computing metrics reflect a cost of using the second resource group.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the first computing usage metrics identify one or more services utilized by the first resource group.

### Claim 8

A system for managing the use of computing resources, the system comprising:
one or more processors;
a non-transitory computer-readable medium having computer-executable instructions that when executed cause the one or more processors to:
determine first computing usage metrics for a first resource group, the first resource group comprising one or more computing resource instances, the one or more computing resource instances comprising one or more virtual machines executing one or more infrastructure applications, wherein the first computing usage metrics are associated with usage of the one or more computing resource instances of the first resource group, wherein a user previously identified each computing resource instance associated with the first resource group;
determine second computing usage metrics for a second resource group, the second resource group comprising one or more computing resource instances, the one or more computing resource instances comprising one or more virtual machines executing one or more infrastructure applications, wherein the second computing usage metrics are associated with usage of the one or more computing resource instances of the second resource group, wherein the user previously identified each computing resource instance associated with the second resource group;
receive user-defined metrics from a user computing system, the user-defined metrics associated with the first resource group and the second resource group;
determine a first calculated performance metric based, at least in part, on the user-defined metrics and the first computing usage metrics for the first resource group;
determine a second calculated performance metric based, at least in part, on the user-defined metrics and the second computing usage metrics for the second resource group;
determine whether operation of the first resource group provides an improvement over operation of the second resource group based, at least in part, on a comparison of the first calculated performance metric and the second calculated performance metric; and
based on a determination that the first calculated performance metric indicates an improvement of the first resource group over the second resource group, automatically direct at least a portion of the processing for the second resource group to the first resource group,
wherein the user-defined metrics reflect a number of processed tasks, the first computing metrics reflect a cost of processing at least a portion of computing tasks processed using the first resource group, and the second computing metrics reflect a cost of processing at least a portion of some of computing tasks processed using the second resource group.

### Claim 9 (depends on 8)

The system of claim 8, wherein the computer executable instructions when executed further cause the one or more processors to disable the second resource group and directing all of the processing for the second resource group to the first resource group.

### Claim 10 (depends on 8)

The system of claim 8, wherein the computer executable instructions when executed further cause the one or more processors to:
identify configuration differences between the first resource group and the second resource group; and
modify configuration of the second resource group based on the configuration of the first resource group.

### Claim 11 (depends on 10)

The system of claim 10, wherein the modification of the configuration of the second resource group includes adding at least one service used by the first resource group.

### Claim 12 (depends on 10)

The system of claim 10, wherein the modification of the configuration of the second resource includes using one or more instances of the first resource group.

### Claim 13 (depends on 10)

The system of claim 10, wherein the modification of the configuration of the second resource includes using one or more infrastructure applications of the first resource group.

### Claim 14 (depends on 8)

The system of claim 8, wherein the computer executable instructions when executed further cause the one or more processors to communicate a report to a user computing device.

### Claim 15 (depends on 8)

The system of claim 8, wherein the computer executable instructions when executed further cause the one or more processors to:
receive a threshold value reflecting a minimum calculated performance metric defined by the user;
generate an alert when the calculated performance metric falls below the threshold value; and
transmit the alert to at least one user computing device.

### Claim 16

A non-transitory computer-readable storage medium storing computer executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising:
determining computing usage metrics for a first resource group, the first resource group comprising one or more computing resource instances, the one or more computing resource instances comprising one or more virtual machines executing one or more infrastructure applications, wherein the first computing usage metrics are associated with usage of the one or more computing resource instances of the first resource group, wherein a user previously identified each computing resource instance associated with the first resource group;
determining second computing usage metrics for a second resource group, the second resource group comprising one or more computing resource instances, the one or more computing resource instances comprising one or more virtual machines executing one or more infrastructure applications, wherein the second computing usage metrics are associated with usage of the one or more computing resource instances of the second resource group wherein the user previously identified each computing resource instance associated with the second resource group;
receiving user-defined metrics from a user computing system, the user-defined metrics associated with the first resource group and the second resource group;
determining a first calculated performance metric based, at least in part, on the user-defined metrics and the first computing usage metrics for the first resource group;
determining a second calculated performance metric based, at least in part, on the user-defined metrics and the second computing usage metrics for the second resource group;
determining whether operation of the first resource group provides an improvement over operation of the second resource group based, at least in part, on a comparison of the first calculated performance metric and the second calculated performance metric; and
based on a determination that the first calculated performance metric indicates an improvement of the first resource group over the second resource group, automatically directing at least a portion of the processing for the second resource group to the first resource group,
wherein the user-defined metrics reflect a number of processed tasks, the first computing metrics reflect a cost of processing at least a portion of computing tasks processed using the first resource group, and the second computing metrics reflect a cost of processing at least a portion of some of computing tasks processed using the second resource group.

### Claim 17 (depends on 16)

The computer-readable, non-transitory storage medium of claim 16, wherein the computer executable instructions when executed further cause the one or more processors to disable the second resource group and directing all of the processing for the second resource group to the first resource group.

### Claim 18 (depends on 16)

The computer-readable, non-transitory storage medium of claim 16, wherein the computer executable instructions when executed further cause the one or more processors to:
identify configuration differences between the first resource group and the second resource group; and
modify configuration of the second resource group based on the configuration of the first resource group.

### Claim 19 (depends on 16)

The computer-readable, non-transitory storage medium of claim 16, wherein the modification of the configuration of the second resource includes using one or more instances of the first resource group.
