동적 임계값을 사용하여 메트릭 경고 만들기

동적 임계값은 고급 기계 학습을 적용하고 알고리즘 및 메서드 집합을 사용하여 다음을 수행합니다.

  • 메트릭의 동작 기록 학습
  • 시간에 따른 메트릭을 분석하고 매시간, 매일 또는 매주 패턴과 같은 패턴을 식별합니다.
  • 가능한 서비스 문제를 나타내는 변칙 인식
  • 메트릭에 가장 적합한 임계값 계산

동적 임계값을 사용하는 경우 동적 임계값이 가장 적합한 임계값을 계산하기 때문에 각 메트릭에 대한 "올바른" 임계값을 알 필요가 없습니다.

다음 메트릭에 동적 임계값을 사용하여 경고 규칙을 구성하는 것이 좋습니다.

  • 가상 머신 CPU 백분율
  • Application Insights HTTP 요청 실행 시간

동적 임계값은 다음을 지원합니다.

  • 하나의 경고 규칙을 사용하여 수백 개의 메트릭 계열에 대해 확장 가능한 경고를 만듭니다. 경고 규칙이 적은 경우 경고 규칙을 만들고 관리하는 데 더 적은 시간을 소비합니다. 확장 가능한 경고는 구독의 모든 리소스와 같이 여러 차원 또는 여러 리소스에 특히 유용합니다.
  • 구성할 임계값을 알 필요 없이 규칙을 만듭니다. 동적 임계값을 사용하면 메트릭에 대한 광범위한 도메인 지식 없이 상위 수준 개념을 사용하여 메트릭 경고를 구성할 수 있습니다.
  • 메트릭에 대한 광범위한 도메인 지식 없이 개략적인 개념을 사용하여 메트릭 경고 구성
  • 예상되는 패턴을 따르지 않는 노이즈(낮은 정밀도) 또는 넓은(낮은 재현율) 임계값 방지
  • 노이즈가 많은 메트릭(예: 컴퓨터 CPU 또는 메모리) 및 분산이 낮은 메트릭(예: 가용성 및 오류 속도)을 처리합니다.

다음에서 동적 임계값을 사용할 수 있습니다.

  • 대부분의 Azure Monitor 플랫폼 및 사용자 지정 메트릭
  • 일반적인 애플리케이션 및 인프라 메트릭
  • 머신 CPU 또는 메모리와 같은 노이즈 메트릭
  • 가용성 및 오류율과 같이 분산이 낮은 메트릭 동적 임계값에서 지원되지 않는 메트릭 목록은 동적 임계값에서 지원되지 않는 메트릭을 참조하세요.

다음을 사용하여 동적 임계값을 구성할 수 있습니다.

경고 임계값 계산 및 미리 보기

경고 규칙을 처음 만들 때 동적 임계값은 10일의 기록 데이터를 사용하여 시간별 또는 일일 계절 패턴을 계산합니다. 경고 미리 보기에 표시되는 차트는 해당 데이터를 반영합니다. 경고 규칙을 만든 후 동적 임계값은 사용 가능한 모든 기록 데이터를 지속적으로 사용하여 학습하고 임계값을 보다 정확하게 조정합니다. 3주 후 동적 임계값에는 주간 패턴도 식별할 수 있는 충분한 데이터가 있으며, 모델은 주간 계절성을 포함하도록 조정됩니다. 동적 임계값을 사용하는 경고 규칙은 3일 및 30개 이상의 메트릭 데이터 샘플을 수집하기 전에 경고를 트리거하지 않습니다.

시스템은 장기간 중단을 자동으로 인식하고 임계값 학습 알고리즘에서 제거합니다. 장기간 가동 중단이 발생하는 경우 동적 임계값은 데이터를 이해하고 중단이 발생하기 전과 동일한 수준의 민감도로 시스템 문제를 검색합니다.

