Azure Monitor 자동 크기 조정 공용 메트릭
Azure Monitor 자동 스케일링을 사용하여 원격 분석 데이터 또는 메트릭에 따라 실행 중인 인스턴트 수를 스케일 인 또는 스케일 아웃할 수 있습니다. 스케일링은 다른 리소스의 메트릭을 비롯한 어떤 메트릭도 기준으로 사용할 수 있습니다. 예를 들어 방화벽의 트래픽 양에 따라 가상 머신 확장 집합을 스케일링합니다.
이 문서에서는 스케일링 이벤트를 트리거하는 데 일반적으로 사용되는 메트릭에 대해 설명합니다.
Azure 자동 크기 조정은 다양한 리소스 종류를 지원합니다. 지원되는 리소스에 대한 자세한 내용은 지원되는 리소스 자동 크기 조정을 참조하세요.
모든 리소스에 대해 PowerShell 또는 Azure CLI를 사용하여 사용 가능한 메트릭 목록을 가져올 수 있습니다.
Get-AzMetricDefinition -ResourceId <resource_id>
az monitor metrics list-definitions --resource <resource_id>
Resource Manager 기반 VM용 메트릭 컴퓨팅
기본적으로 Azure Resource Manager 기반 가상 머신과 Virtual Machine Scale Sets는 기본(호스트 수준) 메트릭을 내보냅니다. 또한 Azure VM 및 Virtual Machine Scale Sets용 진단 데이터 수집을 구성하면 Azure Diagnostics 확장에서 게스트 OS 성능 카운터도 내보냅니다. 이러한 카운터는 일반적으로 ‘게스트 OS 메트릭’이라고 합니다. 자동 크기 조정 규칙에서 이러한 메트릭을 모두 사용합니다.
Virtual Machine Scale Sets를 사용 중인데 특정 메트릭이 목록에 표시되지 않는 경우, 이는 진단 확장에서 사용할 수 없는 것일 수 있습니다.
특정 메트릭이 원하는 빈도로 샘플링 또는 전송되고 있지 않은 경우 진단 구성을 업데이트할 수 있습니다.
위 경우 중 하나가 해당되면 PowerShell을 사용하여 Windows를 실행하는 가상 머신에서 Azure Diagnostics를 사용하도록 설정을 참조하여 메트릭을 사용하도록 Azure VM Diagnostics 확장을 구성 및 업데이트합니다. 이 문서에는 샘플 진단 구성 파일도 포함되어 있습니다.
Resource Manager 기반 Windows 및 Linux VM용 호스트 메트릭
기본적으로 Windows 및 Linux 인스턴스 모두 Azure VM과 Virtual Machine Scale Sets용으로 다음과 같은 호스트 수준 메트릭을 내보냅니다. 이러한 메트릭은 Azure VM을 설명하지만, 게스트 VM에 설치된 에이전트를 통하는 대신 Azure VM 호스트에서 수집됩니다. 자동 크기 조정 규칙에서 이러한 메트릭을 사용할 수 있습니다.
- Resource Manager 기반 Windows 및 Linux VM용 호스트 메트릭
- Resource Manager 기반 Windows 및 Linux Virtual Machine Scale Sets용 호스트 메트릭
Resource Manager 기반 Windows VM을 위한 게스트 OS 메트릭
Azure에서 VM을 만들 때 진단 확장을 사용하여 진단을 사용하도록 설정합니다. 진단 확장에서는 VM 내에서 가져온 메트릭 집합을 내보냅니다. 즉, 기본적으로 내보내지 않는 메트릭을 사용하여 자동 스케일링할 수 있습니다.
다음 메트릭에 대한 경고를 만들 수 있습니다.
메트릭 이름 | 단위 |
---|---|
\Processor(_Total)% 프로세서 시간 | 퍼센트 |
\Processor(_Total)% 시스템 시간 | 퍼센트 |
\Processor(_Total)% 사용자 시간 | 퍼센트 |
\Processor Information(_Total)\Processor Frequency | Count |
\System\Processes | Count |
\Process(_Total)\Thread Count | Count |
\Process(_Total)\Handle Count | Count |
\Memory% Committed Bytes in Use | 퍼센트 |
\Memory\Available Bytes | 바이트 |
\Memory\Committed Bytes | 바이트 |
\Memory\Commit Limit | 바이트 |
\Memory\Pool Paged Bytes | 바이트 |
\Memory\Pool Nonpaged Bytes | 바이트 |
\PhysicalDisk(_Total)% 디스크 시간 | 퍼센트 |
\PhysicalDisk(_Total)% 디스크 읽기 시간 | 퍼센트 |
\PhysicalDisk(_Total)% 디스크 쓰기 시간 | 퍼센트 |
\PhysicalDisk(_Total)\디스크 전송/초 | 초당 개수 |
\PhysicalDisk(_Total)\Disk Reads/sec | 초당 개수 |
\PhysicalDisk(_Total)\Disk Writes/sec | 초당 개수 |
\PhysicalDisk(_Total)\Disk Bytes/sec | BytesPerSecond |
\PhysicalDisk(_Total)\Disk Read Bytes/sec | BytesPerSecond |
\PhysicalDisk(_Total)\Disk Write Bytes/sec | BytesPerSecond |
\PhysicalDisk(_Total)\Avg. 디스크 큐 길이 | Count |
\PhysicalDisk(_Total)\Avg. Disk Read Queue Length | Count |
\PhysicalDisk(_Total)\Avg. 디스크 쓰기 큐 길이 | Count |
\LogicalDisk(_Total)% 사용 가능한 공간 | 퍼센트 |
\LogicalDisk(_Total)\Free Megabytes | Count |
게스트 OS 메트릭 Linux VM
Azure에서 VM을 만드는 경우 기본적으로 진단 확장을 이용해 진단을 사용할 수 있습니다.
다음 메트릭에 대한 경고를 만들 수 있습니다.
메트릭 이름 | 단위 |
---|---|
\Memory\AvailableMemory | 바이트 |
\Memory\PercentAvailableMemory | 퍼센트 |
\Memory\UsedMemory | 바이트 |
\Memory\PercentUsedMemory | 퍼센트 |
\Memory\PercentUsedByCache | 퍼센트 |
\Memory\PagesPerSec | 초당 개수 |
\Memory\PagesReadPerSec | 초당 개수 |
\Memory\PagesWrittenPerSec | 초당 개수 |
\Memory\AvailableSwap | 바이트 |
\Memory\PercentAvailableSwap | 퍼센트 |
\Memory\UsedSwap | 바이트 |
\Memory\PercentUsedSwap | 퍼센트 |
\Processor\PercentIdleTime | 퍼센트 |
\Processor\PercentUserTime | 퍼센트 |
\Processor\PercentNiceTime | 퍼센트 |
\Processor\PercentPrivilegedTime | 퍼센트 |
\Processor\PercentInterruptTime | 퍼센트 |
\Processor\PercentDPCTime | 퍼센트 |
\Processor\PercentProcessorTime | 퍼센트 |
\Processor\PercentIOWaitTime | 퍼센트 |
\PhysicalDisk\BytesPerSecond | BytesPerSecond |
\PhysicalDisk\ReadBytesPerSecond | BytesPerSecond |
\PhysicalDisk\WriteBytesPerSecond | BytesPerSecond |
\PhysicalDisk\TransfersPerSecond | 초당 개수 |
\PhysicalDisk\ReadsPerSecond | 초당 개수 |
\PhysicalDisk\WritesPerSecond | 초당 개수 |
\PhysicalDisk\AverageReadTime | 초 |
\PhysicalDisk\AverageWriteTime | 초 |
\PhysicalDisk\AverageTransferTime | 초 |
\PhysicalDisk\AverageDiskQueueLength | Count |
\NetworkInterface\BytesTransmitted | 바이트 |
\NetworkInterface\BytesReceived | 바이트 |
\NetworkInterface\PacketsTransmitted | Count |
\NetworkInterface\PacketsReceived | Count |
\NetworkInterface\BytesTotal | 바이트 |
\NetworkInterface\TotalRxErrors | Count |
\NetworkInterface\TotalTxErrors | Count |
\NetworkInterface\TotalCollisions | Count |
일반적으로 사용되는 App Service(서버 팜) 메트릭
HTTP 큐 길이와 같은 공용 웹 서버 메트릭에 따라 자동 크기 조정을 수행할 수도 있습니다. 메트릭 이름은 HttpQueueLength입니다. 다음 섹션에는 사용 가능한 서버 팜(App Service) 메트릭이 나열되어 있습니다.
Web Apps 메트릭
Web Apps의 경우 이러한 메트릭에 대해 경고하거나 스케일링할 수 있습니다.
메트릭 이름 | 단위 |
---|---|
CpuPercentage | 퍼센트 |
MemoryPercentage | 퍼센트 |
DiskQueueLength | Count |
HttpQueueLength | Count |
BytesReceived | 바이트 |
BytesSent | 바이트 |
일반적으로 사용되는 Storage 메트릭
Storage 큐의 메시지 수인 Azure Storage 큐 길이에 따라 크기를 조정할 수 있습니다. Storage 큐 길이는 특수 메트릭이고, 임계값은 인스턴스당 메시지 수입니다. 예를 들어 인스턴스가 두 개이고 임계값이 100으로 설정된 경우 큐에서 총 메시지 수가 200일 때 크기가 조정됨을 의미합니다. 인스턴스당 메시지는 100개, 120개 + 80개 또는 최대 200개 이상 추가하는 임의의 기타 조합이 될 수 있습니다.
Azure Portal의 설정 창에서 이 설정을 구성합니다. Virtual Machine Scale Sets의 경우 metricName
을 ApproximateMessageCount
로 사용하고 스토리지 큐 ID를 metricResourceUri
로 전달하도록 Resource Manager 템플릿에서 자동 스케일링 설정을 업데이트할 수 있습니다.
예를 들어 클래식 스토리지 계정을 사용하면 자동 크기 조정 설정 metricTrigger
에는 다음이 포함됩니다.
"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ClassicStorage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"
(클래식이 아닌) 스토리지 계정의 경우 metricTrigger
설정에는 다음이 포함됩니다.
"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"
자주 사용되는 Service Bus 메트릭
Service Bus 큐의 메시지 수인 Azure Service Bus 큐 길이에 따라 크기를 조정할 수 있습니다. Service Bus 큐 길이는 특수 메트릭이고, 임계값은 인스턴스당 메시지 수입니다. 예를 들어 인스턴스가 두 개이고 임계값이 100으로 설정된 경우 큐에서 총 메시지 수가 200일 때 스케일링이 수행됨을 의미합니다. 인스턴스당 메시지는 100개, 120개 + 80개 또는 최대 200개 이상 추가하는 임의의 기타 조합이 될 수 있습니다.
Virtual Machine Scale Sets의 경우 metricName
을 ActiveMessageCount
로 사용하고 Service Bus 큐 ID를 metricResourceUri
로 전달하도록 Resource Manager 템플릿에서 자동 스케일링 설정을 업데이트할 수 있습니다.
"metricName": "ActiveMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ServiceBus/namespaces/SB_NAMESPACE/queues/QUEUE_NAME"
참고 항목
Service Bus의 경우 리소스 그룹 개념이 없습니다. Azure Resource Manager는 지역당 기본 리소스 그룹을 만듭니다. 리소스 그룹은 일반적으로 Default-ServiceBus-[region] 형식입니다. 예로 Default-ServiceBus-EastUS, Default-ServiceBus-WestUS, Default-ServiceBus-AustraliaEast가 있습니다.