收集性能数据的建议

适用于此 Power Platform Well-Architected Performance Efficiency 清单建议:

PE:04 收集性能数据。 工作负荷组件和流应提供自动、连续和有意义的度量和日志。 收集不同工作负荷级别(如应用程序、平台、数据和操作系统级别)的数据。

收集性能数据是收集度量和日志的过程,用于提供有关工作负荷性能的信息。 该数据包括数值,即 度量。 指标描述系统在特定时间点的状态。 性能数据还包括包含组织成记录的不同类型的数据的日志。

通过收集性能数据,可以监视和分析工作负荷的性能。 可以使用此信息来识别性能瓶颈、解决问题、优化资源分配,以及做出数据驱动的决策,以提高工作负载的整体性能效率。

如果没有数据驱动的见解,你可能不知道潜在的性能问题或优化机会。 潜在结果包括响应时间变慢、吞吐量降低、资源使用率增加,最终用户体验欠佳。 此外,由于缺少性能数据,因此无法及时诊断并解决问题,从而导致停机时间延长并降低了工作效率。

定义

术语 定义
活动日志 跟踪对资源执行的管理操作(例如,删除资源)的日志。
应用程序日志 用于跟踪有关应用程序事件、错误和其他活动(如登录和数据库连接故障)的信息的日志。
应用性能监控 (APM) 工具 一种工具,用于监视并报告应用程序的性能。
代码检测 从应用程序代码的角度直接或间接捕获性能度量。 捕获的度量包括流程度量、资源使用以及特定于语言或运行时的度量。
分布式跟踪 跨分布式工作负载组件收集和关联指标。
度量接收器 指标的存储目标,用于关联时序数据进行分析。
平台日志 诊断和审核数据,其中包含资源日志、活动日志和审核日志。
平台指标 记录特定时间工作负荷性能的数值。
资源日志 系统生成的数据。 它提供了有关系统状态的信息。
结构化日志记录 定义有意义的格式来记录消息,通常作为键值对。

关键设计策略

优化性能需要数据来针对其性能目标衡量工作负荷或流程的当前性能。 需要收集适当数量和多样性的数据,以根据性能目标衡量代码和基础结构的性能。 确保工作负荷内每个组件和流都会自动生成连续的有意义的度量和日志。 您需要从不同的级别(如应用程序、平台、存储和操作系统)源此数据。 通过全面的性能数据收集,可以全面了解性能,从而准确识别低效和改进途径。

集中存储性能数据

集中性能指标和日志是从各种源收集性能指标和日志并将其存储在中心位置的过程。 创建中央指标接收器和中央日志接收器。 通过这种集中化,可轻松访问、分析和监视跨不同系统和组件中的性能度量和日志。 通过集中化度量和日志,您可以了解工作负荷的性能。 选择可聚合并存储工作负荷绩效指标和日志的合适平台或工具。

权衡:了解收集度量和日志的成本。 通常,收集的度量和日志数越多,成本较高。

分段性能数据

对性能数据进行分段涉及根据指标和日志的来源、用途或环境对指标和日志进行组织和分类。 例如,应该将生产数据和非生产数据分开,或区分绩效目标和业务度量。 细分数据有助于优化特定环境,有助于进行疑难解答并限制性能监视中的不精确性。 通过明确区分不同的数据类型,可以更高效地捕获、分析和响应相关指标,并更好地使工作负载运行状况与工作负载目标保持一致。 若要细分性能数据,请考虑以下建议:

  • 将生产数据和非生产数据分开。 通过按环境分隔数据,可以确保对每个环境进行重点监视和优化。 在生产环境中,您可以更好地标识和解决直接影响用户和业务运营的性能问题。 在非生产环境中,数据分隔便于在部署到生产前在测试阶段进行有效的疑难解答和调整。

  • 在每个环境中使用一组数据。 不要将一组数据用于性能目标,将另一组数据集用于与性能目标相关的警报。 使用不同的数据集会导致不准确的警报,从而损害性能监视的有效性。

  • 单独的绩效目标和业务度量。 运营和开发团队使用性能目标来监视工作负载运行状况并满足业务目标。 业务指标与业务目标或客户报告相关。 在单独的数据流中捕获业务指标,即使数据直接重叠也是如此。 通过分离,可以灵活地捕获正确的数据并独立分析数据。

定义保留策略

保留策略规定性能数据应保留多长时间。 建立这些策略可帮助有效地管理存储空间并确保只有必需的数据才能用于分析。 此类策略支持更佳的性能并符合合规标准。 您应该为日志和度量数据配置保留策略,以便能够在所有环境中进行有效的疑难解答和监视。 例如,日志和指标可能需要在生产环境中保留比在测试环境中保留更长的时间。 保留期限应符合组织的要求和合规法规。 决定将数据保留多长时间用于分析和审核。 存档不需要立即分析的数据。

