排查常见的 FinOps 工具包错误

本文介绍常见的 FinOps 工具包错误,并提供有关解决方案的信息。 如果在使用无法理解或无法解决的 FinOps 工具包解决方案时收到错误,请找到以下相应的错误代码,其中包含解决问题的缓解步骤。

下面是包含缓解信息的常见错误代码列表。

如果提供的信息无法解决问题,请尝试 故障排除指南


禁止访问资源

严重性:关键

此错误通常意味着你连接的帐户无权访问你尝试使用的资源。

缓解措施:确认在正确的 Microsoft Entra ID 租户中使用了正确的帐户


账户属性无法更新

严重性:关键

使用与创建期间最初使用的不同存储帐户配置更新 FinOps 中心部署时,通常会发生此错误。 虽然大多数属性可以更改,但有些属性只能在创建存储帐户时设置一次,之后无法更改。 对于 FinOps 中心来说,一个已知的案例便是“requireInfrastructureEncryption”属性。 如果在第一个 FinOps 中心部署期间启用或禁用此属性,则无法更改此属性。 发生这种情况时,您将看到如下错误:

在输入中指定了属性“requireInfrastructureEncryption”,但无法更新为只读属性。

缓解:如果不想更改此设置,请确认存储帐户是否已配置为使用基础结构加密并重新部署具有相同值的 FinOps 中心模板(打开或关闭)。 如果要更改设置,建议部署新的 FinOps 中心实例,因为这需要重新引入所有数据。

可以尝试删除现有存储帐户,并使用基础结构加密更改重新部署模板;然而,我们没有彻底测试过这一点。 虽然我们不预测问题,但我们无法确认问题是否会导致问题。


错误的Hub版本

严重性:关键

FinOps hubs 0.2 无法运行。 升级到版本 0.3 或更高版本。

缓解措施:升级到最新版本的 FinOps 中心


表“Resources”中的列“id”包含重复值

严重性:关键

如果您遇到以下错误,这意味着 Azure Resource Graph 正在返回 ID 列具有相同逻辑值的行。 当资源 ID 值大小写不一致或者当另一列跨行展开时,可能会发生这种情况。

表“Resources”中的列“id”包含重复值“{resource-id}”,对于多对一关系一侧或用作表主键的列,不允许这样做。

缓解措施:确保您使用的是最新版本的报表。 确定重复值的原因,并更新查询以处理重复值。 请在 GitHub 中报告此问题 ,以便在将来的版本中修复此问题。 这可能需要其他详细信息或会议来排查错误原因。


冲突错误

严重性:关键

此错误可能有多个实例。 一个已知实例是在 Key Vault 返回以下错误时:

具有相同名称的保管库已处于已删除状态。 需要恢复或清除现有密钥保管库。 有关软删除的详细信息,请遵循此链接 https://go.microsoft.com/fwlink/?linkid=2149745

这通常意味着要部署在已删除的旧部署之上,但 Key Vault 使旧保管库实例处于可恢复的删除状态。

缓解措施:若要解决此问题,请清除 Azure 门户中已删除的密钥保管库

  1. 在 Azure 门户中打开 Key Vault 实例的列表
  2. 选择页面顶部的“ 管理已删除的保管库” 命令。
  3. 在下拉列表中选择订阅。
  4. 检查要删除的保管库。
  5. 选择浮出控件底部的“清除”
  6. 在确认对话框中选择 “删除 ”。

现在可以重试部署。


合同成本小于实际成本

严重性:警告

成本管理数据中的 ContractedCost(基于协商折扣)小于 EffectiveCost(承诺折扣后)。 除非承诺折扣提供的折扣低于现有协商折扣,否则不应发生这种情况。 这会导致节省额计算结果的相加值不精确。

缓解措施:确认成本数据中的 ContractedUnitPrice 与价格数据中的内容相符。 如果合同价格正确,请向成本管理团队提交支持请求以确认 x_EffectiveUnitPriceEffectiveCost 正确。 如果它们正确,请考虑返回承诺折扣。


跨租户访问策略不允许此用户

严重性:重大

如果遇到以下错误,则意味着Microsoft Entra ID 配置为不允许来自其他租户的用户登录到当前租户。

