重要
从 2023 年 9 月 21 日起,将无法创建新的指标顾问资源。 截至 2026 年 3 月 31 日,指标顾问门户已禁用。 指标顾问服务将于 2026 年 10 月 1 日停用。
建议使用以下替代方法:
- Azure Monitor,作为官方Azure 3P 产品,通过多个接口提供异常检测和分析功能。
- 开源异常检测器,此开源项目提供与 Kensho、Azure 指标顾问和 Azure 异常检测器在后端中相同的异常检测功能。
指标顾问检测到异常后,将根据警报设置通过挂钩触发警报通知。 警报设置可用于多个检测配置,可以使用各种参数自定义警报规则。
创建钩子
指标顾问支持四种不同类型的挂钩:电子邮件、Teams、Webhook 和 Azure DevOps。 可以选择适合您特定场景的选项。
电子邮件钩子
注意
指标顾问资源管理员需要配置电子邮件设置,并在发送异常警报之前将 SMTP 相关信息输入指标顾问。 资源组管理员或订阅管理员需要在指标顾问资源的“访问控制”选项卡中至少分配一个“认知服务指标顾问管理员”角色。 详细了解电子邮件设置配置。
电子邮件挂钩是将异常警报发送到“电子邮件收件人”部分中指定的电子邮件地址的通道。 两种类型的警报电子邮件将发送:“数据馈送不可用”警报和“事件报表”,其中包含一个或多个异常 。
若要创建电子邮件挂钩,可使用以下参数:
| 参数 | 说明 |
|---|---|
| 名称 | 电子邮件挂钩的名称 |
| 收件人邮箱 | 要将警报发送到的电子邮件地址 |
| 外部链接 | 可选字段,用于启用自定义重定向,例如用于故障排除说明。 |
| 自定义异常警报标题 | 标题模板支持 ${severity}、${alertSettingName}、${datafeedName}、${metricName}、${detectConfigName}、${timestamp}、${topDimension}、${incidentCount}、${anomalyCount} |
选择“确定”后,将创建电子邮件钩子。 可以在任何警报设置中使用它来接收异常警报。 有关详细步骤,请参阅在指标顾问中启用异常通知这一教程。
Teams 钩子
Teams 挂钩是一条通道,用于将异常警报发送到 Microsoft Teams 通道。 Teams 挂钩通过“传入 Webhook”连接器实现。 可能需要在目标 Teams 通道中提前创建“传入 Webhook”连接器,并获取其 URL。 然后切换回到指标顾问工作区。
在左窗格中选择“挂钩”选项卡,然后选择页面右上角的“创建挂钩”按钮。 选择“Teams”挂钩类型,以下参数已提供:
| 参数 | 说明 |
|---|---|
| 名称 | Teams 钩子的名称 |
| 连接器 URL | 在目标 Teams 频道创建的“传入 Webhook”连接器中刚复制的 URL。 |
选择“确定”后,将创建 Teams 挂钩。 可以在任何警报设置中使用它来通知目标 Teams 频道的异常警报。 有关详细步骤,请参阅在指标顾问中启用异常通知这一教程。
Webhook
Webhook 是使用客户提供的终结点的另一条通知通道。 检测到的任何时间序列异常都将通过 Webhook 通知。 可以通过几个步骤,在指标顾问中启用 Webhook 作为警报通知通道。
步骤 1. 在 Metrics Advisor 资源中启用托管身份
系统分配的托管身份对每个资源仅限一个,并关联到该资源的生命周期。 可以使用 Azure 基于角色的访问控制 (Azure RBAC) 来授予对托管标识的访问权限。 托管标识通过 Microsoft Entra ID 进行身份验证,因此无需在代码中存储任何凭据。
转到 Azure 门户中的“指标顾问”资源,选择“标识”,将其转换为“启用”,则会启用托管标识。
步骤 2. 在指标顾问工作区中创建 Webhook
登录到工作区,然后选择“挂钩”选项卡,然后选择“创建挂钩”按钮。
若要创建 Web 挂钩,需要添加以下信息:
| 参数 | 说明 |
|---|---|
| 端点 | 触发警报时要调用的 API 地址。 必须是 HTTPS。 |
| 用户名/密码 | 用于对 API 地址进行身份验证。 如果不需要身份验证,则将其保留为黑色。 |
| 标头 | API 调用中的自定义标头。 |
| Azure Key vaults 中的证书标识符 | 如果访问终结点需要通过证书进行身份验证,则证书应存储在 Azure Key vaults 中。 在此处输入该标识符。 |
注意
创建或修改 Webhook 时,端点将被调用进行测试,其请求正文为空。 API 需要返回 200 HTTP 代码才能成功通过验证。
- 请求方法为 POST
- 超时 30 秒
- 对于 5xx 错误进行重试,忽略其他错误。 不会遵循 301/302 重定向请求。
- 请求正文:
{
"value": [{
"hookId": "b0f27e91-28cf-4aa2-aa66-ac0275df14dd",
"alertType": "Anomaly",
"alertInfo": {
"anomalyAlertingConfigurationId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"alertId": "172536dbc00",
"timestamp": "2020-05-27T00:00:00Z",
"createdTime": "2020-05-29T10:04:45.590Z",
"modifiedTime": "2020-05-29T10:04:45.590Z"
},
"callBackUrl": "https://kensho2-api.chinacloudsites.cn/alert/anomaly/configurations/1bc6052e-9a2a-430b-9cbd-80cd07a78c64/alerts/172536dbc00/incidents"
}]
}
步骤 3。 (可选) 在 Azure Key Vault 中存储证书并获取标识符。如上所述,如果访问终结点需要通过证书进行身份验证,则证书应存储在 Azure Key Vault 中。
- 参见使用 Azure 门户在 Azure 密钥保管库 中设置和检索证书
- 选择已添加的证书,然后可复制“证书标识符”。
- 然后选择“访问策略”和“添加访问策略”,为“密钥权限”、“机密权限”和“证书权限”授予“Get”权限。 选择主体作为指标顾问资源的名称。 选择“访问策略”页中的“添加”和“保存”按钮。
步骤 4. 接收异常通知。通过 Webhook 推送通知时,你可以调用 Webhook 请求中的“callBackUrl”来提取事件数据。
借助 Webhook 和 Azure 逻辑应用,可以在不配置 SMTP 服务器的情况下发送电子邮件通知。 有关详细步骤,请参阅在指标顾问中启用异常通知这一教程。
Azure DevOps
指标顾问还支持在 Azure DevOps 中自动创建工作项,以在检测到任何异常时跟踪问题/bug。 所有警报都可以通过 Azure DevOps 挂钩发送。
若要创建 Azure DevOps 挂钩,需要添加以下信息
| 参数 | 说明 |
|---|---|
| 名称 | 挂钩的名称 |
| 组织 | DevOps 所属的组织 |
| 项目 | DevOps 中的特定项目。 |
| 访问令牌 | 用于对 DevOps 进行身份验证的令牌。 |
注意
如果希望指标顾问基于异常警报创建工作项,则需要授予写入权限。 创建挂钩后,可以在任何警报设置中使用它们。 在“钩子设置”页面上管理钩子。
添加或编辑警报设置
转到“指标详细信息”页面,在左下角找到“警报设置”部分。 它列出了应用于所选检测配置的所有警报设置。 创建新的检测配置时,没有警报设置,并且不会发送任何警报。
可以使用“添加”、“编辑”和“删除”图标来修改警报设置 。
选择“添加”或“编辑”按钮,打开一个用来添加或编辑警报设置的窗口 。
警报设置名称:警报设置的名称。 它将显示在警报电子邮件标题中。
钩子:要向其发送警报的钩子列表。
上面屏幕截图中标记的部分是某个检测配置的设置项。 可以为不同的检测配置设置不同的警报设置。 使用此窗口中的第三个下拉列表选择目标配置。
筛选器设置
以下是一个检测配置项的筛选器设置。
警报有四个选项可用于筛选异常:
- 所有序列中的异常:警报中将包括所有异常。
- 序列组中的异常:按维度值筛选序列。 为某些维度设置特定值。 只有当序列与指定值匹配时,警报中才包含异常。
- 偏好序列中的异常:警报中仅包含标记为偏好的序列。 |
- 前 N 个序列中的异常:此筛选器适用于只关注值排在前 N 的序列的情况。指标顾问将回溯以前的时间戳,并检查在这些时间戳的序列的值是否在前 N。如果“前 n”计数大于指定的数字,则警报中将包含该异常。 |
筛选异常选项是额外的筛选器,具有以下选项:
- 严重性:仅当异常严重性在指定范围内时才会包含异常。
- 推迟:后 N 个点(时间段)中的异常在警报中触发时,将暂时停止警报。
- 暂停类型:设置为“序列”时,触发的异常只会暂停其序列。 对于指标,一个触发的异常将暂缓此指标中的所有序列。
- 推迟数:要推迟的点数(时间段)。
- 重置为非连续:选中此项时,触发的异常将仅使接下来的 n 个连续异常进入暂缓状态。 如果以下数据点之一不是异常,则从该点重置推迟;如果不选择此选项,触发的异常将推迟接下来的 n 个点(周期),即使连续的数据点不是异常。
- 值(可选):按值筛选。 只有点值满足条件的情况,包括异常情况在内,才会被包含。 如果使用另一个指标的相应值,则两个指标的维度名称应一致。
未筛选掉的异常将通过预警发送。
添加跨指标设置
在“警报设置”页面选择“+ 添加交叉指标设置”来添加其他部分。
“运算符”选择器用于表示各部分之间的逻辑关系,以确定它们是否发送警报。
| 操作员 | 说明 |
|---|---|
| 和 | 仅当序列与每个警报部分匹配且所有数据点是异常时发送警报。 如果指标具有不同的维度名称,则永远不会触发警报。 |
| 或者 | 如果至少有一个部分包含异常,则发送警报。 |