FinOps 工具包故障排除指南

本文介绍如何正确部署和配置 FinOps 工具包解决方案。 如果你有特定的错误代码,请查看 常见错误 以了解详细信息和缓解步骤。 如果需要更彻底的演练来验证配置,请使用适用于你的以下步骤。


是否有特定的错误代码?

如果你有特定的错误代码,我们建议从 常见错误 开始,以直接说明你遇到的问题。 还有有关如何缓解或解决此问题的信息。


验证 FinOps 中心部署

使用以下步骤验证 FinOps 中心部署:

步骤 1:验证成本管理导出

  1. 转到成本管理导出并确保导出状态为 Successful
  2. 如果失败,请确保为部署中心的订阅注册了成本管理资源提供程序。
  3. 向成本管理团队提交支持请求,以进一步调查。

步骤 2:验证数据工厂管道

  1. 在数据工厂工作室中,选择左侧菜单中的“监视”,并确认管道已成功运行。
  2. 如果管道失败,请查看错误代码和消息,并检查 常见错误 是否有缓解步骤。
  3. 将上次运行时与上次导出的时间进行比较。 它们应该接近。
  4. 选择“ 管理>作者>触发器 ”并验证 msexports_ManifestAdded 触发器是否已启动。 如果没有,请启动它。
  5. 如果触发器无法以“资源提供程序未注册”错误启动,请在 Azure 门户中打开订阅,选择 “设置>资源提供程序”,选择 Microsoft.EventGrid 行,然后选择“ 注册”。 注册可能需要几分钟时间。
  6. 注册完成后,再次启动 msexports_ManifestAdded 触发器。
  7. 启动触发器后,重新运行所有连接的成本管理导出。 数据应在 10-20 分钟内完全引入。
  8. 如果数据摄取管道未运行并且显示 MappingColumnNameNotFoundInSourceFile 错误消息,请确保导出已为 受支持的数据集和版本进行配置。

步骤 3:验证存储帐户 - msexports 容器

  1. msexports 容器是成本管理将“原始”导出推送到的位置。
  2. 确认最近导出路径中没有 CSV 或 parquet 文件。
  3. 如果存在成本管理导出的 CSV 或 parquet 文件,请打开数据工厂编辑器并确认 msexports_ExecuteETLmsexports_ETL_ingestion 管道是否成功。
    • 引入完成后,将删除导出的文件,除非 msexports 容器配置为具有正保留策略。

步骤 4:验证存储帐户 - 引入容器

  1. 引入容器是客户端(如 Power BI)连接到拉取数据的位置。 此容器每个月应始终有一个或多个 parquet 文件。
  2. 如果在导入容器中看不到任何 parquet 文件,请检查 msexports 容器中的文件。
  3. 如果在 msexports 容器中找到 CSV 或 parquet 文件,则表示数据工厂管道不起作用。 请返回“ 验证数据工厂管道”。
  4. 如果 msexports 容器中没有文件,并且引入容器中没有 parquet 文件,则表示成本管理导出未正常运行。 请返回 “验证成本管理导出”。

验证 Power BI 配置

使用以下步骤验证 Power BI 配置:

步骤 1:标识存储 URL

在开始验证 Power BI 配置之前,需要知道是否使用以下机制之一连接到数据:

  • 适用于 Power BI 的成本管理连接器 - 非常适合需求有限的小型帐户。 如果报告总成本超过 200 万美元,则不建议这样做。
  • 存储中的成本管理导出 - 需要将数据从成本管理导出到存储帐户。 不需要其他部署。
  • FinOps 中心 - 需要部署 FinOps 中心解决方案

如果需要帮助来选择最佳方法以满足需求,请参阅 “选择 Power BI 数据源”。

如果使用成本管理连接器,请参阅 在 Power BI Desktop 中使用成本管理连接器创建视觉对象和报表。

如果使用 FinOps 中心,则可以从Azure 门户中的部署输出复制 URL:

  1. 导航到部署 FinOps 中心的资源组。
  2. 菜单中选择“设置>部署”。
  3. 选择中心部署。
  4. 在菜单中选择“ 输出 ”。
  5. 复制 storageUrlForPowerBI 值。
  6. 将此 URL 粘贴到 Power BI 中的中心存储 URL 中。
  7. 如果对任何数据使用原始导出,请使用以下步骤。
  8. 如果不对任何数据使用原始导出,请将中心存储 URL 粘贴到 Power BI 中的导出存储 URL 中。

    注意

    Power BI 要求设置这两个参数,以便Power BI 服务刷新数据集。

