Skip to content

Latest commit

 

History

History
138 lines (101 loc) · 9.21 KB

File metadata and controls

138 lines (101 loc) · 9.21 KB
description This template creates a new FinOps hub instance, including Data Lake storage and a Data Factory.
page_type sample
products
azure
azure-blob-storage
azure-cost-management
azure-data-explorer
azure-data-factory
azure-data-lake
azure-key-vault
azure-resource-manager
azure-storage-accounts
urlFragment finops-hub
languages
bicep
json

FinOps hub

Azure Public Test Date Azure Public Test Result

Azure US Gov Last Test Date Azure US Gov Last Test Result

Best Practice Check Cred Scan Check Bicep Version

Deploy To Azure Deploy To Azure US Gov Visualize

This template creates a new FinOps hub instance. FinOps hubs are a foundation you can use to build homegrown cost management and optimization solutions.

FinOps hubs include:

  • Data Explorer cluster for analytics.
  • Data Lake storage for staging.
  • Data Factory for data processing and orchestration.
  • Key Vault for storing secrets.

To learn more about FinOps hubs, the roadmap, or how to contribute , see FinOps hubs documentation.


📋 Prerequisites

Please ensure the following prerequisites are met before deploying this template:

  1. You must have permission to create the deployed resources mentioned above.
  2. The Microsoft.EventGrid resource provider must be registered in your subscription. See Register a resource provider for details.

    ⚠️ If you forget this step, the deployment will succeed, but the data will not be ready. To fix, register the EventGrid RP, start the msexports pipeline trigger, re-run your Cost Management export, wait ~20 minutes, and refresh the data in your reports or custom tools.

To use FinOps hubs, you can either leverage the available Power BI reports or connect directly to the included storage account. To learn more, see FinOps hubs documentation.

If you run into any issues, see Troubleshooting FinOps hubs.


⚙️ Customization options

Resource naming

By default, FinOps hubs automatically generates resource names following Azure best practices. You can customize names for the following resources by specifying optional parameters during deployment:

  • Storage Account (storageAccountName)
  • Data Factory (dataFactoryName)
  • Key Vault (keyVaultName)
  • Virtual Network (virtualNetworkName)
  • Managed Identity (managedIdentityName)
  • Data Explorer Cluster (dataExplorerClusterName)
  • Private Endpoints (privateEndpointNamePrefix) - Prefix for all private endpoint names

If you leave these parameters empty, the template will generate appropriate default names automatically.

Centralized networking (Hub & Spoke)

If you're deploying FinOps hubs in a Hub & Spoke network topology with centralized Private DNS Zones, you can reference existing DNS zones instead of creating new ones:

  • Blob Storage DNS Zone (existingBlobDnsZoneId)
  • Data Lake Storage DNS Zone (existingDfsDnsZoneId)
  • Queue Storage DNS Zone (existingQueueDnsZoneId)
  • Table Storage DNS Zone (existingTableDnsZoneId)
  • Key Vault DNS Zone (existingVaultDnsZoneId)
  • Data Explorer DNS Zone (existingDataExplorerDnsZoneId)

When you provide existing DNS Zone resource IDs, the template will:

  • Skip creating new Private DNS Zones
  • Configure private endpoints to use your centralized DNS zones
  • Link private endpoints to the existing zones via Private Endpoint DNS Zone Groups

This approach is ideal for enterprise environments with centralized networking and avoids DNS zone duplication across multiple hub instances.


📗 How to use this template

  1. Register the Microsoft.EventGrid and Microsoft.CostManagementExports resource providers

    See Register a resource provider for details.

  2. Deploy the template

    Deploy To Azure   Deploy To Azure US Gov

  3. Create a new cost export using the following settings:
    • Type of data = Cost and usage details (FOCUS)
    • Dataset version = 1.0 or 1.0r2
    • Frequency = Daily export of month-to-date costs
    • Storage account = (Use subscription/resource deployed with your hub)
    • Container = msexports
    • Format = Parquet
    • Compression = Snappy
    • Directory = (Specify a unique path for this scope)
      • EA billing account: billingAccounts/{enrollment-number}
      • MCA billing profile: billingProfiles/{billing-profile-id}
      • Subscription: subscriptions/{subscription-id}
      • Resource group: subscriptions/{subscription-id}/resourceGroups/{rg-name}
    • File partitioning = On
    • Overwrite data = Off
  4. Run your export using the Run now command

    Your data should be available within 15 minutes or so, depending on how big your account is.

  5. Connect to the data in Azure Data Explorer or Data Lake Storage

    Consider using available Power BI reports

If you run into any issues, see Troubleshooting FinOps hubs.


🧰 About the FinOps toolkit

FinOps hubs are part of the FinOps toolkit, an open-source collection of FinOps solutions that help you manage and optimize your cost, usage, and carbon.

To contribute to the FinOps toolkit, join us on GitHub.


Tags: finops, cost, Microsoft.CostManagement/exports, Microsoft.Kusto/clusters, Microsoft.Storage/storageAccounts, Microsoft.DataFactory/factories