消息:AADSTS500213:资源租户的跨租户访问策略不允许此用户访问此租户。

此错误消息与 FinOps 工具包无关。

补救措施:验证您是否已登录到正确的帐户,以及是否通过目标目录登录。 如果需要进一步的帮助,请联系目录管理员。


数据浏览器导入失败

严重性:关键

数据资源管理器引入失败。 新数据将不可用于报告。

缓解:查看数据资源管理器错误消息并解决问题。 使用 Azure 数据工厂中的 ingestion_ExecuteETL 管道重新运行指定文件夹中的数据摄入。 在https://aka.ms/ftk/ideas中报告未解决的问题。


数据探索器摄取映射失败

严重性:关键

无法为指定表创建数据资源管理器引入映射。

缓解:请修复错误并重新运行指定文件夹路径的导入。 如果继续看到此错误,请在 https://aka.ms/ftk/ideas报告问题。


DataExplorerIngestionTimeout

严重性:关键

在等待可用容量的过程中,数据资源管理器引入会在 2 小时后超时。

缓解措施:请重新运行此管道以重试导入。 如果继续看到此错误,请在 https://aka.ms/ftk/ideas报告问题。


数据探查器后处理删除失败

严重性:关键

数据资源管理器引入后清理(从最终表中删除盘区)失败。 来自先前引入的数据可能存在于报告中,这可能会导致成本重复和不准确。

缓解:查看数据资源管理器错误消息并解决问题。 使用 Azure 数据工厂中的 ingestion_ExecuteETL 管道为指定文件夹重新执行数据导入。 在https://aka.ms/ftk/ideas中报告未解决的问题。


数据探索器预处理丢弃失败

严重性:关键

数据资源管理器预引入清理(从原始表中删除盘区)失败。 摄入未完成。

缓解:查看数据资源管理器错误消息并解决问题。 使用 Azure 数据工厂中的 ingestion_ExecuteETL 管道为指定文件夹重新执行数据导入。 在https://aka.ms/ftk/ideas中报告未解决的问题。


部署输出评估失败

严重性:重大

FinOps hubs 0.8 设置 Azure 数据资源管理器“trustedExternaltenants”安全设置来锁定群集,以便只有特定的受信任租户才能访问。 可以为第一个部署设置此设置,但不能在第二个部署中再次设置此设置。 如果尝试在现有 0.8 部署的基础上重新部署 FinOps 中心 0.8,可能会看到以下错误:

模板输出“clusterUri”无效:语言表达式属性“uri”不存在,可用属性为“trustedExternalTenants、enableStreamingIngest、publicNetworkAccess、enableAutoStop、provisioningState”。

我们正在跟进 Azure 数据资源管理器团队,以确定正确的解决方法。

缓解措施:部署 FinOps Hub 0.9。 此设置已从模板中删除。


导出数据未找到

严重性:关键

在指定的存储路径中未找到任何导出。

缓解:确认 已创建成本管理导出 ,并使用正确的存储帐户、容器和存储路径进行配置。 创建后,选择“立即运行”以启动导出过程。 导出可能需要 15-30 分钟才能完成,具体取决于帐户的大小。 如果打算使用 FinOps 中心,请更正存储 URL 以指向“引入”容器。 请参阅 FinOps 中心部署中的 storageUrlForPowerBI 输出获取完整 URL。


ExportTypeNotDefined(导出类型未定义)

严重性:关键

托管导出不支持此计费范围类型。

缓解:从 settings.json中删除不受支持的计费范围,确认 FinOps 中心支持计费范围,并手动为计费范围创建新的成本管理导出。


不支持的导出类型

严重性:关键

Microsoft 客户协议在托管导出中不受支持。

缓解措施:从 settings.json 中删除 MCA 计费范围,并为每个 MCA 计费配置文件手动创建新的成本管理导出,包括 FOCUS 成本、价目表、预留详细信息、预留事务和预留建议


Hub数据未找到

严重性:关键

在指定的存储帐户中找不到 FinOps 中心数据。