收集性能数据

收集数据包涉及监视和分析应用程序的性能指标,例如吞吐量、延迟和完成时间,这些指标主要通过检测代码收集。 工作负载性能数据提供有关应用程序的运行状况和性能的宝贵见解。 通过监视和分析性能数据,您可以发现并排查问题、优化性能并做出有关工作负荷的明智决策。

检测代码

检测是指嵌入代码片段或将工具集成到工作负载代码的过程;例如,在画布应用程序中创建自定义跟踪事件。 检测的目的是在应用程序运行时捕获性能数据。 收集突出显示应用程序关键操作的指标至关重要。 关注吞吐量、延迟和完成时间等指标。 区分与业务相关的操作与其他操作非常重要。 对于与业务运营相关的数据,请确保其元数据的结构方式允许不同的跟踪和存储。 代码检测提供以下优势:

  • 识别性能瓶颈:通过跟踪运行时间等指标,您可以识别瓶颈并相应地优化代码。

  • 评估负载下的系统行为:您可以在不同的压力情形下查看工作负荷的执行方式。 该数据可帮助您识别与扩展性、并发性和资源使用有关的问题。

  • 跟踪工作负载运行状况和可用性:由于关键性能指标受到实时监控,因此可以获取有关影响应用程序性能和可用性的潜在问题的警报。

  • 改善用户体验:您可以了解用户与工作负荷的交互方式。 使用此信息可优化用户体验并确定需要改进的方面。

  • 规划容量和分配资源:检测收集的性能数据可以为应用程序的资源需求提供有价值的见解。 此信息可以告知你有关规划容量和分配资源的决策。

检测代码进行性能监视时,请考虑以下策略:

  • 使用 APM 工具:应用程序性能监视 (APM) 工具可以收集和分析性能数据,包括度量、跟踪和日志。 APM 工具提供了代码级处理、事务跟踪和性能探查等功能。

  • 自定义检测:开发人员可以添加自定义代码来收集其应用程序和工作负载独有的性能指标。 自定义检测可以测量运行时、跟踪资源使用情况或捕获特定事件。

  • 捕获事务时间。 捕获事务时间与测量关键技术函数的端到端时间(作为性能监视的一部分)相关。 应用程序级别的度量应包括端到端的事务时间。 这些事务时间应涵盖关键技术功能,例如数据库查询、外部 API 调用的响应时间和处理步骤的失败率。

  • 使用遥测标准。 请考虑使用 APM 工具检测库和围绕遥测标准构建的工具,例如 OpenTelemetry。

收集资源性能数据

通过收集资源性能数据,可以深入了解工作负载的运行状况和行为。 资源绩效数据提供有关资源使用的信息,这是规划产能的关键。 此数据还提供对工作负荷运行状况的见解,并有助于检测问题和进行故障排除。 请考虑以下建议:

  • 收集每个资源的度量和日志。 每个服务都有一组对资源功能特有的度量。 这些指标有助于您了解资源的运行状况和性能。

  • 使用平台工具。 从内置和集成监控解决方案(如 Azure Monitor Insights)中寻找灵感。 该工具可简化性能操作。 在选择平台并投资自定义工具或报告时,请考虑使用平台工具。

  • 监视网络流量。 监视网络流量是指跟踪和分析跨网络路径移动的数据流和模式。 收集流量分析并监视跨越子网边界的流量。 您的目标是分析和优化网络性能。

收集数据库和存储数据

许多数据库和存储系统都提供了其自己的监视工具。 这些工具收集特定于这些系统的性能数据。 数据库和存储系统通常会生成包含与性能相关的事件和指标的日志。 收集数据库数据和存储性能数据,以便确定瓶颈、诊断问题并做出明智的决策,以提高工作负载的整体性能和可靠性。 考虑收集以下类型的性能数据:

  • 吞吐量:吞吐量可衡量一段时间从存储空间中读取或写入到存储空间的数据量。 吞吐量数据指示数据传输功能。

  • 延迟:延迟衡量存储操作的持续时间。 延迟数据指示存储系统的响应能力。

  • IOPS(每秒 I/O 操作):有关存储系统每秒可以执行的读取操作或写入操作数的数据。 IOPS 数据指示存储系统的吞吐量和响应能力。

  • 容量使用:容量使用是使用的存储容量和可用容量。 容量使用数据可帮助组织规划未来的存储需求。

收集连接器性能数据

