This page describes how to view and modify the configuration of your underutilized, on-demand reservation recommendations. You might want to modify the configuration to increase the number of recommendations that you receive, or to get fewer recommendations to delete reservations that you plan to use.
- For more information on the parameters you can use to customize the recommendations, see Choose the right configuration parameters.
- For more information on how to take action when you get recommendations about idle or underutilized reservations, see View and apply idle reservation recommendations or View and apply underutilized reservation recommendations.
Before you begin
-
If you haven't already, then set up authentication.
Authentication is
the process by which your identity is verified for access to Google Cloud services and APIs.
To run code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
Configure your recommendations
To configure your underutilized reservation recommendations, do the following:
- Get the current configuration to obtain the JSON file of the configuration.
- Edit the configuration file in JSON format.
- Upload the new configuration file to apply the changes.
Get the current configuration
You can obtain the current configuration for underutilized reservation recommendations for your project by using the Google Cloud CLI or REST.
Complete this task using one of the following methods.
gcloud
To get the current configuration parameters, use the
gcloud recommender recommender-config describe
command
and use google.compute.RightSizeResourceRecommender
as the
Recommender ID:
gcloud recommender recommender-config describe google.compute.RightSizeResourceRecommender \ --location=ZONE --billing-account=BILLING_ACCOUNT_ID
Replace the following:
ZONE
with the zone that contains reservations to list recommendations for.BILLING_ACCOUNT_ID
with the ID of your billing account.
For example:
gcloud recommender recommender-config describe google.compute.RightSizeResourceRecommender \ --location=us-central1-c --billing-account=my-billing-account-id
The command returns the recommender configuration, including the modifiable
subfields params.under_utilized_reservation_lookback_period
and
params.under_utilized_reservation_utilization_threshold
.
{ "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config", "recommenderGenerationConfig": { "params": { "under_utilized_reservation_lookback_period": "P7D", "under_utilized_reservation_utilization_threshold": "0.8" } }, "etag": "\"2f3c9b65cda6a4ba\"", "updateTime": "2024-06-03T04:41:15.330351Z" }
REST
To retrieve the current configuration, use the
recommenders.getConfig
method and specify google.compute.RightSizeResourceRecommender
as the
Recommender ID:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config
Replace the following:
PROJECT_ID
: the ID of the project for which you want to modify the recommender configuration.ZONE
: the zone that contains your project.
From the command line, execute the following command to get the recommender configuration for a project:
PROJECT_ID=PROJECT_ID ZONE=ZONE curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: ${PROJECT_ID}" \ https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.RightSizeResourceRecommender/config
The command returns the recommender configuration, including the subfields
that you can modify: params.under_utilized_reservation_lookback_period
and
params.under_utilized_reservation_utilization_threshold
.
{ "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config", "recommenderGenerationConfig": { "params": { "under_utilized_reservation_lookback_period": "P7D", "under_utilized_reservation_utilization_threshold": "0.8" } }, "etag": "\"2f3c9b65cda6a4ba\"", "updateTime": "2024-06-03T04:41:15.330351Z" }
Update the configuration for a project
To update the configuration of your underutilized reservation recommendations, modify the
value for under_utilized_reservation_lookback_period
and upload the new
configuration for your project.
You can set the observation period to a value of 7 days up to 30 days, using
a string beginning with P
, then an integer for the number of days (7
minimum
and 30
maximum), followed by D
, for example:
- For an observation period of 7 days, use
"P7D"
. - For an observation period of 30 days, use
"P30D"
.
Similarly, set the usage threshold that triggers an underutilized reservation
recommendation by modifying the value for
under_utilized_reservation_utilization_threshold
and upload the new
configuration for your project, for example:
- For a threshold of 80%,
"0.8"
.
After you upload the new configuration, it takes approximately 48 hours for it to take effect. Until that time, any generated recommendations use the previous configuration.
Complete this task using one of the following methods.
gcloud
To update the configuration parameters, use the
gcloud recommender recommender-config update
command
and use google.compute.RightSizeResourceRecommender
as the
Recommender ID:
gcloud recommender recommender-config update google.compute.RightSizeResourceRecommender\ --location=ZONE \ --config-file=CONFIG_FILE_PATH \ --etag=ETAG \ --billing-account=BILLING_ACCOUNT_ID
Replace the following:
ZONE
: the zone for which you want to obtain the current configurationCONFIG_FILE_PATH
: the path to the JSON file with the current configurationETAG
: the etag value of the current configurationBILLING_ACCOUNT_ID
: the ID of the billing account
In your configuration file, specify only the recommenderGenerationConfig
object with the updated configuration parameters. For example, to specify
an observation period of 21 days and the underutilized reservation threshold
to 80%, use the following configuration file:
{ "params": { "under_utilized_reservation_lookback_period": "P21D", "under_utilized_reservation_utilization_threshold": "0.8" } }
If the command is successful, it returns a response body similar to the following, showing the new configuration with the parameters you just modified.
{ "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config", "recommenderGenerationConfig": { "params": { "under_utilized_reservation_lookback_period": "P21D", "under_utilized_reservation_utilization_threshold": "0.8" } }, "etag": "\"1245f9435cd01ea8\"", "updateTime": "2024-06-03T05:00:05Z" }
REST
To update the configuration, make a PATCH
request to the
recommenders.updateConfig
method and specify google.compute.RightSizeResourceRecommender
as the
Recommender ID:
PATCH https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config { "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config", "recommenderGenerationConfig": { "params": { "under_utilized_reservation_lookback_period": "P21D", "under_utilized_reservation_utilization_threshold": "0.8" } }, "etag": "\"2f3c9b65cda6a4ba\"" }
Replace the following:
PROJECT_ID
: the ID of the project for which you want to modify the recommender configuration.ZONE
: the zone that contains your project.
Save the request body in a file, for example config.json
.
You can then reference the file when you update the recommender configuration
for your project, using a command similar to the following:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: ${PROJECT_ID}" \ -d @config.json \ https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.RightSizeResourceRecommender/config
The POST
command returns a response body similar to the following, showing
the new configuration with the parameters you just modified.
{ "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.RightSizeResourceRecommender/config", "recommenderGenerationConfig": { "params": { "under_utilized_reservation_lookback_period": "P21D", "under_utilized_reservation_utilization_threshold": "0.8" } }, "etag": "\"1245f9435cd01ea8\"", "updateTime": "2024-06-03T05:00:05Z" }
What's next
- Learn how to view and apply idle reservation recommendations.
- Learn how to view and apply underutilized reservation recommendations.