使用动态阈值创建指标警报
你可能不确定要用作警报规则阈值的正确数字。 动态阈值会应用高级机器学习,并使用一组算法和方法来执行以下操作:
- 了解指标的历史行为。
- 分析一段时间内的指标,并识别每小时、每日或每周模式等模式。
- 识别指示可能出现服务问题的异常。
- 计算指标的最合适的阈值。
使用动态阈值时,不必知道每个指标的正确阈值。 动态阈值会为你计算最适合的阈值。
建议为警报规则配置以下指标的动态阈值:
- 虚拟机 CPU 百分比
- Application Insights HTTP 请求执行时间
动态阈值有助于:
- 使用一个警报规则为数百个指标系列创建可缩放警报。 如果警报规则更少,则创建和管理警报规则所需的时间更少。 可缩放的警报对于多个维度或多个资源(例如订阅中的所有资源)尤其有用。
- 创建规则而无需知道要配置的阈值。
- 使用高级概念配置指标警报,而无需精通指标。
- 防止出现不能提供预期模式的干扰性(低精度)阈值或宽泛性(低召回率)阈值。
可以对以下项使用动态阈值:
- 大多数 Azure Monitor 平台和自定义指标。
- 常见应用程序和基础结构指标。
- 干扰指标,例如计算机 CPU 或内存。
- 分散率较低的指标,例如可用性和错误率。
可以使用以下方法配置动态阈值:
- Azure 门户。
- 完全自动化的 Azure 资源管理器 API。
- 指标警报模板。
警报阈值计算和预览
创建警报规则时,动态阈值会使用 10 天的历史数据来计算每小时或每日季节性模式。 你在警报预览中看到的图表反映了该数据。
动态阈值会持续使用所有可用的历史数据来进行学习,并做出调整提升准确性。 三周后,动态阈值会有足够的数据来识别每周模式,并且模型会进行调整以包括每周季节性。
系统会自动识别长时间中断,并从阈值学习算法中移除它们。 如果出现长时间中断,动态阈值会了解该数据。 它们会以与发生中断之前相同的敏感度级别来检测系统问题。
使用动态阈值的注意事项
- 为了确保确保阈值计算准确,使用动态阈值的警报规则在收集到三天和至少 30 个指标数据样本之前不会触发警报。 在有足够的数据可用之前,新资源或缺少指标数据的资源不会触发警报。
- 动态阈值至少需要三周的历史数据来检测每周季节性。 可能无法检测到某些详细模式,例如两小时模式或半周模式。
- 如果指标的行为最近发生了变化,则这些变化不会立即反映在动态阈值上限和下限中。 这些边界是基于过去 10 天的指标数据计算得出的。 查看某特定指标的动态阈值边界时,请查看过去一周(而不仅仅是过去几个小时或几天)的指标趋势。
- 动态阈值适合检测重大偏差,而不适合检测逐渐形成的问题。 缓慢的行为更改可能不会触发警报。
- 不能在监视多个条件的警报规则中使用动态阈值。
配置动态阈值
若要配置动态阈值,请遵循创建警报规则的过程。 在“条件”选项卡上使用这些设置:
- 对于“阈值”,请选择“动态”。
- 对于“聚合类型”,建议不要选择“最大值”。
- 对于“运算符”,选择“大于”,除非行为代表应用程序使用情况。
- 对于“阈值敏感度”,选择“中”或“低”以减少警报干扰。
- 对于“检查间隔”,选择预警规则检查条件是否满足的频率。 若要最大程度地减少警报的业务影响,请考虑使用较低的频率。 确保此值小于或等于“回溯时间段”值。
- 对于“回溯时间段”,设置每次检查数据时要回溯的时间段。 确保此值大于或等于“检查间隔”值。
- 对于“高级选项”,选择在特定时间段内触发警报的冲突数。 可以选择设置开始学习指标历史数据的日期并计算动态阈值。
注意
通过门户创建的指标警报规则将在目标资源所在的资源组中创建。
动态阈值图表
以下图表显示一个指标及其动态阈值限制,以及当值超出允许的阈值时触发的一些警报。
使用以下信息解释该图表:
- 蓝线:一段时间内测量的指标。
- 蓝色阴影区域:指标的允许范围。 如果指标值停留在此范围内,则不会触发警报。
- 蓝点:聚合指标值。 如果选择图表的一部分,然后将鼠标悬停在蓝线上,则光标下会出现一个蓝点,显示指示单个聚合指标值。
- 带有蓝点的弹出框:测量的指标值(蓝点)和允许范围的上限值和下限值。
- 带有黑色圆圈的红点:超出允许范围的第一个指标值。 此值会触发指标警报并将该警报置于活动状态。
- 红点:允许范围之外的其他测量值。 它们不会触发更多指标警报,但该警报会保持活动状态。
- 红色区域:指标值超出允许范围的时间。 只要随后的测量值超出允许范围,该警报就会保持活动状态,但不会触发新警报。
- 红色区域结束:回到允许的值。 当蓝线回到允许值内时,红色区域会停止,度量值线会变蓝。 在带有黑色圆圈的红点设置为“已解决”时触发的指标警报的状态。
动态阈值敏感度的已知问题
如果使用动态阈值的警报规则出现过多干扰或触发次数过多,则可能需要降低其敏感度。 使用以下选项之一:
- 阈值敏感度:将敏感度设置为“低”,以便降低对偏差的敏感度。
- 冲突数(位于“高级设置”下):将预警规则配置为仅在某个时间段内出现一定数量的偏差时才触发。 这设置使规则不易受到暂时性偏差的影响。
你可能会遇到使用动态阈值但是未触发或不够敏感的警报规则,即使它配置了高敏感度。 出现这种情况通常是因为指标分布过于不规律。 考虑以下解决方案之一:
- 前往监视适用于你的方案的互补指标(如果适用)。 例如,检查成功率的变化情况,而非失败率。
- 尝试选择不同的“聚合粒度(周期)”值。
- 检查过去 10 天内指标行为是否发生过重大更改(例如中断)。 突然的更改会影响系统计算指标时的上限和下限,并扩大阈值范围。 等待几天,直到阈值计算中不再包含该中断。 还可以编辑警报规则,以使用“高级设置”中的“忽略此前的数据”选项。
- 如果数据每周都会出现季节性变动,但没有适用于指标的充足历史记录,则计算出的阈值可能会导致上限较高及下限较低。 例如,系统在计算时会以相同的方式处理工作日和周末,并生成不会始终适合数据的宽阈值边界。 此问题应在有足够的指标历史记录后自行解决。 然后会检测正确的季节性,并相应地更新计算的阈值。
当指标值表现出较大波动时,动态阈值可能会围绕指标值构建一个宽模型,这可能会导致边界低于或高于预期。 在以下条件下可能出现此情况:
- 敏感度设置为低。
- 指标出现无规律的行为,且变化较大(数据中出现峰值或最小值)。
考虑通过选择更高的敏感度或选择更大的“回溯时间段”值来降低模型的敏感度。 也可使用“忽略之前的数据”选项,从用于生成模型的历史数据中排除最近的异常数据。
动态阈值不支持的指标
动态阈值支持大多数指标,但以下指标无法使用动态阈值:
资源类型 | 指标名称 |
---|---|
Microsoft.ClassicStorage/storageAccounts | UsedCapacity |
Microsoft.ClassicStorage/storageAccounts/blobServices | BlobCapacity |
Microsoft.ClassicStorage/storageAccounts/blobServices | BlobCount |
Microsoft.ClassicStorage/storageAccounts/blobServices | IndexCapacity |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileCapacity |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileCount |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareCount |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareSnapshotCount |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareSnapshotSize |
Microsoft.ClassicStorage/storageAccounts/fileServices | FileShareQuota |
Microsoft.Compute/disks | 复合磁盘读取字节数/秒 |
Microsoft.Compute/disks | 复合磁盘读取操作数/秒 |
Microsoft.Compute/disks | 复合磁盘写入字节数/秒 |
Microsoft.Compute/disks | 复合磁盘写入操作数/秒 |
Microsoft.ContainerService/managedClusters | NodesCount |
Microsoft.ContainerService/managedClusters | PodCount |
Microsoft.ContainerService/managedClusters | CompletedJobsCount |
Microsoft.ContainerService/managedClusters | RestartingContainerCount |
Microsoft.ContainerService/managedClusters | OomKilledContainerCount |
Microsoft.Devices/IotHubs | TotalDeviceCount |
Microsoft.Devices/IotHubs | ConnectedDeviceCount |
Microsoft.Devices/IotHubs | TotalDeviceCount |
Microsoft.Devices/IotHubs | ConnectedDeviceCount |
Microsoft.DocumentDB/databaseAccounts | CassandraConnectionClosures |
Microsoft.EventHub/clusters | 大小 |
Microsoft.EventHub/namespaces | 大小 |
Microsoft.IoTCentral/IoTApps | connectedDeviceCount |
Microsoft.IoTCentral/IoTApps | provisionedDeviceCount |
Microsoft.Kubernetes/connectedClusters | NodesCount |
Microsoft.Kubernetes/connectedClusters | PodCount |
Microsoft.Kubernetes/connectedClusters | CompletedJobsCount |
Microsoft.Kubernetes/connectedClusters | RestartingContainerCount |
Microsoft.Kubernetes/connectedClusters | OomKilledContainerCount |
Microsoft.MachineLearningServices/workspaces/onlineEndpoints | RequestsPerMinute |
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments | DeploymentCapacity |
Microsoft.Maps/accounts | CreatorUsage |
Microsoft.Media/mediaservices/streamingEndpoints | EgressBandwidth |
Microsoft.Network/applicationGateways | 吞吐量 |
Microsoft.Network/azureFirewalls | 吞吐量 |
Microsoft.Network/expressRouteGateways | ExpressRouteGatewayPacketsPerSecond |
Microsoft.Network/expressRouteGateways | ExpressRouteGatewayNumberOfVmInVnet |
Microsoft.Network/expressRouteGateways | ExpressRouteGatewayFrequencyOfRoutesChanged |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayBitsPerSecond |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayPacketsPerSecond |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayNumberOfVmInVnet |
Microsoft.Network/virtualNetworkGateways | ExpressRouteGatewayFrequencyOfRoutesChanged |
Microsoft.ServiceBus/namespaces | 大小 |
Microsoft.ServiceBus/namespaces | 消息 |
Microsoft.ServiceBus/namespaces | ActiveMessages |
Microsoft.ServiceBus/namespaces | DeadletteredMessages |
Microsoft.ServiceBus/namespaces | ScheduledMessages |
Microsoft.ServiceFabricMesh/applications | AllocatedCpu |
Microsoft.ServiceFabricMesh/applications | AllocatedMemory |
Microsoft.ServiceFabricMesh/applications | ActualCpu |
Microsoft.ServiceFabricMesh/applications | ActualMemory |
Microsoft.ServiceFabricMesh/applications | ApplicationStatus |
Microsoft.ServiceFabricMesh/applications | ServiceStatus |
Microsoft.ServiceFabricMesh/applications | ServiceReplicaStatus |
Microsoft.ServiceFabricMesh/applications | ContainerStatus |
Microsoft.ServiceFabricMesh/applications | RestartCount |
Microsoft.Storage/storageAccounts | UsedCapacity |
Microsoft.Storage/storageAccounts/blobServices | BlobCapacity |
Microsoft.Storage/storageAccounts/blobServices | BlobCount |
Microsoft.Storage/storageAccounts/blobServices | BlobProvisionedSize |
Microsoft.Storage/storageAccounts/blobServices | IndexCapacity |
Microsoft.Storage/storageAccounts/fileServices | FileCapacity |
Microsoft.Storage/storageAccounts/fileServices | FileCount |
Microsoft.Storage/storageAccounts/fileServices | FileShareCount |
Microsoft.Storage/storageAccounts/fileServices | FileShareSnapshotCount |
Microsoft.Storage/storageAccounts/fileServices | FileShareSnapshotSize |
Microsoft.Storage/storageAccounts/fileServices | FileShareCapacityQuota |
Microsoft.Storage/storageAccounts/fileServices | FileShareProvisionedIOPS |
相关内容
如果你有关于动态阈值的反馈,请向我们发送电子邮件。