Azure 机器学习使用与 Azure Monitor 的集成来跟踪和监视联机终结点的指标和日志。 可以在图表中查看指标、在终结点和部署之间比较指标、将指标固定到 Azure 门户仪表板、配置警报、查询日志表以及将日志推送到受支持的目标。 还可以使用 Application Insights 分析用户容器中的事件。
指标:对于终结点级指标,例如请求延迟、每分钟请求数、每秒新连接数和网络字节,可以向下钻取以查看部署级别或状态级别的详细信息。 还可以向下钻取部署级别的指标(例如 CPU/GPU 使用率以及内存或磁盘使用率)到实例级别。 在 Monitor 中,可以在图表中跟踪这些指标,并且可以设置仪表板和警报以进一步分析。
日志:可以将指标发送到 Log Analytics 工作区,然后可以在其中使用 Kusto 查询语法来查询日志。 还可以将指标发送到 Azure 存储帐户或 Azure 事件中心,以便进一步处理。 对于与联机终结点相关的流量、控制台(容器)日志和事件,可以使用专用日志表。 Kusto 查询支持复杂的分析功能和多个表的联接。
Application Insights:特选环境包括与 Application Insights 的集成。 创建联机部署时,可以打开或关闭此集成。 启用后,内置指标和日志将发送到 Application Insights。 然后,可以使用 Application Insights 的内置功能进行进一步分析。 这些功能的示例包括实时指标、事务搜索、故障视图和性能视图。
本文介绍如何:
- 选择正确的方法来查看和跟踪指标和日志。
- 查看联机终结点的指标。
- 为指标创建仪表板。
- 创建指标警报。
- 查看联机终结点的日志。
- 使用 Application Insights 跟踪指标和日志。
先决条件
- Azure 机器学习联机终结点
- 终结点上至少有读者访问权限
使用指标
在 Azure 门户中,可以查看联机终结点和部署的指标页。
从 Azure 机器学习工作室访问指标
访问指标页的一种简单方法是通过 Azure 机器学习工作室用户界面中提供的链接。 可以在终结点页面的“详细信息”选项卡中找到这些链接。 这些链接指向 Azure 门户中终结点或部署的指标页面。
若要通过工作室中提供的链接访问指标页,请执行以下步骤:
在 Azure 机器学习工作室中,转到工作区。
在“资产”下,选择“终结点”。
选择终结点的名称。
在“终结点属性”下,选择“查看指标”。
终结点的指标页将在 Azure 门户中打开。
在 Azure 机器学习工作室的终结点页上,转到部署部分,然后选择“查看指标”。
部署的指标页将在 Azure 门户中打开。
从 Azure 门户访问指标
查看终结点或部署的指标页的另一种方法是直接转到 Azure 门户:
转到 Azure 门户。
转到联机终结点或部署资源。
联机终结点和部署是 Azure 资源管理器资源。 可以通过转到资源组,然后查找资源类型“机器学习联机终结点”和“机器学习联机部署”来找到它们。
在资源页上的“监视”下,选择“指标”。
可用度量值
看到的指标取决于所选资源。 联机终结点和联机部署的指标的范围不同。
终结点范围内的指标
有关联机终结点范围内可用的指标的信息,请参阅 Microsoft.MachineLearningServices/workspaces/onlineEndpoints 支持的指标。
带宽限制
如果托管联机终结点超出配额限制,则带宽会受到限制。 有关联机终结点的限制的详细信息,请参阅有关 Azure 机器学习中的配额和限制的文章中的 Azure 机器学习联机终结点和批处理终结点。 若要确定请求是否受到限制,请执行以下操作:
- 监视“网络字节数”指标。
- 检查响应尾部的以下字段:
ms-azureml-bandwidth-request-delay-ms
和ms-azureml-bandwidth-response-delay-ms
。 字段的值是带宽限制的延迟(以毫秒为单位)。
有关详细信息,请参阅带宽限制问题。
部署范围内的指标
有关部署范围内可用的指标的信息,请参阅 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments 支持的指标。
创建仪表板和警报
在 Monitor 中,可以创建基于指标的仪表板和警报。
创建仪表板并可视化查询
可以创建自定义仪表板,以便可视化来自 Azure 门户中多个源的指标,包括联机终结点的指标。 有关创建仪表板和可视化查询的详细信息,请参阅创建和共享 Log Analytics 数据的仪表板和使用 Application Insights 创建自定义 KPI 仪表板。
创建警报
还可以创建自定义警报,以便收到有关联机终结点的重要状态更新的通知:
在 Azure 门户中,转到指标页,然后选择“新建警报规则”。
在“选择信号”窗口中,选择要为其创建警报的信号,然后选择“应用”。
在“创建警报规则”页中,输入阈值,并编辑要调整的任何其他设置。 有关警报规则设置的详细信息,请参阅配置警报规则条件。 然后选择“下一步: 操作”。
在“选择操作组”窗口中,创建或选择一个操作组以指定触发警报时会发生什么情况。 有关详细信息,请参阅配置警报规则详细信息。
选择“查看 + 创建”以完成警报创建。
根据指标自动缩放
可以将部署配置为根据指标自动缩放。 若要启用自动缩放功能,可以使用 UI 或代码。
代码选项包括 Azure 机器学习 CLI 和适用于 Python 的 Azure 机器学习 SDK。 使用代码时,可以通过提供指标的 REST API 名称来配置触发自动缩放的条件。
- 有关在代码中使用的终结点指标的名称,请参阅 Microsoft.MachineLearningServices/workspaces/onlineEndpoints 支持的指标表中的“REST API 中的名称”列中的值。
- 有关在代码中使用的部署指标的名称,请参阅 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments 支持的指标表中的“REST API 中的名称”列中的值。
有关详细信息,请参阅 Azure 机器学习中的自动缩放联机终结点。
使用日志
可以为联机终结点启用三种日志:
AmlOnlineEndpointTrafficLog:此流量日志提供了一种检查终结点请求信息的方法。 此日志在以下情况下很有用:
- 请求响应不是 200,你需要更多信息。 日志中的
ResponseCodeReason
列列出了原因。 有关状态代码和原因的说明,请参阅有关联机终结点故障排除的文章中的 HTTPS 状态代码。 - 你想要查找模型对某个请求的响应代码和响应原因。
ModelStatusCode
和ModelStatusReason
列提供此信息。 - 你想要知道请求的持续时间。 该日志提供延迟的明细。 此明细显示总持续时间、请求持续时间、响应持续时间和网络限制导致的延迟。
- 你想要检查成功和失败的最新请求数。 该日志提供此信息。
- 请求响应不是 200,你需要更多信息。 日志中的
AmlOnlineEndpointConsoleLog:此日志包含容器作为输出写入控制台的语句。 此日志在以下情况下很有用:
- 容器无法启动。 控制台日志可用于调试。
- 你想要监视容器行为,并确保正确处理所有请求。
- 你想要跟踪从联机终结点的网络入口点到容器的请求。 可以使用 Log Analytics 查询将请求 ID 与 AmlOnlineEndpointConsoleLog 和 AmlOnlineEndpointTrafficLog 日志中的信息联接在一起。
- 例如,你想要运行性能分析来确定模型处理每个请求所需的时间。
AmlOnlineEndpointEventLog:此日志包含有关容器生命周期的事件信息。 目前,日志提供有关以下类型的事件的信息:
名称 消息 回退 回退重启失败的容器 已拉取 计算机上已存在容器映像 “<映像名称>” 正在终止 将重启容器推理服务器失败的运行情况探测 创建 已创建容器映像提取器 创建 已创建容器推理服务器 创建 已创建容器模型装载 LivenessProbeFailed 运行情况探测失败: <失败内容> ReadinessProbeFailed 就绪情况探测失败: <失败内容> 已开始 已启动容器映像提取器 已开始 已启动容器推理服务器 已开始 已启动容器模型装载 正在终止 正在停止容器推理服务器 正在终止 正在停止容器模型装载
启用日志
重要
日志记录使用 Monitor 的 Log Analytics 功能。 如果当前没有 Log Analytics 工作区,则可以按照创建工作区中的步骤创建一个工作区。
在 Azure 门户中,转到包含终结点的资源组,然后选择该终结点。
在“监视”下,选择“诊断设置”,然后选择“添加诊断设置”。
在“诊断设置”窗口中,输入以下信息:
- 在“诊断设置名称”旁边,输入设置的名称。
- 在“日志”下,选择要启用的日志类别。
- 在“目标详细信息”下,选择“发送到 Log Analytics 工作区”,然后选择要使用的订阅和 Log Analytics 工作区。
选择“保存”。
重要
与 Log Analytics 工作区的连接可能需要长达一小时才能建立。 请等待一个小时,然后继续执行下一部分中的步骤。
查询日志
将评分请求提交到终结点以在日志中创建条目。
转到 Azure 门户。 若要打开日志,请使用以下选项之一:
- 转到联机终结点的属性页。 在“监视”下选择“日志”。
- 转到“Log Analytics 工作区”。 在左侧,选择“日志”。
关闭默认打开的“查询中心”窗口。
在“其他”下,双击“AmlOnlineEndpointConsoleLog”。 如果未看到 AmlOnlineEndpointConsoleLog,请在搜索字段中输入该值。
选择运行。
示例查询
可以使用示例查询。 若要查看查询,请执行以下步骤:
日志列详细信息
下表提供了有关每个日志中存储的数据的详细信息:
AmlOnlineEndpointTrafficLog (Aml在线端点流量日志)
属性 | 说明 |
---|---|
方法 | 客户端请求的方法。 |
路径 | 客户端请求的路径。 |
SubscriptionId(订阅ID) | 联机终结点的机器学习订阅 ID。 |
AzureMLWorkspaceId | 联机终结点的机器学习工作区 ID。 |
AzureMLWorkspaceName | 联机终结点的机器学习工作区名称。 |
端点名称 | 联机终结点的名称。 |
部署名称 | 联机部署的名称。 |
协议 | 请求的协议。 |
响应码 | 返回到客户端的最终响应代码。 |
ResponseCodeReason | 返回到客户端的最终响应代码原因。 |
模型状态代码 (ModelStatusCode) | 模型中的响应状态代码。 |
ModelStatusReason | 模型中的响应状态原因。 |
RequestPayloadSize | 从客户端接收的总字节数。 |
响应负载大小 | 发回客户端的总字节数。 |
用户代理 (UserAgent) | 请求的用户代理标头,包括注释,但截断为最多 70 个字符。 |
XRequestId | Azure 机器学习为内部跟踪生成的请求 ID。 |
XMSClientRequestId | 客户端生成的跟踪 ID。 |
TotalDurationMs | 从请求开始时间到最后一个响应字节发回客户端的时间的持续时间(以毫秒为单位)。 如果客户端断开连接,则持续时间为从开始时间到客户端断开连接时间。 |
RequestDurationMs | 从请求开始时间到从客户端接收请求的最后一个字节的时间的持续时间(以毫秒为单位)。 |
响应持续时间毫秒 | 从请求开始时间到从模型读取第一个响应字节的时间的持续时间(以毫秒为单位)。 |
RequestThrottlingDelayMs | 由于网络限制,请求数据传输的延迟(以毫秒为单位)。 |
ResponseThrottlingDelayMs | 由于网络限制,响应数据传输的延迟(以毫秒为单位)。 |
AmlOnlineEndpointConsoleLog
属性 | 说明 |
---|---|
TimeGenerated | 生成日志的时间的 UTC 时间戳 |
操作名称 | 与日志记录关联的操作 |
实例ID | 生成日志记录的实例的 ID |
部署名称 | 与日志记录关联的部署的名称 |
容器名称 | 生成日志的容器的名称 |
消息 | 日志内容 |
Aml在线端点事件日志 (AmlOnlineEndpointEventLog)
属性 | 说明 |
---|---|
TimeGenerated | 生成日志的时间的 UTC 时间戳 |
操作名称 | 与日志记录关联的操作 |
实例ID | 生成日志记录的实例的 ID |
部署名称 | 与日志记录关联的部署的名称 |
名称 | 事件的名称 |
消息 | 事件的内容 |
使用 Application Insights
特选环境包括与 Application Insights 的集成。 通过此集成,内置指标和日志将发送到 Application Insights。 因此,可以使用 Application Insights 内置功能进行进一步分析。 这些功能的示例包括实时指标、事务搜索、故障视图和性能视图。
有关详细信息,请参阅 Application Insights 概述。
在工作室中创建联机部署时,可以启用与 Application Insights 的集成。 在“部署”页上的“Application Insights 诊断”下,选择“已启用”。
启用 Application Insights 时,可以看到托管联机终结点的高级活动监视器图。 在工作室中,转到终结点的页面,然后选择“监视”选项卡。