你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

监视 Azure OpenAI 服务

如果你有依赖 Azure 资源的关键应用程序和业务流程,则需要监视这些资源的可用性、性能和操作。

本文介绍 Azure OpenAI 服务生成的监视数据。 Azure OpenAI 是 Azure AI 服务的一部分,它使用 Azure Monitor。 如果你不熟悉所有 Azure 服务普遍使用的 Azure Monitor 功能,请参阅使用 Azure Monitor 监视 Azure 资源

仪表板

Azure OpenAI 为每个 Azure OpenAI 资源提供现成的仪表板。 若要访问监视仪表板,请登录到 https://portal.azure.com 并选择其中一个 Azure OpenAI 资源的概述窗格。

屏幕截图显示 Azure 门户中 Azure OpenAI 资源的现成仪表板。

仪表板分为四个类别:HTTP 请求基于令牌的使用情况PTU 利用率微调

Azure Monitor 中的数据收集和路由

Azure OpenAI 收集与其他 Azure 资源相同类型的监视数据。 可以将 Azure Monitor 配置为在活动日志、资源日志、虚拟机日志和平台指标中生成数据。 有关详细信息,请参阅监视 Azure 资源中的数据

系统会自动收集和存储平台指标和 Azure Monitor 活动日志。 可以使用诊断设置将这些数据路由到其他位置。 在创建诊断设置并将日志路由到一个或多个位置之前,不会收集和存储 Azure Monitor 资源日志。

创建诊断设置时,请指定要收集的日志类别。 有关使用 Azure 门户、CLI 或 PowerShell 创建诊断设置的详细信息,请参阅创建诊断设置以收集 Azure 中的平台日志和指标

请记住,使用诊断设置并将数据发送到 Azure Monitor 日志会产生其他费用。 有关详细信息,请参阅 Azure Monitor 日志成本计算和选项

以下部分将介绍可以收集的指标和日志。

分析指标

可以使用 Azure 门户中的 Azure Monitor 工具分析 Azure OpenAI 服务资源的指标。 在 Azure OpenAI 资源的“概述”页中,选择“监视”下面左窗格中的“指标”。 有关详细信息,请参阅 Azure Monitor 指标资源管理器入门指南

Azure OpenAI 与一部分 Azure AI 服务具有共性。 有关 Azure Monitor 为 Azure OpenAI 和类似 Azure AI 服务收集的所有平台指标的列表,请参阅 Microsoft.CognitiveServices/accounts 支持的指标

认知服务指标

这些指标是所有 Azure AI 服务资源通用的旧指标。 我们不再建议将这些指标用于 Azure OpenAI。

Azure OpenAI 指标

注意

经过预配和管理的利用率指标现已弃用,不再推荐使用。 此指标已替换为经过预配和管理的利用率 V2 指标。

下表汇总了 Azure OpenAI 中可用指标的当前子集。

指标 类别 聚合 说明 维度
Azure OpenAI Requests HTTP 计数 一段时间内对 Azure OpenAI API 发出的调用总数。 适用于 PayGo、PTU 和 PTU 托管的 SKU。 ApiNameModelDeploymentNameModelNameModelVersionOperationNameRegionStatusCodeStreamType
Generated Completion Tokens 使用情况 Sum 从 Azure OpenAI 模型生成的标记数(输出)。 适用于 PayGo、PTU 和 PTU 托管的 SKU ApiNameModelDeploymentNameModelNameRegion
Processed FineTuned Training Hours 使用情况 Sum 在 Azure OpenAI 微调的模型中处理的训练小时数。 ApiNameModelDeploymentNameModelNameRegion
Processed Inference Tokens 使用情况 Sum 由 Azure OpenAI 模型处理的推理令牌数。 计算方法为:提示标记数(输入)+ 生成的标记数。 适用于 PayGo、PTU 和 PTU 托管的 SKU。 ApiNameModelDeploymentNameModelNameRegion
Processed Prompt Tokens 使用情况 Sum 在 Azure OpenAI 模型上处理的提示标记(输入)总数。 适用于 PayGo、PTU 和 PTU 托管的 SKU。 ApiNameModelDeploymentNameModelNameRegion
Provision-managed Utilization V2 使用情况 平均值 预配托管利用率是给定预配托管部署的利用率百分比。 计算方法为:(已使用的 PTU 数/已部署的 PTU 数)*100。 当利用率达到或超过 100% 时,将限制调用并返回 429 错误代码。 ModelDeploymentNameModelNameModelVersionRegionStreamType

配置诊断设置

所有指标都可以使用 Azure Monitor 中的诊断设置导出。 若要使用 Azure Monitor Log Analytics 查询分析日志和指标数据,需要为 Azure OpenAI 资源和 Log Analytics 工作区配置诊断设置。

  1. 在 Azure OpenAI 资源页的“监视”下,选择左窗格中的“诊断设置”。 在“诊断设置”页上,选择“添加诊断设置”。

    显示如何在 Azure 门户中打开 Azure OpenAI 资源的“诊断设置”页的屏幕截图。

  2. 在“诊断设置”页上,配置以下字段:

    1. 选择“发送到 Log Analytics 工作区”
    2. 选择 Azure 帐户订阅。
    3. 选择你的 Log Analytics 工作区。
    4. 在“日志”下,选择“allLogs”。
    5. 在“指标”下,选择“AllMetrics”。

    显示如何在 Azure 门户中配置 Azure OpenAI 资源的诊断设置的屏幕截图。

  3. 输入“诊断设置名称”以保存配置。

  4. 选择“保存”。