缓解措施:此错误假定你正在连接到 FinOps 中心部署。 如果使用原始导出,请更正存储路径以不引用 ingestion 容器。 确认以下内容:

  1. 存储 URL 应与 FinOps 集线器部署上的 StorageUrlForPowerBI 输出匹配。
  2. 应将成本管理导出配置为使用 msexports 容器指向同一存储帐户。
  3. 成本管理导出应在运行历史记录中显示成功导出。
  4. FinOps 中心数据工厂触发器应该全部启动。
  5. FinOps 中心数据工厂管道应该成功。

有关更多详细信息和调试步骤,请参阅 验证 FinOps 中心部署


摄取文件未找到

严重性:关键

无法从指定的文件夹路径找到要引入的 Parquet 文件。

缓解措施:确认文件夹路径是完整的路径,包括 ingestion 容器,并且不以斜杠 () 开头或结尾。/ 复制上次成功的 ingestion_ExecuteETL 管道运行的路径。


内部服务错误

Microsoft Fabric Real-Time Intelligence 在引入数据时可能会返回“InternalServiceError (520-UnknownError)”错误代码。 详细的错误消息可能显示:

Kusto 客户端无法向服务发送请求:“无法从传输连接读取数据:远程主机强行关闭了现有连接。`

此错误的确切原因未知。 如果遇到此情况,请向 Microsoft Fabric 提交支持请求以进一步调查。

缓解:解决方法是,将 Fabric 事件屋的最小消耗量更改为 中等(18 个计算单元),等待 30 分钟,然后重新运行针对该数据集和月份的 ingestion_ExecuteETL 管道。 若要了解更多最小消耗量,请参阅事件中心概述中的 最小消耗 量。


无效成本

严重性:重大

截至 2024 年 11 月,成本管理存在一个已知的 bug,即节省计划购买在内部被作为实际成本和摊销成本进行跟踪。 因此,FOCUS 在 EffectiveCost 的计算中会包含节省计划购买,这会导致 FinOps 工具包报告中的数字不准确。

缓解:向Microsoft成本管理团队提交支持请求,其中包含修复基础数据的问题的详细信息。 截至 2024 年 11 月,团队已意识到此问题,但修复尚未确定优先级。 在此期间,更新到 FinOps 工具包 0.7 版本,该版本为 FinOps 中心和基于存储的 Power BI 报表提供了解决方法。


无效导出容器

严重性:关键

此文件可能从成本管理导出,但它不在正确的容器中。

缓解措施:更新成本管理导出,使其指向“msexports”存储容器。 “引入”容器仅用于查询引入的成本数据。


无效导出版本

严重性:关键

FinOps 中心需要 FOCUS 成本导出,但此文件看起来像旧版成本管理导出。

缓解:为 FOCUS 成本创建新的成本管理导出,并停止当前导出或更改导出以导出到其他存储容器。


无效的Hub版本

严重性:关键

FinOps hub 0.1.1 及更早版本不适用于 数据引入的 Power BI 报表

缓解措施:升级到最新版本的 FinOps 中心,或下载 0.1.1 版的 Power BI 报表


InvalidScopeId

严重性:信息性

导出路径不是有效的范围 ID。 FinOps 中心希望导出路径是创建导出的范围的 Azure 资源 ID,以简化管理。 它不会导致失败,但可能会导致与范围相关的报告结果混乱。

缓解措施:更新成本管理导出的存储路径,以使用范围的完整 Azure 资源 ID


LegacyFocusVersion

严重性:信息性

当引入的数据使用旧版 FOCUS 时,将显示此错误代码。 在 x_SourceChanges 列中找到时,代码仅是信息性的。 当 Power BI 存储报表中显示成本查询无法加载时,这意味着 “已弃用:执行额外的查询优化 ”参数处于禁用状态。

FinOps 中心将数据转换为最新的 FOCUS 版本,因此这不应引起问题;但是,现代化转换不能考虑所有方案,在某些情况下可能会导致意外结果。 请参阅有关已知问题的文档。

缓解:有多种方法可以缓解此消息,具体取决于所使用的工具。

如果您在将 FinOps 中心与数据探索器一起使用时,注意到在成本表或相关函数的 x_SourceChanges 列中出现此信息,请更新成本管理成本导出,以使用最新的 FOCUS 版本。 在数据资源管理器引入期间,无需进行任何其他更改即可合并所有数据。

如果使用存储报表并在“成本”查询的列中看到此信息 x_SourceChanges ,则此消息是警告,指出将来的更新中将删除此 FOCUS 版本。 虽然可以安全地忽略此消息,但它需要在将来的版本中进行更新。 若要避免消息,请更新成本管理导出到最新的 FOCUS 版本,删除或移动任何较旧数据(使用较旧的 FOCUS 版本)并重新导出历史数据。 如果使用 FinOps 中心,请删除或移动 引入 容器外部的数据。 如果在存储中托管自己的导出,请将 存储 URL 参数更改为不包含旧 FOCUS 版本的其他文件夹路径。

从 FinOps 工具包 0.7 开始,已弃用对较旧 FOCUS 版本的支持,以提高性能和可伸缩性。 建议更新到最新的 FOCUS 版本并重新导出数据以提高体验。 设置 已弃用:执行额外的查询优化 参数为 TRUE 以确保较早的 FOCUS 版本得以支持,并将其设置为 FALSE 以提升性能并支持更大规模的数据集,涵盖更多的成本或时间。 从 0.7 起,此参数默认启用以实现向后兼容性。 在 FinOps 工具包 0.8 中,默认情况下将禁用它,但仍可用于向后兼容性,直到 2025 年 6 月或之后。 如果无法脱离旧的 FOCUS 版本,或者为了获得对较大帐户或较长时间段的最佳性能和支持,建议将 FinOps 中心与数据资源管理器配合使用。


标价低于合同价

严重性:警告

成本管理数据中的 ListCost(基于公开零售价)小于 ContractedCost(基于协商折扣)。 这不应该发生。 这会导致节省额计算结果的相加值不精确。

缓解措施:确认成本数据中的 ListUnitPrice 与价格数据中的内容相符。 如果价目表价格正确,请向成本管理团队提出支持请求,以确认 ListUnitPriceContractedUnitPrice 是否正确,并解释为何协商后的折扣价格会高于公共零售价格。


ManifestReadFailed

严重性:关键

FinOps 中心 msexports_ExecuteETL 管道未能读取成本管理清单文件。

缓解措施

  1. 如果在未对中心或导出进行更改时工作中心实例上出错,则成本管理可能会更改现有 API 版本的清单架构。
  2. 如果在创建新或更改现有导出后出错,则导出 API 版本可能会使用新的不受支持的清单架构。
  3. 如果在中心部署(初始安装或升级)后出错,则部署可能失败,或者管道中可能存在 bug。

若要确认清单架构(#1)或 API 版本(#2):

  1. 在Azure 门户或存储资源管理器中打开中心存储帐户。
  2. 如果你在 Azure 门户中,请在菜单中转到存储浏览器
  3. 选择 msexports 容器。
  4. 沿着文件层次结构向下导航,以查找存在问题的导出(请参阅错误消息中的清单位置)。
  5. 找到manifest.json文件,然后选择菜单(),然后选择“查看/编辑”。
  6. 标识以下属性:
    {
      "exportConfig": {
        "resourceId": "<scope-id>/providers/Microsoft.CostManagement/exports/<export-name>",
        "dataVersion": "<dataset-version>",
        "apiVersion": "2023-07-01-preview",
        "type": "<dataset-type>",
        ...
      },
      ...
    }
    
  7. 确认它们已设置为以下受支持的值:
    • resourceId 可以是任何范围 ID 和任何导出名称,但它必须存在“Microsoft.CostManagement/export”资源类型。 它不区分大小写。
    • type 必须存在,但对于任何非 null 值都不应出现此错误
    • dataVersion 必须存在,但对于任何非 null 值,都不应失败并出现此错误。
    • apiVersion 未显式使用,但可以表示对清单架构的更改。 有关详细信息,请参阅 支持的 API 版本
  8. 如果使用的是较新的 API 版本:
    1. 若要跟踪添加对新 API 版本的支持, 请在 GitHub 中创建更改请求问题。
    2. 删除成本管理中的导出。
    3. 使用支持的 API 版本使用 New-FinOpsCostExport PowerShell 命令 创建导出。

      提示

      如果你认为自己是超级用户,你可以尝试自己更新管道以获得最快的解决方案。 为此,请打开“数据工厂”,导航到“创作”>“管道”>“msexports_ExecuteETL”,选择适用的“设置”活动,并根据需要更新“设置”“值”属性>。 如果执行此操作,则无需使用旧版本重新创建导出。 请仍然报告该问题,并考虑从管道设计器右上角的{}图标中共享新的 JSON。

  9. 如果注意到受支持的 API 版本的属性已更改:
    1. 若要跟踪中断性变更,请在 GitHub 中创建更改请求问题。 包含 manifest.json 文件中的 type、dataVersion 和 apiVersion
    2. 向成本管理提交支持请求,要求撤销他们的更改,因为这次更改会导致使用 FinOps 中心或其他自定义解决方案的所有人受到影响。 包括以下详细信息,以帮助成本管理支持团队确定其系统中的问题。 成本管理没有有关 FinOps 中心的上下文,因此应将细节集中在成本管理功能上。 下面是一个示例:

      我正在使用成本管理导出将成本数据拉取到 ADLS 中。 我有一个 ADF 管道,用于在写入清单文件时处理数据。 我的管道是基于 API 版本<your-supported-api-version>构建的,它要求exportConfig.resourceIdexportConfig.typeexportConfig.dataVersion属性要一致地交付。 我注意到,对于在 <your-export-date> 上运行的导出,这些文件未包含在此 API 版本的清单文件中。 我的预期是清单文件永远不会因现有的 API 版本而改变。 你是否可以还原这些更改?

      为了帮助你进行故障排除,我的清单文件如下:{your-manifest-json}

如果清单属性看起来不错,并且它是一个新的或升级的 FinOps 中心实例,请确认部署:

  1. 在Azure 门户中打开中心资源组。
  2. 在左侧菜单中选择设置>部署
  3. 确认所有部署都成功。 具体而言,请查看以下部署名称:
    • 主要
    • 枢纽
    • dataFactoryResources
    • 储存
    • keyVault
  4. 如果任何部署失败,请查看错误消息以确定它是否是可以自行解决的(例如名称冲突、可修复的策略冲突)。
  5. 如果错误似乎是暂时性的,请尝试再次部署。
  6. 如果错误仍然存在,请创建讨论,以查看是否有其他人遇到问题或知道可能的解决方法(尤其是针对策略问题)。
  7. 如果错误显然是 bug 或功能差距,请在 GitHub 中创建 bug 或功能请求问题。

我们试图在两个工作日内响应问题和讨论。


缺失的合同费用

严重性:信息性

x_SourceChanges为 null 或 0 且ContractedCost大于 0 时,EffectiveCost列中会显示此错误代码。 该错误表明Microsoft成本管理没有在指定的行中包括ContractedCost,这意味着节省无法计算。

缓解措施:作为缺失数据的一种解决方法,FinOps 工具包报告会将 EffectiveCost 复制到标有此错误代码的行的 ContractedCost 列中。 节省额不适用于这些记录。

若要计算完整的节省金额,可以将成本和使用情况数据与价格结合起来。 有关详细信息,请参阅 问题 #873


缺少合同单价

严重性:信息性

x_SourceChanges为 null 或 0 且ContractedUnitPrice大于 0 时,EffectiveUnitPrice列中会显示此错误代码。 该错误表明Microsoft成本管理没有在指定的行中包括ContractedUnitPrice,这意味着节省无法计算。

缓解措施:作为缺失数据的一种解决方法,FinOps 工具包报告会将 EffectiveUnitPrice 复制到标有此错误代码的行的 ContractedUnitPrice 列中。 节省额不适用于这些记录。

若要计算完整的节省金额,可以将成本和使用情况数据与价格结合起来。 有关详细信息,请参阅 问题 #873


MissingListCost

严重性:信息性

x_SourceChanges为 null 或 0 且ListCost大于 0 时,ContractedCost列中会显示此错误代码。 该错误表明Microsoft成本管理没有在指定的行中包括ListCost,这意味着节省无法计算。

缓解措施:作为缺失数据的一种解决方法,FinOps 工具包报告会将 ContractedCost 复制到标有此错误代码的行的 ListCost 列中。 节省额不适用于这些记录。

若要计算完整的节省金额,可以将成本和使用情况数据与价格结合起来。 有关详细信息,请参阅 问题 #873


缺少列表单价

严重性:信息性

x_SourceChanges为 null 或 0 且ListUnitPrice大于 0 时,ContractedUnitPrice列中会显示此错误代码。 该错误表明Microsoft成本管理没有在指定的行中包括ListUnitPrice,这意味着节省无法计算。

缓解措施:作为缺失数据的一种解决方法,FinOps 工具包报告会将 ContractedUnitPrice 复制到标有此错误代码的行的 ListUnitPrice 列中。 节省额不适用于这些记录。

若要计算完整的节省金额,可以将成本和使用情况数据与价格结合起来。 有关详细信息,请参阅 问题 #873


缺少提供者名称

严重性:信息性

x_SourceChanges 为 null 时,此错误代码将显示在 ProviderName 列中。 该错误表明数据集的提供程序(例如 Microsoft 成本管理)没有为指定的行包含 ProviderName 值。

缓解措施:作为解决数据缺失的解决方法,FinOps 工具包报告会尝试根据可用的列来识别提供商


查询“...”引用其他查询或步骤

严重性:次要

此错误的来源未知。 刷新 Power BI 数据时,可能会随机显示此错误。

缓解:如果收到此错误,请再次选择 “应用更改 ”。

此错误仅在存储报告中报告。 如果数据刷新时间较长或经常遇到此错误,请考虑使用数据资源管理器切换到 FinOps 中心 。 数据资源管理器使用不需要计划或增量刷新的 KQL 报告。 打开报表时会拉取数据,因此报表始终显示最新数据。


资源访问被禁止异常

严重性:重大

Power BI:引发了“Microsoft.Mashup.Engine.Interface.ResourceAccessForbiddenException”类型的异常

表示在 Power BI 中加载数据的帐户没有存储 Blob 数据读取者角色。 向在 Power BI 中加载数据的帐户授予此角色。


响应有效负载大小为...并且已超出限制

严重性:重大

治理和工作负荷优化 Power BI 报表中的 Azure Resource Graph 查询可能会返回类似于以下内容的错误:

OLE DB 或 ODBC 错误:[Expression.Error] 请在请求支持时提供以下信息:timestamp = {timestamp},correlationId = {guid}。 详细信息:响应有效负载大小为 {number},并且已超出16777216的限制。 请考虑一次查询较少的数据,并根据需要进行分页调用。

此错误意味着您在未筛选的 Resource Graph 查询中所拥有的资源超过了所支持的资源容量。 之所以发生这种情况,是因为 FinOps 工具包报表旨在显示资源级详细信息,并且不会聚合。 它们专为中小型环境而设计,不适用于支持拥有数百万资源的组织。

缓解:如果遇到此错误,有几个选项:

  • 删除不必要的列以满足您的需求。
  • 根据最重要的资源(例如订阅、标记)筛选查询以返回更少的资源。
  • 禁用查询,使其不会阻止其他查询运行。

不允许更新角色分配

严重性:次要

如果您删除了 FinOps 中心,并尝试使用相同的值和托管标识名称重新部署它,您可能会遇到以下已知问题:

"code": "RoleAssignmentUpdateNotPermitted",
"message": "Tenant ID, application ID, principal ID, and scope are not allowed to be updated."

缓解:若要解决此问题,必须删除过时的标识:

  • 导航到存储帐户,然后在菜单中选择“访问控制”(IAM)。
  • 选择“角色分配”选项卡。
  • 查找具有“未知”标识的任何角色分配项并删除它们。

角色分配存在

严重性:次要

将 FinOps 中心从一个版本升级到另一个版本时,如果以前部署中创建的角色分配仍然存在,则可能会遇到以下错误:

"code": "RoleAssignmentExists",
"message": "The role assignment already exists."

这可能是因为明确删除托管标识,而没有先删除其所有相关的角色分配。

缓解:若要解决此问题,请删除 Azure 门户中的孤立角色分配:

  • 导航到资源组或受影响的资源(如数据资源管理器群集)。
  • 在菜单中选择 “访问控制”(IAM )。
  • 选择“角色分配”选项卡。
  • 查找具有未知标识的任何角色分配并删除它们。

加载架构失败

严重性:关键

FinOps 中心 msexports_ETL_ingestion 管道无法加载架构文件。

缓解措施:查看错误消息,以记下数据集类型和版本,这些数据集类型和版本采用下划线(例如, <type>_<version>FocusCost_1.0)。 确认部署的 FinOps 中心版本都支持数据集和类型。 有关详细信息,请参阅支持的数据集。


未找到模式

严重性:关键

FinOps 中心 msexports_ExecuteETL 管道找不到导出数据集的架构映射文件。

缓解措施:确认数据集类型和版本是否支持。 有关详细信息,请参阅支持的数据集。 如果数据集受到支持,请通过数据引入报告确认中心版本。

若要添加对另一个数据集的支持,请创建自定义映射文件并将其 config/schemas/<dataset-type>_<dataset-version>.json保存到 。 这些<dataset-type><dataset-version>值与成本管理使用的值非常匹配。 若要标识每个列的数据类型,请使用现有架构文件作为模板。 某些数据集具有不同的 EA 和Microsoft 客户协议架构(MCA)。 他们无法通过这些属性被识别,如果您同时拥有两种帐户类型,可能会导致问题。 我们正在努力添加数据集,并通过与 FOCUS 保持一致来解决 EA 和 MCA 之间的差异。


导入存储 URL 与导出不匹配

严重性:重大

如果在 FinOps 工具包 0.8 报告中遇到这种情况,则错误是因为对不存在的参数的引用。

缓解:这是在 FinOps 工具包 0.9 中修复的。 更新到最新版本以应用修补程序。 如果需要将修补程序直接应用于 0.8 报告,请在高级编辑器中编辑ftk_DemoFilter函数,并将内容更改为: () => "" 保存,然后关闭并应用所有更改。


未知导出文件

严重性:信息性

中心存储中的文件看起来不像是从成本管理导出的。 文件将被忽略。

缓解措施:msexports 容器仅用于成本管理导出。 在另一个存储容器中移动其他文件。


未知焦点版本

严重性:信息性

无法识别 FOCUS 版本时,此错误代码将显示在 x_SourceChanges 列中。

缓解措施:验证 FOCUS 数据集是否使用了受支持的 FOCUS 版本。 请在 https://aka.ms/ftk/ideas 中报告此问题并附上匿名数据样本,以便进一步调查。


未知Hub版本

严重性:关键

无法从设置文件识别 FinOps 中心的版本。 验证设置是否正确。 FinOps 中心 0.1.1 及更早版本不适用于此 Power BI 报表。

缓解:升级到最新版本的 FinOps 中心 ,或从 FinOps 工具包 v0.1.1 版本下载 Power BI 报表。


不支持的导出文件类型

严重性:关键

由于不支持文件类型,无法引入指定的导出文件。

缓解:将文件转换为受支持的文件格式,然后再添加到 msexports 容器,或添加对将新文件类型转换为 msexports_ETL_ingestion 管道的支持。


不支持的导出类型

严重性:警告

中心存储中的导出清单指示导出适用于不受支持的数据集。 导出的数据被报告为引入错误。

缓解:为 FOCUS 成本创建新的成本管理导出,并停止当前导出或更改导出以导出到其他存储容器。


未在订阅 {guid} 中注册 {name} 资源提供程序

严重性:次要

在 Azure 门户中打开订阅,然后选择“设置”,接着选择“资源提供程序>”,选择资源提供程序行(例如 Microsoft.EventGrid),然后选择页面顶部的“注册”命令。 注册可能需要几分钟时间。


x_PricingSubcategory 显示承诺折扣 ID

2024 年 2 月 28 日之前的成本管理导出存在一个 bug,即未根据承诺使用量正确设置 x_PricingSubcategory。 应该会看到类似于 Committed SpendCommitted Usage. 的值。 相反,你可能会看到如下值:

  • Committed /providers/Microsoft.BillingBenefits/savingsPlanOrders/###/savingsPlans/###
  • Committed /providers/Microsoft.Capacity/reservationOrders/###/reservations/###

如果看到这些值,请重新导出该月的成本数据。 如果需要导出不可用的较旧月份的数据,请联系支持部门请求导出数据,以便解决上一次导出运行的数据质量问题。


Power BI:报表缺少特定日期的数据

如果报表缺少一个或多个月的所有数据,请检查 “月数”、“ RangeStart”和 “RangeEnd ”参数,以确保不会筛选出数据。

若要检查参数,请选择功能区中的“转换数据”“编辑参数”,或从查询编辑器窗口的“> 设置”文件夹选择单个参数🛠

  • 如果你希望始终显示特定数量的最近月份,请将“月份数”设置为已结束(已完成)的月份数。 当前月份是除已关闭月份数之外的额外月份。
  • 如果希望固定日期范围不会随时间变化(例如会计年度报告),请设置 RangeStartRangeEnd
  • 如果要报告所有可用数据,请确认所有三个日期参数均为空。

有关详细信息,请参阅设置第一个报告


Power BI:报表为空(无数据)

如果在 Power BI 或其他报表或工具中看不到任何数据,请使用以下方法,依据你的数据源进行尝试:

  1. 如果在 Power BI 中使用成本管理连接器,请检查 Billing Account ID 参数 Number of Months 以确保正确设置它们。 请记住,旧计费帐户最近几个月可能没有数据。
  2. 如果使用 FinOps 中心,请检查存储帐户以确保数据已填充到导入容器中。 应会看到 提供程序订阅 文件夹。 使用以下部分进一步进行故障排除。

FinOps 中心:引入容器为空

如果引入容器为空,请在数据工厂工作室中打开数据工厂实例,并选择“管理”“创作”“触发器”,然后验证 msexports_FileAdded 触发器是否已启动>>。 如果未启动,请将它启动。

如果触发器无法以“资源提供程序未注册”错误启动,请在Azure 门户中打开订阅,然后选择“设置> 行,然后选择页面顶部的“注册”命令。 注册可能需要几分钟时间。

注册完成后,再次启动 msexports_FileAdded 触发器。

启动触发器后,重新运行所有连接的成本管理导出。 数据应在 10-20 分钟内完全引入,具体取决于帐户的大小。

如果问题仍然存在,请检查是否配置了启用了文件分区的成本管理导出。 如果发现它已禁用,请将其打开并重新运行导出。

确认引入容器已填充,并刷新报告或其他连接的工具

FinOps 中心:引入容器中可用的文件

如果引入容器不为空,请通过深入查看文件夹来确认是否有parquet文件或csv.gz文件。

知道后,请验证 Power BI 报表中的 FileType 参数是否设置为 .parquet.gz。 有关详细信息,请参阅连接到数据

如果使用其他工具,请确保它支持所使用的文件类型。


Power BI:无法解析远程名称:“<storage-account>.dfs.core.windows.net”

指示存储帐户名称不正确。 如果使用 FinOps 中心,请验证部署中的 StorageUrl 参数。 有关详细信息,请参阅连接到数据


Power BI:无法将值 null 转换为逻辑类型

指示 计费帐户 ID 参数为空。 如果使用 FinOps 中心,请将该值设置为所需的计费帐户 ID。 如果你无权访问计费帐户或不想包括承诺购买和退款,请将值设置为 0,然后在高级编辑器中打开 CostDetails 查询,并将 2 更改为 1。 它会通知报表不要从成本管理连接器加载实际/计费的成本数据。 有关详细信息,请参阅连接到数据

适用版本: 0.1 - 0.1.1 (固定在 0.2 中)


FinOps 中心:我们无法将 null 值转换为 Table 类型

此错误通常表示数据未引入到引入容器中

如果刚刚升级到 FinOps hubs 0.2,则问题可能是 Power BI 报表旧(从 0.1.x 开始),或者因为你未使用 FOCUS 导出。 有关详细信息, 请参阅升级指南

有关更多故障排除步骤,请参阅 报告为空(无数据 )。


提供反馈

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

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


如果没有看到您遇到的错误,请参考故障排除指南。 如果有任何问题, 请在 GitHub 中开始讨论创建问题