使用和自定义 FinOps 工作簿

本文介绍如何安装和编辑 FinOps 工作簿。 FinOps 工作簿是常见工具的中心接入点,可帮助实现 FinOps 目标。 每个工作簿提供一系列符合 FinOps 功能的见解,包括:

  • 顾问成本建议
  • 空闲资源标识
  • 管理未正确解除分配的虚拟机
  • 深入了解如何使用适用于 Windows、Linux 和 SQL 数据库的 Azure 混合权益选项

工作簿包括用于计算、存储、网络等的见解。 工作簿还提供一些快速修复选项,用于直接从工作簿执行建议的操作,从而简化优化过程。


使用工作簿

Azure Monitor 工作簿提供灵活的画布来分析数据以及在 Azure 门户中创建丰富的可视报表。 然后,你可以自定义它们以显示有关 Azure 环境的视觉对象和交互式信息。 它允许你查询 Azure 中的各种数据源,并根据需要修改或处理数据。 然后,你可以选择使用任何可用的可视化效果来显示它,最后与团队共享工作簿,以便每个人都可以使用它。

成本优化工作簿位于 Azure 顾问的工作簿库中,不需要任何设置。 但是,如果要部署其他工作簿或对其进行更改(例如添加或自定义查询),可以将工作簿复制到环境。

在顾问中查看成本优化工作簿

  1. 登录到 Azure 门户
  2. 搜索 Azure 顾问。
  3. 在左侧导航菜单中,选择“工作簿”。
  4. 在工作簿库中,选择 成本优化(预览) 工作簿模板。
  5. 选择要浏览的区域。

将 FinOps 工作簿部署到 Azure

如果要修改成本优化工作簿或使用其他 FinOps 工作簿,请从 FinOps 工具包部署 FinOps 工作簿模板。

首先,确认你具有以下最低特权角色来部署和使用工作簿。

  • 工作簿参与者 - 允许你导入、保存和部署工作簿。
  • 读取者允许你查看所有工作簿选项卡而不进行保存。

使用以下选项之一部署 FinOps 工作簿模板:

部署到 Azure部署到 Azure Gov

选择订阅、位置、资源组,并为工作簿指定一个名称。 然后,选择“查看 + 创建”以部署工作簿模板。

在“查看 + 创建”页面上,选择“创建”。

部署完成后,可以在“输出”页上查看并复制工作簿 URL。 该 URL 会将你直接带到已创建的工作簿。


编辑新查询并将其包括到工作簿中

如果要在工作簿中编辑或包括更多查询,可以根据需要编辑模板。

工作簿主要基于 Azure Resource Graph 查询。 但是,工作簿支持许多不同的源。 它们包括Kusto 查询语言(KQL)、Azure 资源管理器、Azure Monitor、Azure 数据资源管理器、自定义终结点等。

你还可以合并来自不同源的数据,以增强见解体验。 Azure Monitor 有多个可关联的数据源,这些数据源通常对会审和诊断工作流至关重要。 可以使用合并控件合并或联接数据以提供丰富的见解。

下面介绍如何在成本优化工作簿中创建查询并将其添加到 Azure 混合权益选项卡。 对于此示例,请从“代码示例”部分添加代码,以帮助确定哪些 Azure Stack 超融合基础结构(HCI)群集未使用Azure 混合权益。

  1. 打开“工作簿”并选择“编辑”
  2. 选择“速率优化”选项卡。它显示使用Azure 混合权益的虚拟机。
  3. 在右侧(最后一个“编辑”选项的右侧)页面底部,选择省略号 (…),然后选择“添加” 此操作在最后一个组之后添加新项。
  4. 选择“添加查询”。
  5. 将“数据源”更改为“Azure Resource Graph” 将“资源类型”保留为“订阅”
  6. 在“订阅”下选择列表选项,然后在“资源参数”下选择“订阅”
  7. 代码示例部分复制示例代码并将其粘贴到编辑器中。
  8. 将代码示例中的 ResourceGroup 名称更改为 Azure Stack HCI 群集所在的名称。
  9. 在页面底部,选择“完成编辑”
  10. 保存对工作簿所做的更改并查看结果。

了解代码部分

尽管本文的目的不是重点讨论 Azure Resource Graph 查询,但了解查询示例的用途非常重要。 该代码示例包含三个部分。

在第一部分,以下代码标识你自己的订阅并将其分组。

ResourceContainers
| where type =~ 'Microsoft.Resources/subscriptions'
| where tostring(properties.subscriptionPolicies.quotaId) !has "MSDNDevTest_2014-09-01" 
| extend SubscriptionName = name

它查询 ResourceContainers 表并删除开发/测试表,因为 Azure 混合权益不适用于开发/测试资源。

在第二部分,该查询查找并评估你的 Stack HCI 资源。

resources 
| where resourceGroup in ({ResourceGroup})
| where type == 'microsoft.azurestackhci/clusters'
| extend AHBStatus = tostring(properties.softwareAssuranceProperties.softwareAssuranceIntent)
| where AHBStatus == "Disable"

此部分查询 Resource 表。 它按资源类型 microsoft.azurestackhci/clusters 进行筛选。 它创建一个名为 AHBStatus 的新列,其中包含我们拥有软件保证信息的属性。 我们只需要其中的 AHBStatus 设置为 Disable 的资源。

在最后一部分,查询将 ResourceContainerstableresources 表联接起来。 此联接有助于识别资源所属的订阅。

ResourceContainers | "Insert first code section go here"
| join (
    resources  "Insert second code section here"
) on subscriptionId 
| order by type asc 
| project HCIClusterId,ClusterName,Status,AHBStatus

最后,你查看最相关的列。 由于工作簿具有 ResourceGroup 参数,因此可以通过示例代码筛选每个资源组的结果。

代码示例

以下是用于插入到工作簿中的完整代码示例。

ResourceContainers | where type =~ 'Microsoft.Resources/subscriptions' | where tostring (properties.subscriptionPolicies.quotaId) !has "MSDNDevTest_2014-09-01"  | extend SubscriptionName=name 
| join (
  resources 
  | where resourceGroup in ({ResourceGroup})
  | where type == 'microsoft.azurestackhci/clusters'
  | extend AHBStatus = tostring(properties.softwareAssuranceProperties.softwareAssuranceIntent)
  | where AHBStatus == "Disable"
  | extend HCIClusterId=properties.clusterId, ClusterName=properties.clusterName, Status=properties.status, AHBStatus=tostring(properties.softwareAssuranceProperties.softwareAssuranceIntent)
) on subscriptionId 
| order by type asc 
| project HCIClusterId,ClusterName,Status,AHBStatus

详细了解工作簿

有关 Azure Monitor 工作簿的详细信息,请参阅 使用 Azure Monitor 工作簿 训练模块可视化从多个数据源组合的数据。


若要了解有关其他 FinOps 工作簿的详细信息,请参阅 FinOps 工作簿概述