配置诊断设置后,可以在 Log Analytics 工作区中使用 Azure OpenAI 资源的指标和日志数据。

分析日志

Azure Monitor 日志中的数据以表形式存储,每个表具有自己独有的属性集。

Azure Monitor 中的所有资源日志都具有后跟服务特定字段的相同字段。 有关通用架构的信息,请参阅 Azure 资源日志的通用架构和特定于服务的架构

活动日志是 Azure 中的一种平台日志,可用于深入了解订阅级别的事件。 可以单独查看此日志或将其路由到 Azure Monitor 日志。 在 Azure 门户中,可以使用 Azure Monitor 日志中的活动日志通过 Log Analytics 运行复杂的查询。

有关可用于 Azure OpenAI 和其他类似 Azure AI 服务的资源日志类型的列表,请参阅 Microsoft.CognitiveServices Azure 资源提供程序操作。

使用 Kusto 查询

部署 Azure OpenAI 模型后,可以使用 Azure AI 工作室中的“操场”环境发送一些完成调用。

显示如何在 Azure OpenAI 工作室操场中生成 Azure OpenAI 资源完成的屏幕截图。

在“完成操场”或“聊天完成操场”中输入的任何文本都会为 Azure OpenAI 资源生成指标和日志数据。 在资源的 Log Analytics 工作区中,可以使用 Kusto 查询语言查询监视数据。

重要

Azure OpenAI 资源页上的“打开查询”选项会浏览到 Azure Resource Graph,本文并未对此进行介绍。 以下查询使用 Log Analytics 的查询环境。 请务必按照配置诊断设置中的步骤准备 Log Analytics 工作区。

  1. 在 Azure OpenAI 资源页的“监视”下,选择左窗格中的“日志”。

  2. 选择为 Azure OpenAI 资源配置了诊断的 Log Analytics 工作区。

  3. 在“Log Analytics 工作区”页的“概述”下,选择左窗格中的“日志”。

    默认情况下,Azure 门户显示“查询”窗口,其中包含示例查询和建议。 你可以关闭此窗口。

对于以下示例,在“查询”窗口顶部的编辑区域中输入 Kusto 查询,然后选择“运行”。 查询结果显示在查询文本下方。

以下 Kusto 查询可用于对资源的相关 Azure 诊断 (AzureDiagnostics) 数据进行初始分析:

AzureDiagnostics
| take 100
| project TimeGenerated, _ResourceId, Category, OperationName, DurationMs, ResultSignature, properties_s

此查询返回包含 100 个条目的示例,并显示日志中可用数据列的子集。 在查询结果中,你还可以选择表名称旁边的箭头来查看所有可用列和关联的数据类型。

显示 Azure OpenAI 资源的相关 Azure 诊断数据的 Log Analytics 查询结果的屏幕截图。

若要查看所有可用的数据列,可以从查询中删除范围参数行 | project ...

AzureDiagnostics
| take 100

若要检查资源的 Azure 指标 (AzureMetrics) 数据,请运行以下查询:

AzureMetrics
| take 100
| project TimeGenerated, MetricName, Total, Count, Maximum, Minimum, Average, TimeGrain, UnitName

该查询返回包含 100 个条目的示例,并显示可用 Azure 指标数据列的子集:

显示 Azure OpenAI 资源的相关 Azure 指标数据的 Log Analytics 查询结果的屏幕截图。

注意

在“Azure OpenAI”菜单中选择“监视”>“日志”时,Log Analytics 随即打开,其查询范围设置为当前资源。 可见日志查询只包含来自该特定资源的数据。 如果要运行的查询包含来自他资源或其他 Azure 服务的数据,请从 Azure 门户的“Azure Monitor”菜单中选择“日志”。 有关详细信息,请参阅 Azure Monitor Log Analytics 中的日志查询范围和时间范围

设置警报

在监视数据中发现重要情况时,Azure Monitor 警报会主动通知你。 有了警报,你就可以在用户注意到你的系统中的问题之前确定和解决它们。 可以在指标日志活动日志上设置警报。 不同类型的警报具有不同的优缺点。

每个组织的警报需求各不相同,并可能随时间而变化。 一般来说,所有警报都应具备可操作性,在发生警报时具有特定的预期响应。 如果警报不需要立即响应,则可以在报表而不是警报中捕获条件。 某些用例可能需要在存在某些错误条件时发出警报。 在其他情况下,可能需要针对在指定时间段内超过特定阈值的错误发出警报。

通常可以通过定期分析 Azure Monitor 日志中的数据来评估低于某些阈值的错误。 在分析一段时间内的日志数据时,你可能会发现在预期的一段时间内不会发生某个特定条件。 可以使用警报跟踪此条件。 有时,日志中事件的缺失与错误一样是重要的信号。

根据结合使用 Azure OpenAI 开发的应用程序类型,Azure Monitor Application Insights 可能会在应用程序层提供更多监视优势。

后续步骤