等待集成服务操作完成所花费的时间会导致工作负载的整体性能不佳。 如果工作负荷使用连接器集成服务,请考虑测量每个连接器操作所花费的时间以评估其影响并决定是否优化工作负荷设计。 根据服务的不同,您可以使用运行历史记录或自定义逻辑捕获连接器操作所花费的时间。

验证和分析数据

性能数据应与性能目标保持一致。 数据需要完全准确地表示工作负载或流性能,因为它与性能目标相关。 例如,Web 服务的响应时间的性能目标为 500 毫秒。 分析数据是一个例行事务,因为经常评估允许对性能问题进行早期检测和缓解。

  • 创建警报。 具有可操作的警报是有益的,从而能够及时识别和纠正性能问题。 这些警报应清楚地指示违反的性能阈值、潜在的业务影响以及所涉及的组件。 首先设置常见警报和推荐警报。 随着时间的推移,您可以根据自己的特定需求修改这些标准。 这些警报的主要目标应是预测潜在的性能下降,然后再将其升级为重大问题。 如果您无法为外部依赖关系设置警报,请考虑制定一种方法以收集间接度量,如依赖关系调用的持续时间。

  • 设置数据收集限制。 确定并设置有关收集的数据量及其保留持续时间的逻辑限制。 遥测功能有时会生成大量的数据。 必须集中精力捕获最重要的绩效指标,或者创建一个高效的系统来从您的绩效数据中提取有意义的见解。

Power Platform 便利化

收集应用程序性能数据Application Insights 是 Azure 监视器的一项功能,可帮助您监视应用程序的性能和可用性。 数据由 Application Insights 存储在 Azure Monitor 日志中,并在性能和故障面板中可视化。 这些数据将导出到 Application Insights 定义的标准架构中您的 Application Insights 环境内。 您可以将 Dataverse 和 Power Automate 数据导出到 Application Insights,将您的画布应用程序连接到 Application Insights,并从您的 Microsoft Copilot Studio代理 中获取遥测数据,以便在 Azure Application Insights中使用。

Application Insights 允许您选择服务器浏览器数据视图。 可通过最长持续时间识别这些操作来诊断潜在问题。

使用本机平台功能分析性能:Copilot Studio 中的分析功能可提供代理性能的全面概览。 它使用人工智能 (AI) 技术向您显示哪些主题对呈报率、放弃率和解决率的影响最大。 Power Apps 的性能洞察分析运行时的用户数据,并提供优先级建议列表,帮助提高模型驱动应用程序的性能。

集中、细分和保留性能数据:Microsoft 已在 Dataverse、Power Automate 云端流和模型驱动应用程序上收集广泛的遥测数据。 通过 Application Insights 集成,环境或租户管理员在 Power Platform 管理中心设置数据导出流程时提供 Application Insights 检测密钥。 安装完毕后,将立即把 Microsoft 收集的有关您的环境的遥测发送到您的 Application Insights 环境。 在使用 Application Insights 集成时,将收到一组采用 Application Insights 遥测数据模型的标准化遥测。 除此集成外,您还可以将画布应用程序连接到 Application Insights,并从您的 Microsoft Copilot Studio代理 中捕获遥测数据,供 Azure Application Insights 使用。

收集 Azure 资源性能数据:大多数 Azure 服务都会生成平台日志和度量,以提供诊断和审核信息。 通过启用诊断设置,您可以指定平台日志和用于收集和存储的度量。为关联目的,请针对所有支持的服务启用诊断,并将日志发送到与应用程序日志相同的目标。

收集数据库性能数据:Microsoft Dataverse 与 Application Insights 集成。 数据流目前提供与 Dataverse API 传入调用、Dataverse 插件执行调用和 Dataverse SDK 调用有关的性能数据。 若要获得问题通知,请基于性能阈值设置警报。

验证和分析性能数据:在 Azure 监视器中,您可以使用 Azure 监视器日志从应用程序和系统收集、分析和可视化日志数据。 通过聚合日志,您可以交叉查询事件并获取对应用程序性能的见解。 有关详细信息,请参阅 Azure 监视器日志成本计算和选项** 以及 Azure 监视器的定价

在 Azure Monitor 中,可以定义警报规则来监视特定性能指标,并根据预定义的条件触发警报。 例如,您可以创建一个警报规则,在响应时间超过指定限制时通知您。 配置警报规则以向所需的收件人发送通知。

创建警报规则时,可以定义确定何时触发警报的条件。 您可以设置阈值、聚合方法、时间窗口和评估频率。 根据性能监视要求定义条件。 除了发送通知外,您还可以指定触发警报时要采取的操作。 操作可以包括发送电子邮件、调用 Webhook 或运行 Azure 函数。 选择适当的操作来响应特定警报方案。

示例

性能效率清单

请参考整套建议。