Forum Discussion
Autoscaling Power BI Embedded Gen 2
- 5 years ago
Sadly there is no very good advice or best practices. We thought a lot about how to solve this best. Our Solution are two alert rules on the Power BI Embedded Capacity:
Rule 1: "Whenever the maximum overload (gen2) is greater than or equal to 1000m" and "Whenever the maximum cpu (gen2) is greater than 85%"
Rule 2: "Whenever the maximum cpu (gen2) is lower than 40%"
Depending on the rule which gets activated we fire a PowerShell Runbook with parameter "up" or "down"which scales our embedded instance.
I'm a bit disappointed that a very nice feature like "autoscale" is activated and promoted on Power BI Premium but not Power BI Embedded. - 2 years ago
We had some issues with alert rules: sometimes they didn't resolve (we couldn't figure out why) and therefore didn't fire again.
Sadly our script disappered while we moved to a new repro. I tried to recap it from my mind, please try it in testing enviroment.
# Enable Managed Identity Enable-AzContextAutosave -Scope Process Connect-AzAccount -Identity # Set the resource group and the name of the Power BI Embedded resource $resourceGroupName = "<YourResourceGroupName>" $resourceName = "<YourResourceName>" $maxSKU = "A7" # Read the current SKU of the Power BI Embedded resource $pbiResource = Get-AzResource -ResourceGroupName $resourceGroupName -ResourceName $resourceName # Extract the current SKU and increment it by 1 if it's below the maximum allowed SKU $currentSku = $pbiResource.Sku.Name $skuNumber = [regex]::Match($currentSku, "\d+").Value $newSkuNumber = [int]$skuNumber + 1 $maxSkuNumber = [int][regex]::Match($maxSKU, "\d+").Value # Ensure the new SKU does not exceed the maximum SKU if ($newSkuNumber -le $maxSkuNumber) { $newSku = $currentSku -replace "\d+", $newSkuNumber.ToString() # Update the SKU of the Power BI Embedded resource $updatedConfig = @{ "sku" = @{ "name" = $newSku "tier" = "PBIE_Azure" } } Set-AzResource -ResourceGroupName $resourceGroupName -ResourceName $resourceName -ResourceType "Microsoft.PowerBIDedicated/capacities" -Sku $updatedConfig.sku -Force # Output the new SKU Write-Host "Power BI Embedded resource has been updated to SKU $newSku." } else { Write-Host "The current SKU is already at or above the maximum permissible SKU ($maxSKU). No action taken." }Update: I'm sorry, I can't choose "powershell" as language, therefore the script looks like this.
Sadly there is no very good advice or best practices. We thought a lot about how to solve this best. Our Solution are two alert rules on the Power BI Embedded Capacity:
Rule 1: "Whenever the maximum overload (gen2) is greater than or equal to 1000m" and "Whenever the maximum cpu (gen2) is greater than 85%"
Rule 2: "Whenever the maximum cpu (gen2) is lower than 40%"
Depending on the rule which gets activated we fire a PowerShell Runbook with parameter "up" or "down"which scales our embedded instance.
I'm a bit disappointed that a very nice feature like "autoscale" is activated and promoted on Power BI Premium but not Power BI Embedded.
Thanks for this feedback!
Out-of-the-box autoscale similar to Premium's is planned for embedded as well. It is planned to include the same features:
- 24 hours commitment (i.e. following a scale-up customers the system will scale-down based on utilization, but not before 24 hours had passed (as I explained above, currently you can configure autoscale in Azure with no commitment)
- Autoscale v-core price of $85 as in Premium (currently the v-core price in Embedded is only $24)
- No scaling down below the current SKU (i.e. just like in Premium autoscale, the system will scale-up using $85 v-cores, but it will never auto scale down below the SKU. This is unlike the current option in Azure which is much more flexible)
Bottom lines: stay tune, as it will come in few months. We thought the current options are much more attractive in terms of cost, but as you say customers are willing to pay more for an out-of-the-box solution
- ecalzavara2 years agoAdvocate II
this message was from 2021.... no updates on this? It was "planned", but for when?