동적 임계값 사용 시 고려 사항

  • 정확한 임계값 계산을 보장하기 위해 동적 임계값을 사용하는 경고는 3일 및 30개 이상의 메트릭 데이터 샘플을 수집하기 전에 경고를 트리거하지 않습니다. 따라서 메트릭 데이터가 누락된 새 리소스 또는 리소스는 충분한 데이터를 사용할 수 있을 때까지 경고를 트리거하지 않습니다.
  • 동적 임계값은 주간 계절성을 감지하기 위해 3주 이상의 기록 데이터가 필요합니다. 2시간 또는 반주 패턴과 같은 일부 자세한 패턴은 검색되지 않을 수 있습니다.
  • 메트릭의 동작이 최근에 변경된 경우 변경 내용이 동적 임계값(상한 및 하한)에 즉시 반영되는 것은 아닙니다. 경계는 지난 10일 동안의 메트릭 데이터를 기반으로 계산됩니다. 지정된 메트릭에 대한 동적 임계값 경계를 볼 때 최근 몇 시간 또는 며칠뿐만 아니라 지난 주의 메트릭 추세를 확인합니다.
  • 동적 임계값은 느리게 진화하는 문제보다는 상당한 편차를 검색하는 데 유용합니다. 느린 동작 변경으로 인해 경고가 트리거되지 않을 수 있습니다.

동적 임계값 민감도의 알려진 문제

  • 동적 임계값을 사용하는 경고 규칙이 너무 시끄럽거나 너무 많이 발생하는 경우 동적 임계값 경고 규칙의 민감도를 줄여야 할 수 있습니다. 다음 옵션 중 하나를 사용합니다.

    • 임계값 민감도: 편차에 대한 내성을 높이기 위해 민감도를 낮음으로 설정합니다.
    • 위반 횟수(고급 설정 아래): 특정 기간 내에 여러 위반 사항이 발생한 경우에만 트리거되도록 경고 규칙을 구성합니다. 이 설정은 규칙을 규칙이 일시적인 편차에 덜 취약해질 수 있습니다.
  • 동적 임계값을 사용하는 경고 규칙이 실행되지 않거나 민감도가 높음에도 불구하고 충분히 민감하지 않은 경고 규칙이 발생할 수 있습니다. 이 문제는 일반적으로 메트릭의 분포가 매우 불규칙한 경우에 발생합니다. 다음 해결 방법 중 하나를 사용하여 문제를 해결합니다.

    • 해당하는 경우 시나리오에 적합한 보완 메트릭 모니터링으로 이동합니다. 예를 들어 실패율이 아닌 성공률의 변경 내용을 확인합니다.
    • 집계 세분성(기간)에 대해 다른 값을 선택해 봅니다.
    • 중단 등 지난 10일 동안 메트릭 동작이 크게 변경되었는지 확인합니다. 급격한 변경은 메트릭에 대해 계산된 상한 및 하한 임계값에 영향을 주고 더 광범위하게 만들 수 있습니다. 중단이 더 이상 임계값 계산에 포함되지 않을 때까지 며칠 동안 기다리세요. 고급 설정에서 이전 데이터 무시 옵션을 사용하도록 경고 규칙을 편집할 수도 있습니다.
    • 데이터에 주간 계절성이 있지만 메트릭에 사용할 수 있는 기록이 충분하지 않은 경우 계산된 임계값으로 인해 광범위한 상한과 하한이 발생할 수 있습니다. 예를 들어 계산은 평일과 주말을 동일한 방식으로 처리하고 항상 데이터에 맞지 않는 넓은 테두리를 빌드할 수 있습니다. 이 문제는 충분한 메트릭 기록을 사용할 수 있게 되면 저절로 해결됩니다. 그러면 올바른 계절성이 검색되고 계산된 임계값이 그에 따라 업데이트됩니다.
  • 메트릭 값이 큰 변동을 보이는 경우 동적 임계값은 메트릭 값을 중심으로 넓은 모델을 빌드할 수 있으며, 이로 인해 예상보다 낮거나 높은 경계가 발생할 수 있습니다. 이 시나리오는 다음과 같은 경우에 발생할 수 있습니다.

    • 민감도가 낮음으로 설정됩니다.
    • 메트릭은 데이터에서 급증 또는 급락으로 나타나는 높은 분산과 함께 불규칙한 동작을 나타냅니다.

    더 높은 민감도를 선택하거나 더 큰 조회 기간을 선택하여 모델을 덜 민감하게 만드는 것이 좋습니다. 또는 기록 데이터 무시 옵션을 사용하여 모델을 빌드하는 데 사용된 기록 데이터에서 최근의 불규칙성을 제외합니다.

