Update Cosmos DB Table Throughput

Overview

The Update Cosmos DB Table Throughput action is used to update the throughput of every table within targeted Cosmos DB database accounts.

Offering flexibility in throughput allocation, this Update provides optimal performance while minimizing costs by scaling the throughput of your Cosmos DB tables up or down as needed, based on your workload demands and ensuring your Cosmos DB tables have enough throughput to handle unexpected spikes in traffic.

Permissions

When you link GorillaStack to your Azure account, GorillaStack creates a service principal that provides access to the following permissions that are used by this action:

  • Microsoft.DocumentDB/databaseAccounts/read
  • Microsoft.DocumentDB/databaseAccounts/tables/read
  • Microsoft.DocumentDB/databaseAccounts/tables/throughputSettings/read
  • Microsoft.DocumentDB/databaseAccounts/tables/throughputSettings/write

Getting Started

  1. Link your Azure account to your GorillaStack account if you have not done so already
  2. Create a database account in the linked Azure account
  3. Apply tags to the database account so it can be targeted in GorillaStack
  4. Create a new rule in GorillaStack
  5. In the rule’s context settings, select Azure as the platform, and then select one or more linked Azure Subscriptions to target
  6. In the rule’s trigger settings, select any available trigger — Schedule and Manual Execution are the most popular
  7. In the rule’s actions settings, select Update Cosmos DB Table Throughput as the action
  8. In this action’s Tag Targeting panel, create or select a tag group that targets the intended database account(s) and no others
  9. In this action’s Throughput Settings panel, select a throughput

Restore to Previous Throughput

Every time the Update Cosmos DB Table Throughput action runs and GorillaStack makes a change to the throughput of a targeted database account table, it will remember it's previous throughput.

This allows GorillaStack users to utilize the Restore to Previous Throughput option, applying any remembered Throughput for each targeted database account table.

Typically a Throughput value is used to scale down Cosmos DB tables at the end of a business day and the Restore to Previous Throughput option is utilized in a corresponding rule responsible for restoring a Cosmos DB table back to usual daytime scale at the start of a work day.

Note

Azure sets a few limitations that affect how this action operates:

  • The throughput setting must be a multiple of 100 RU/s
  • If your database is in heavy use, Azure might set a minimum throughput that is higher than 400 RU/s, and if the target throughput in the rule is less than this minimum throughput, the rule will set the throughput to the actual minimum
  • The maximum throughput on a Cosmos DB database account is almost always 1,000,000 but a small number of customers with exceptional needs have negotiated a higher throughput directly with Microsoft; customers in this position should contact GorillaStack directly too
  • Do not enable the setting in Cosmos DB that allows you to update the throughput on an entire database account in one operation as GorillaStack updates and remembers the throughput on each table in a database account individually
  • The Update Cosmos DB Table Throughput Action loops through each table in a database account, and updates or restores each one individually, but it uses tags on the database account for targeting, as Cosmos DB does not allow the tagging of tables
  • You must create your Cosmos DB database account with the Table API for it to have tables; if not, you will probably find your database has containers instead of tables