{"id":11272,"date":"2025-11-18T08:00:37","date_gmt":"2025-11-18T16:00:37","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cosmosdb\/?p=11272"},"modified":"2025-11-14T16:32:49","modified_gmt":"2025-11-15T00:32:49","slug":"now-generally-available-azure-cosmos-db-fleet-pool","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cosmosdb\/now-generally-available-azure-cosmos-db-fleet-pool\/","title":{"rendered":"Now Generally Available: Azure Cosmos DB Fleet Pools"},"content":{"rendered":"<p>We\u2019re excited to announce two updates to Azure Cosmos DB fleets:<\/p>\n<ul>\n<li>Fleet pools \u2013 now generally available<\/li>\n<li>Fleet analytics \u2013 now in public preview<\/li>\n<\/ul>\n<p>Azure Cosmos DB fleets enables developers to build scalable, isolated, and cost-effective multi-tenant or Software as a Service (SaaS) applications.<\/p>\n<p>Today, many SaaS providers using Azure Cosmos DB isolate each tenant (the end customer of the SaaS provider) in a separate database account to meet strict performance and security requirements\u2014for example, supporting customer-managed keys. While this approach ensures tenant isolation, it creates operational complexity at scale. Managing thousands of RU\/s settings becomes difficult, and provisioning dedicated capacity for every tenant can be costly\u2014especially when many tenants are inactive. Monitoring performance and usage across thousands of accounts also adds to the overhead.<\/p>\n<p>With Azure Cosmos DB fleets, you get two new capabilities \u2013 pools (GA) and fleet analytics (public preview) \u2013 that help you lower costs, simplify capacity management, and provide at-scale visibility across your Cosmos DB accounts.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-scaled.png\"><img decoding=\"async\" class=\"alignnone wp-image-11281\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-scaled.png\" alt=\"fleet1 image\" width=\"808\" height=\"452\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-scaled.png 2500w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-300x168.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-1024x574.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-768x430.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-1536x860.png 1536w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet1-2048x1147.png 2048w\" sizes=\"(max-width: 808px) 100vw, 808px\" \/><\/a><\/p>\n<p><span style=\"font-size: 18pt;\"><strong>Why Pooling?<\/strong><\/span><\/p>\n<p>In a multi-tenant environment, it is very common for different tenants (Azure Cosmos DB accounts) to have RU\/s usage spike by orders of magnitude, but at different, unpredictable times. In this basic example below, with 4 tenants, each consumes 10,000 RU\/s at some point during the hour, but typical per-tenant usage is much closer to 2,000 &#8211; 3,000 RU\/s.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet2.png\"><img decoding=\"async\" class=\"alignnone wp-image-11280\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet2.png\" alt=\"fleet2 image\" width=\"565\" height=\"501\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet2.png 1351w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet2-300x266.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet2-1024x908.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet2-768x681.png 768w\" sizes=\"(max-width: 565px) 100vw, 565px\" \/><\/a><\/p>\n<p>At any given point in the hour, the cumulative usage across all tenants is closer to 15,000 RU\/s, much lower than 40,000 RU\/s, the sum of all individual peaks. By shifting our RU\/s usage to the shared pool, we can realize cost savings across the time dimension. As the number of tenants grow, so does the impact of pooling.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3.png\"><img decoding=\"async\" class=\"alignnone wp-image-11282\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3.png\" alt=\"fleet3 image\" width=\"565\" height=\"559\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3.png 1197w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3-300x297.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3-1024x1013.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3-768x760.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3-24x24.png 24w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3-48x48.png 48w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet3-96x96.png 96w\" sizes=\"(max-width: 565px) 100vw, 565px\" \/><\/a><\/p>\n<p>Let\u2019s take a closer look into how this works.<\/p>\n<p>Fleets let you organize the database accounts in your multi-tenant application into sub-groups called <strong>fleetspaces<\/strong>. By design, the database accounts can span across different subscriptions and resource groups.<\/p>\n<p>Within each fleetspace, you can create an optional <strong>throughput pool (RU\/s)<\/strong> that all accounts in the group can share.<\/p>\n<p>Each resource still gets dedicated RU\/s that are guaranteed and always available to that resource. When a resource needs more than its dedicated RU\/s\u2014such as during a traffic spike\u2014it can draw from the shared pool. This approach allows you to provision each tenant based on typical usage instead of over-provisioning for peak load, significantly simplifying capacity management. You maintain the performance and security isolation benefits of separate database accounts per tenant while optimizing for cost by using the pool.<\/p>\n<p>In the below example, we\u2019ve set up a fleetspace with 10 database accounts and a pool of RU\/s. Each database account has 1 container with dedicated autoscale 100-1000 RU\/s.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/FleetAccounts.png\"><img decoding=\"async\" class=\"alignnone wp-image-10370\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/FleetAccounts.png\" alt=\"FleetAccounts image\" width=\"1007\" height=\"545\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/FleetAccounts.png 1282w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/FleetAccounts-300x162.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/FleetAccounts-1024x554.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/FleetAccounts-768x416.png 768w\" sizes=\"(max-width: 1007px) 100vw, 1007px\" \/><\/a><\/p>\n<p>We now see that for spikes beyond 1000 RU\/s, which otherwise would have been rate-limited, the requests are now served by the pool. It is important to note, pool RU\/s autoscale by default. You can configure custom minimum and maximum limits with up to a 10x scaling range and billing is based on the highest RU\/s the pool reaches within each hour.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/RUConsumedByTenant_v2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-10373\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/RUConsumedByTenant_v2.png\" alt=\"RU\/s consumed by 10 tenants\" width=\"888\" height=\"353\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/RUConsumedByTenant_v2.png 888w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/RUConsumedByTenant_v2-300x119.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/05\/RUConsumedByTenant_v2-768x305.png 768w\" sizes=\"(max-width: 888px) 100vw, 888px\" \/><\/a><\/p>\n<p>Learn more: <a href=\"https:\/\/aka.ms\/CosmosDBFleetPools\">https:\/\/aka.ms\/CosmosDBFleetPools<\/a><\/p>\n<p><span style=\"font-size: 18pt;\"><strong>Fleet analytics (public preview)<\/strong><\/span><\/p>\n<p>As a SaaS provider who has hundreds or thousands of Azure Cosmos DB resources, it can be difficult to monitor and understand long-term trends of the fleet at scale.<\/p>\n<p>With fleet analytics, you can enable optional collection of hourly data on cost, performance, and usage across all resources in a fleet.<\/p>\n<p>This data, stored in open source Parquet format and organized in a star schema, streams automatically to a Microsoft Fabric workspace or an Azure Storage account.<\/p>\n<p>With Microsoft Fabric, use built-in visualizations or run sample queries to answer key questions such as:<\/p>\n<ul>\n<li>What are my most active accounts \/ tenants?<\/li>\n<li>What resources should I scale up or scale down?<\/li>\n<li>Do I have antipatterns, such as collections with large document sizes?<\/li>\n<li>How many RU\/s should I purchase for a reservation?<\/li>\n<\/ul>\n<p>Below are examples of the insights you can capture with Fleet Analytics:<\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Fleet Overview<\/strong><\/span><\/p>\n<ul>\n<li>Track RU and request trends over time<\/li>\n<li>Visualize total storage growth<\/li>\n<li>See the percentage of collections using autoscale<\/li>\n<li>Compare backup strategies across the fleet<\/li>\n<li>Identify top accounts by traffic<\/li>\n<li>View regional activity at a glance<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4.png\"><img decoding=\"async\" class=\"alignnone wp-image-11284\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4.png\" alt=\"fleet4 image\" width=\"1029\" height=\"566\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4.png 1784w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4-300x165.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4-1024x563.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4-768x422.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet4-1536x844.png 1536w\" sizes=\"(max-width: 1029px) 100vw, 1029px\" \/><\/a><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Fleet Optimization<\/strong><\/span><\/p>\n<p>View where you can reduce cost or improve operational efficiency:<\/p>\n<ul>\n<li>Compare provisioned vs. scaled RU\/s<\/li>\n<li>Identify unused accounts with projected monthly cost<\/li>\n<li>Surface collections with anti-pattern of large document sizes<\/li>\n<li>Highlight collections that never scale beyond autoscale minimums &#8211; optimization opportunity<\/li>\n<li>Analyze cost distribution across accounts &#8211; helpful for attributing cost per tenant in a multi-tenant system<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5.png\"><img decoding=\"async\" class=\"alignnone wp-image-11283\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5.png\" alt=\"fleet5 image\" width=\"1008\" height=\"561\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5.png 1786w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5-300x167.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5-1024x570.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5-768x427.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2025\/11\/fleet5-1536x855.png 1536w\" sizes=\"(max-width: 1008px) 100vw, 1008px\" \/><\/a><\/p>\n<p>Fleet Analytics helps you turn operational data into clear, actionable insights, making it easier to optimize cost, improve performance, and manage your entire Cosmos DB fleet efficiently.<\/p>\n<p>Learn more: <a href=\"https:\/\/aka.ms\/CosmosDBFleetAnalytics\">https:\/\/aka.ms\/CosmosDBFleetAnalytics<\/a><\/p>\n<p><span style=\"font-size: 18pt;\"><strong>Try It Out!<\/strong><\/span><\/p>\n<p>To get started, create a new <a href=\"https:\/\/aka.ms\/AzureCosmosDBFleet\">fleet<\/a> and <a href=\"https:\/\/aka.ms\/CosmosDBFleetPools\">fleetspace<\/a> with a pool of RU\/s. Next, add your Cosmos DB accounts and see the pool in action!<\/p>\n<p><span style=\"font-size: 18pt;\"><strong>Leave a review<\/strong><\/span><\/p>\n<p>Tell us about your Azure Cosmos DB experience! Leave a review on PeerSpot and we\u2019ll gift you $50. <a href=\"https:\/\/peerspotdotcom.my.site.com\/proReviews\/?SalesOpportunityProduct=00kPy000004TKXJIA4&amp;productPeerspotNumber=30881&amp;CalendlyAccount=peerspot&amp;CalendlyFormLink=peerspot-product-reviews-ps-gc-vi-sf-50&amp;giftCard=50\">Get started here<\/a>.<\/p>\n<p><span style=\"font-size: 18pt;\"><strong>About Azure Cosmos DB<\/strong><\/span><\/p>\n<p>Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.<\/p>\n<p>To stay in the loop on Azure Cosmos DB updates, follow us on <a href=\"https:\/\/twitter.com\/AzureCosmosDB\">X<\/a>, <a href=\"https:\/\/aka.ms\/AzureCosmosDBYouTube\">YouTube<\/a>, and <a href=\"https:\/\/www.linkedin.com\/company\/azure-cosmos-db\/\">LinkedIn<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re excited to announce two updates to Azure Cosmos DB fleets: Fleet pools \u2013 now generally available Fleet analytics \u2013 now in public preview Azure Cosmos DB fleets enables developers to build scalable, isolated, and cost-effective multi-tenant or Software as a Service (SaaS) applications. Today, many SaaS providers using Azure Cosmos DB isolate each tenant [&hellip;]<\/p>\n","protected":false},"author":56589,"featured_media":11316,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14],"tags":[],"class_list":["post-11272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-core-sql-api"],"acf":[],"blog_post_summary":"<p>We\u2019re excited to announce two updates to Azure Cosmos DB fleets: Fleet pools \u2013 now generally available Fleet analytics \u2013 now in public preview Azure Cosmos DB fleets enables developers to build scalable, isolated, and cost-effective multi-tenant or Software as a Service (SaaS) applications. Today, many SaaS providers using Azure Cosmos DB isolate each tenant [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/11272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/users\/56589"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/comments?post=11272"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/11272\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media\/11316"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media?parent=11272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/categories?post=11272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/tags?post=11272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}