동적 임계값 구성

다음 설정을 사용하여 경고 규칙을 만들거나 편집하는 절차를 따릅니다.

  1. 조건 탭에서
    1. 임계값 필드에서 동적을 선택합니다.
    2. 집계 형식에서는 최대를 선택하지 않는 것이 좋습니다.
    3. 연산자 필드에서 동작이 애플리케이션 사용량을 나타내지 않는 경우 보다 큼을 선택합니다.
    4. 임계값 민감도에서 중간 또는 낮음을 선택하여 경고 노이즈를 줄입니다.
    5. 검사 빈도 필드에서는 경고가 비즈니스에 미치는 영향에 따라 빈도를 낮추는 것이 좋습니다.
    6. 조회 기간에서 조회 창을 15분 이상으로 설정합니다. 예를 들어 검사 빈도 필드가 5분으로 설정되면 조회 기간은 3분 이상이어야 합니다.
  2. 나머지 프로세스를 계속 진행하여 경고 규칙을 만듭니다.

참고 항목

포털을 통해 만든 메트릭 경고 규칙은 대상 리소스와 동일한 리소스 그룹에 만들어집니다.

동적 임계값 차트 이해

다음 차트에서는 메트릭, 해당 동적 임계값 제한 및 값이 허용되는 임계값을 벗어날 때 발생하는 일부 경고를 보여 줍니다.

Screenshot that shows a metric, its dynamic thresholds limits, and some alerts that fired.

다음 정보를 사용하여 차트를 해석합니다.

  • 파란색 선: 시간이 지남에 따라 측정된 실제 메트릭입니다.
  • 파란색 음영 영역: 메트릭에 허용되는 범위를 표시합니다. 메트릭 값이 이 범위 내에 있으면 경고가 트리거되지 않습니다.
  • 파란색 점: 차트의 일부를 선택한 채 마우스로 파란색 선 위를 가리키면 개별 집계 메트릭 값을 표시하는 파란색 점이 커서 아래에 나타납니다.
  • 파란색 점이 있는 팝업: 측정된 메트릭 값(파란색 점)과 허용되는 범위의 상한 및 하한 값을 표시합니다.
  • 검은색 원이 있는 빨간색 점: 허용되는 범위를 벗어난 첫 번째 메트릭 값을 표시합니다. 이 값은 메트릭 경고를 발생시키고 이를 활성 상태로 만듭니다.
  • 빨간색 점: 허용되는 범위를 벗어난 다른 측정된 값을 나타냅니다. 추가 메트릭 경고가 트리거되지 않지만 경고는 활성 상태로 유지됩니다.
  • 빨간색 영역: 메트릭 값이 허용되는 범위를 벗어난 시간을 표시합니다. 후속 측정된 값이 허용되는 범위를 벗어나지 않는 한 경고는 활성 상태로 유지되며 새 경고는 발생하지 않습니다.
  • 빨간색 영역 끝: 파란색 선이 허용되는 값 내에 다시 있으면 빨간색 영역이 중지되고 측정된 값 선이 파란색으로 바뀝니다. 검은색 윤곽선이 있는 빨간색 점이 발생했을 때 발생하는 메트릭 경고의 상태는 해결됨으로 설정됩니다.

동적 임계값에서 지원되지 않는 메트릭

동적 임계값은 대부분의 메트릭에 관해 지원되지만 일부 메트릭은 동적 임계값을 사용할 수 없습니다.

다음 표에는 동적 임계값에서 지원하지 않는 메트릭이 나열되어 있습니다.

리소스 종류 메트릭 이름
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

다음 단계