如果对任何数据集使用没有 FinOps 中心的原始导出(即使使用中心获取成本数据),则可以从Azure 门户中的存储帐户获取 Data Lake Storage URI:

  1. 在 Azure 门户中导航到存储帐户。
  2. 菜单中选择“设置>终结点”。
  3. 复制 Data Lake Storage>Data Lake Storage URL。
  4. 将此 URL 粘贴到 Power BI 中的“导出存储 URL ”。
  5. 如果对任何数据使用 FinOps 中心,请遵循前面的步骤。
  6. 如果不对任何数据使用 FinOps 中心,请将导出存储 URL 粘贴到 Power BI 中的中心存储 URL 中。

    注意

    Power BI 要求设置这两个参数,以便Power BI 服务刷新数据集。

步骤 2:将 Power BI 连接到存储

决定是否要使用用户或服务主体帐户或使用存储帐户密钥(也称为 SAS 令牌)连接到存储。

  • 使用用户或服务主体帐户
    1. 确保对要使用的帐户显式具有存储 Blob 数据读取者角色。 即使拥有“所有者”或“参与者”权限,也不会继承此权限。
  • 使用 SAS 令牌
    1. 确保为令牌设置以下权限:
      • 允许的服务:Blob
      • 允许的资源类型:容器和对象
      • 允许的权限:读取和列出
    2. 确保还设置了有效的开始和到期日期/时间。

步骤 3:排查连接错误

  1. 如果尝试连接到存储帐户并收到 Access to the resource is forbidden 错误,则可能缺少一些权限。 若要确保你拥有正确的权限,请参阅将 Power BI 连接到存储
  2. 如果看到有关访问被禁止的错误,请查看连接到的计费帐户是否正确。 Power BI 报表随附了一个示例计费帐户,如果不将它更改为自己的 ID,则无法连接。

步骤 4:排查缺少的数据数月的问题

  1. 如果 Power BI 报表不包含整整几个月的数据,请通过检查功能区中的转换数据>编辑参数来确认 Power BI 报表中的日期参数。 有关详细信息,请参阅 “设置第一个报表 ”。
    • 数定义报表中显示的关闭月份数(在本月之前)。 即使导出数据,也不会显示此范围之外的数据。 如果已定义,此参数将替代其他参数。
    • RangeStartRangeEnd 定义要在报表中显示的显式日期范围数据。 这些日期之前或之后的任何内容均未显示。
    • 如果 RangeStart 为空,则包含 RangeEnd 之前的所有历史数据。
    • 如果 RangeEnd 为空,则包含 RangeStart的所有新数据。
    • 如果所有日期参数均为空,则包含所有可用数据。

对 Power BI 查询故障进行调试

如果 Power BI 返回未知错误,请使用以下步骤来识别问题。

识别失败的查询

  1. 打开该报表。
  2. 在功能区中,选择“转换数据转换数据>”。
  3. “Power Query 编辑器” 窗口中,查找左侧查询列表中失败的查询。
  4. 根据文件夹跳转到故障排除部分。

排查存储查询错误

  1. “Power Query 编辑器” 窗口中,选择左侧查询列表中失败的查询。
  2. 在右侧的 “已应用步骤 ”部分中,选择 RawData 步骤。
  3. 如果该步骤出现错误,请跳到 排查ftk_Storage错误
  4. 如果此步骤有效,请选择下面的下一步,跳过以小写或下划线开头的任何内容。
  5. 重复步骤 4,直到找到错误的第一步。
  6. 共享在任何问题或支持请求中失败的第一步的名称,以帮助进一步进行故障排除。

故障排除 ftk_Storage 错误

  1. “Power Query 编辑器” 窗口中,右键单击左侧 的ftk_Storage 函数,然后选择“ 复制”。
  2. 右键单击 ftk_Storage(2), 然后选择 “高级编辑器”。
  3. 删除第一行,并将该 data = if datasetType... 行替换为 data = "focuscost",
  4. 选择对话框右下角的 “完成 ”。
  5. 选择左侧的 ftk_Storage (2),然后单击顶部功能区中的刷新预览
  6. 在右侧已应用步骤中,选择最后一步。
  7. 如果此步骤出错,请选择其前一步骤(跳过任何带下划线或首字符小写的步骤)。
  8. 重复步骤7,直到找到一个有效的解决方案。
  9. 共享在任何问题或支持请求中失败的第一步的名称,以帮助进一步进行故障排除。

故障排除中心* 和存储* 查询错误

  1. “Power Query 编辑器” 窗口中,选择左侧的失败查询,然后单击顶部功能区中的 “刷新预览 ”。
  2. 在右侧的“已应用步骤”中,选择最后一步。
  3. 如果该步骤出现错误,请选择它之前的步骤(避开含有下划线或首字符是小写的内容)。
  4. 重复第三步,直到找到一个可行的。
  5. 共享在任何问题或支持请求中失败的第一步的名称,以帮助进一步进行故障排除。

提供反馈

请您给我们一个简短的评价,让我们知道我们做得怎么样。 我们将使用这些评审来改进和扩展 FinOps 工具和资源。

如果您在寻找特定的东西,可以为现有想法投票或者创建新想法。 与他人分享想法,以获得更多的选票。 我们专注于拥有最多选票的想法。


相关解决方案: