在 Dataverse 中管理云端流运行历史记录(预览)

[本文为预发布文档,可能会发生变化。]

借助 Dataverse 中的云端流运行历史记录,您可以利用 Dataverse 的可扩展性来大规模跟踪云端流执行的结果。 借助此功能,您可以利用 Dataverse 通用数据架构的强大功能,包括基于角色的访问控制 (RBAC),来管理 FlowRun 数据。 只有在 Dataverse 中定义的解决方案云端流才能将其运行历史记录存储在 Dataverse 中。

作为该功能的一部分,每个云端流执行在表 FlowRun 中都有一个条目。 此功能使用 Dataverse 的非关系数据库弹性表来存储云端流运行历史记录。

Dataverse 中的云端流运行历史记录由自动化中心使用,为 Power Automate 中的自动化流程提供全面的监控和故障排除体验。

重要提示

  • 这是一项预览功能。
  • 预览功能不适用于生产环境,并且可能具有受限的功能。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。
  • 这项功能正在推广过程中,目前还不能在主权云地区使用。

云端流运行元素

FlowRun 表包含云端流运行的关键要素,包括以下内容:

元素 Description
客户 流运行的主键和逻辑应用标识。
开始时间 触发云端流执行的时间。
结束时间 当云执行完成时。
运行持续时间 云端流完成运行的时间,以秒为单位。
Status 流执行的最终结果(SuccessFailedCancelled)。
触发器类型 此流运行的扳机键类型(“自动”、“ 计划”或 “手动”)。
错误代码 流执行返回的错误代码。
Error message 从流执行中返回的详细错误消息(如适用)。
所有者 流的所有者。
工作流程名称 云端流的显示名称。
工作流 ID 特定云端流的 WorkflowID,
是否为主要 二进制值,表示此流运行是否有父云流触发。
父运行 ID 父云端流运行实例的名称(如果此记录用于子流)。
分区 ID 弹性表实例中该用户的分区 id。
生存时间 自动删除该运行记录的时间(秒)。

您可以通过标准 Dataverse APIDataverse 连接器或直接从 maker portal 的表格视图查看和更新详细信息。

由于该功能在弹性表上构建,因此我们将云运行历史数据存储在特定的逻辑分区中以优化性能。 运行历史数据基于用户进行分区,因此组织中的每个用户都有一个专用的分区。

FlowRun 数据使用 Dataverse 数据库存储容量。 可以在 Power Platform 管理中心中监控跨环境的存储使用情况。

用于 FlowRun 记录的存储

默认情况下,流运行数据存储 28 天(2,419,200 秒)。 如果您想要修改执行可以存储的时长,您可以在 Dataverse 支持的环境中,在组织表中更新流运行的生存时间(以秒为单位)。 根据您环境的存储容量,您可以调整这些运行记录的存储长度。

可以在 PowerApps 表浏览器中或使用 Dataverse Web API 更改组织表上的 FlowRunTimeToLiveInSeconds 值

打开或减少云端流运行历史的存储

如果组织表中的 FlowRunTimeToLiveInSeconds 值发生更改,则任何新的 FlowRun 记录的生存期将为该时间段。 随着时间的推移,降低该值可以减少 FlowRun 记录的数量和使用的存储空间。

在 Dataverse 中设置 FlowRun 生存时间

组织表中的 FlowRunTimeToLiveInSeconds 值设置为零,会停止所有新的 FlowRun 记录的接收。

在 Power Platform 管理中心设置 FlowRun 生存时间

可以在 Power Platform 管理中心环境体验中设置组织表中的 FlowRunTimeToLiveInSeconds 值。 要选择环境中使用的 FlowRun entity 生存时间:

  1. 登录 Power Platform 管理中心
  2. 导航到环境
  3. 对于所需环境,请打开设置页面。
  4. 选择产品>功能
  5. Dataverse 中的云端流运行历史记录下,将 FlowRun 实体生存时间保留值设置为 28 天(默认值)、14 天、7 天或禁用。

设置自定义 TTL 值以存储更长或更具体的云端流运行历史记录

如果您想要通过 Power Platform 管理中心体验无法获得的特定生存时间 (TTL) 值,则可以将该值直接设置为组织表中的 FlowRunTimeToLiveInSeconds 值

立即减少 FlowRun 记录的数量

如果环境的存储空间不足,客户可以选择为一组 FlowRun 记录设置 TTLInSeconds 值来清理数据库空间。 这些记录会在一两分钟内被自动清理并永久删除。 确保不再需要这些记录,因为记录一旦被删除就无法恢复。

生存时间 (TTL) 值计算

Organization.FlowRunTimeToLiveInSecondsFlowRun.TTLInSeconds 的生存时间 (TTL) 值以秒为单位指定。 下表包含可在组织和 FlowRun 表中使用的常用值。

天数
1 天 86,400 秒
3 天 259,200 秒
7 天 604,800 秒
14 天 1,209,600 秒
28 天 2,419,200 秒
60 天 5,184,000 秒

使用 FlowEvent 数据了解 FlowRun 数据的完整性

FlowRun 记录可能由于多种原因而不完整。 FlowEvent 表用于提供跳过运行和数据集不完整的信号。 缺少信号并不意味着数据集是完整的。

您可以在 PowerApps 表浏览器中或使用 Dataverse Web API 查看 FlowEvent 记录。 所有相关记录都有一个 "FlowRunIngestion" 的 FlowEvent.EventType 值,然后是 FlowEvent.EventCode 值解释该事件。

以下表包含 FlowEvent.EventCode 值的列表,可能用于表示 FlowRun 数据不完整:

EventCode 原因
isFlowRunIngestionECSDisabled 由于服务配置的原因,云端流运行历史记录未保存在 Dataverse 中,因此无法显示云端流数据。 ECS 服务配置是自动设置的,管理员无法在这种状态下更改接收行为。
TtlSettingEqual0 您当前环境的云端流运行 TTL(生存时间)配置设置为不保留数据。 因此,某些云端流运行历史记录可能会丢失。 当 Organization.FlowRunTimeToLiveInSeconds 设置为零时出现此状态。
IngestionDisabledByOrgSettings 由于环境设置的原因,云端流运行历史记录未保存在 Dataverse 中,因此云端流的某些运行历史记录可能会丢失。 这发生在 Organization.FlowRunTimeToLiveInSeconds 过去设置为零的情况下。
ElasticTableStorageCapacityReached 您已达到 Dataverse 存储容量限制,导致云端流运行数据同步暂停。
ElasticTablePartitionLimitReached 您已达到 Dataverse 存储分区限制,导致云端流运行数据同步暂停。
IngestionRateDataLoss 由于预览期间此环境中的大量运行,云端流的某些运行历史记录可能会丢失。
FlowRunsEventLoadingFailed 无法在当前环境中加载云端流运行的事件。 因此,一些历史云端流运行数据可能不可用。
FlowRunsTTlSettingFailedMessage 无法为云端流运行检索您环境的 TTL(生存时间)设置。 因此,一些历史云端流运行数据可能不可用。
ElasticTableNoRoleForUser 拥有一个或多个流的用户对 Dataverse 中的 FlowRun 表没有读取权限,因此某些云端流运行历史记录未保存在 Dataverse 中。 原因是无法将该用户设置为所有者。

已知限制

  • FlowRun 记录在写入表中时会分配给特定的所有者,因此当前不支持共享流的共享 FlowRun 记录的概念。
  • 流所有者至少需要对 FlowRun 表的读取权限,才能将其运行记录存储在 Dataverse 中。 系统将 FlowRun 记录写入表中,然后将所有权分配给流的主要所有者。 如果流的第一所有者没有对 FlowRun 表的读取权限,则不会存储 FlowRun 记录,并且 ElasticTableNoRoleForUserFlowEvent.EventCode 会出现在 FlowEvent 表中。 要解决这种情况,请确保流所有者拥有 FlowRun 表读取权限。
  • 目前,弹性表中每个分区有 20 GB 的限制。 达到限制后,仅针对该特定用户的进一步运行记录插入将会失败。
  • 如果用户有大量高运行率的流,则可能会限制和跳过 FlowRun 记录。 发生限制时,会在 FlowEvent 表中创建一个条目,以表示运行被跳过且数据集不完整。

备注

用于支持云端流运行记录插入的底层数据流不是事务性的,因此不是 100% 无损的。 由于临时、非重复的服务问题,此数据流可能会出现少量数据丢失。 这些丢失的记录不由 FlowEvent 表示。 Power Automate 门户中的流详细信息中的流执行历史记录是事务性的,因此提供运行的无损视图。

常见问题

为什么我的所有环境的 FlowRunTimeToLiveInSeconds 值都为零?

如果您的所有环境的组织表中的 FlowRunTimeToLiveInSeconds 值为零,则可能是以下情况之一:

  1. 如果 FlowRun 数据不可用,则您的环境可能不会自动启用 FlowRun 接收,因为没有足够的 Dataverse 数据库存储容量
  2. 如果以前有 FlowRun 数据,则管理员可能已经关闭了新记录的接收。

这将于何时正式发布 (GA)?

目前,没有将此功能从公开预览版转换为正式发布 (GA) 的承诺时间表。 由于需要限制的体系结构和性能限制,FlowRun 历史记录可能存在差距。 但是,我们了解完整的流程运行历史数据的重要性。 我们正在积极评估无损同步策略,以便将来将此功能移至 GA。

FlowRun 数据由 制作者门户中的 自动化中心(预览版) Power Automate 使用。 Although FlowRun 数据在预览版阶段可能存在某些差距,让这些数据可供公开预览版访问是有价值的,无论是作为独立功能还是作为自动化中心的一部分。

将云端流运行历史记录写入 Dataverse 是否使用 Power Platform 请求配额?

将云端流运行历史记录作为流运行数据写入 Dataverse 不会计入 Power Platform 请求限制。 执行 API 以读取 FlowRun 数据是否计入 Power Platform 请求限制

该数据与 Application Insights 中的数据相比如何?

管理员可以设置 Application Insights,从 Power Automate 流执行中提供监控数据。 Application Insights 数据:

自动化中心