온라인 엔드포인트 모니터링
Azure Machine Learning은 Azure Monitor와의 통합을 사용하여 온라인 엔드포인트에 대한 메트릭과 로그를 추적하고 모니터링합니다. 차트에서 메트릭을 보고, 엔드포인트와 배포를 비교하고, Azure Portal 대시보드에 고정하고, 경고를 구성하고, 로그 테이블에서 쿼리하고, 지원되는 대상에 로그를 푸시할 수 있습니다. Application Insights를 사용하여 사용자 컨테이너의 이벤트를 분석할 수도 있습니다.
메트릭: 요청 대기 시간, 분당 요청 수, 초당 새 연결 수, 네트워크 바이트 등 엔드포인트 수준 메트릭의 경우 드릴다운하여 배포 수준이나 상태 수준에서 세부 정보를 볼 수 있습니다. CPU/GPU 사용률, 메모리 또는 디스크 사용률과 같은 배포 수준 메트릭을 인스턴스 수준까지 드릴다운할 수도 있습니다. Azure Monitor를 사용하면 차트에서 이러한 메트릭을 추적하고 추가 분석을 위해 대시보드 및 경고를 설정할 수 있습니다.
로그: Kusto 쿼리 구문을 사용하여 로그를 쿼리할 수 있는 Log Analytics 작업 영역으로 메트릭을 보낼 수 있습니다. 추가 처리를 위해 Azure Storage 계정 및/또는 Event Hubs에 메트릭을 보낼 수도 있습니다. 또한 온라인 엔드포인트 관련 이벤트, 트래픽, 콘솔(컨테이너) 로그에 대한 전용 로그 테이블을 사용할 수 있습니다. Kusto 쿼리를 사용하면 여러 테이블을 복잡하게 분석하고 조인할 수 있습니다.
Application Insights: 큐레이팅된 환경에는 Application Insights와의 통합이 포함되며 온라인 배포를 만들 때 이 통합을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본 제공 메트릭 및 로그는 Application Insights로 전송되며 추가 분석을 위해 Application Insights의 기본 제공 기능(예: 라이브 메트릭, 트랜잭션 검색, 오류 및 성능)을 사용할 수 있습니다.
이 문서에서는 다음 방법을 알아봅니다.
- 메트릭과 로그를 보고 추적하는 데 적합한 방법을 선택합니다.
- 온라인 엔드포인트에 대한 메트릭 보기
- 메트릭에 대한 대시보드 만들기
- 메트릭 경고 만들기
- 온라인 엔드포인트에 대한 로그 보기
- Application Insights를 사용하여 메트릭 및 로그 추적
필수 조건
- Azure Machine Learning 온라인 엔드포인트를 배포합니다.
- 엔드포인트에 대한 읽기 권한 이상의 권한이 있어야 합니다.
메트릭
Azure Portal에서 온라인 엔드포인트 또는 배포에 대한 메트릭 페이지를 볼 수 있습니다. 이러한 메트릭 페이지에 쉽게 액세스할 수 있는 방법은 특히 엔드포인트 페이지의 세부 정보 탭에서 Azure Machine Learning 스튜디오 사용자 인터페이스에서 사용할 수 있는 링크를 사용하는 것입니다. 이러한 링크를 사용하면 Azure Portal에서 정확한 엔드포인트 또는 배포 메트릭 페이지로 이동합니다. 또는 Azure Portal로 이동하여 엔드포인트 또는 배포 메트릭 페이지를 검색할 수도 있습니다.
스튜디오에서 사용할 수 있는 링크를 통해 메트릭 페이지에 액세스하려면 다음을 수행합니다.
Azure Machine Learning Studio로 이동합니다.
왼쪽 탐색 모음에서 엔드포인트 페이지를 선택합니다.
이름을 클릭하여 엔드포인트를 선택합니다.
엔드포인트의 특성 섹션에서 메트릭 보기를 선택하여 Azure Portal에서 엔드포인트의 메트릭 페이지를 엽니다.
사용 가능한 각 배포에 대한 섹션에서 메트릭 보기를 선택하여 Azure Portal에서 배포 메트릭 페이지를 엽니다.
Azure Portal에서 메트릭에 직접 액세스하려면 다음을 수행합니다.
Azure Portal에 로그인합니다.
온라인 엔드포인트 또는 배포 리소스로 이동합니다.
온라인 엔드포인트 및 배포는 소유한 리소스 그룹으로 이동하여 찾을 수 있는 ARM(Azure Resource Manager) 리소스입니다. Machine Learning 온라인 엔드포인트 및 Machine Learning 온라인 배포 리소스 유형을 찾습니다.
왼쪽 열에서 메트릭을 선택합니다.
사용 가능한 메트릭
선택한 리소스에 따라 표시되는 메트릭은 다를 수 있습니다. 메트릭은 온라인 엔드포인트와 온라인 배포에 대해 다르게 범위가 지정됩니다.
엔드포인트 범위의 메트릭
범주: 트래픽
메트릭 | REST API의 이름 | 단위 | 집계 | 차원 | 시간 조직 | DS 내보내기 |
---|---|---|---|---|---|---|
활성 연결 클라이언트에서 활성화된 총 동시 TCP 연결 수입니다. |
ConnectionsActive |
Count | 평균 | <없음> | PT1M | 아니요 |
분당 데이터 수집 오류 분당 삭제된 데이터 수집 이벤트 수입니다. |
DataCollectionErrorsPerMinute |
Count | Minimum, Maximum, Average | deployment , , reason type |
PT1M | 아니요 |
분당 데이터 수집 이벤트 분당 처리된 데이터 수집 이벤트 수입니다. |
DataCollectionEventsPerMinute |
Count | Minimum, Maximum, Average | deployment , type |
PT1M | 아니요 |
네트워크 바이트 엔드포인트에 제공되는 초당 바이트입니다. |
NetworkBytes |
BytesPerSecond | 평균 | <없음> | PT1M | 아니요 |
초당 새 연결 수 클라이언트에서 설정된 초당 새 TCP 연결의 평균 수입니다. |
NewConnectionsPerSecond |
초당 개수 | 평균 | <없음> | PT1M | 아니요 |
요청 대기 시간 요청이 응답되는 데 걸리는 평균 전체 시간 간격(밀리초) |
RequestLatency |
밀리초 | 평균 | deployment |
PT1M | 예 |
대기 시간 요청 P50 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P50 요청 대기 시간 |
RequestLatency_P50 |
밀리초 | 평균 | deployment |
PT1M | 예 |
대기 시간 요청 P90 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P90 요청 대기 시간 |
RequestLatency_P90 |
밀리초 | 평균 | deployment |
PT1M | 예 |
대기 시간 요청 P95 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P95 요청 대기 시간 |
RequestLatency_P95 |
밀리초 | 평균 | deployment |
PT1M | 예 |
대기 시간 요청 P99 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P99 요청 대기 시간 |
RequestLatency_P99 |
밀리초 | 평균 | deployment |
PT1M | 예 |
분당 요청 1분 이내에 온라인 엔드포인트로 전송된 요청 수 |
RequestsPerMinute |
Count | 평균 | deployment , statusCode , statusCodeClass modelStatusCode |
PT1M | 아니요 |
대역폭 제한
관리 온라인 엔드포인트에 대한 할당량 한도가 초과되면 대역폭이 제한됩니다. 제한에 대한 자세한 내용은 온라인 엔드포인트 제한 문서를 참조하세요. 요청이 제한되는지 확인하려면 다음을 수행합니다.
- “네트워크 바이트” 메트릭 모니터링
- 응답 트레일러에는
ms-azureml-bandwidth-request-delay-ms
및ms-azureml-bandwidth-response-delay-ms
필드가 있습니다. 필드의 값은 대역폭 제한의 지연(밀리초)입니다.
자세한 내용은 대역폭 제한 문제를 참조하세요.
배포 범위의 메트릭
범주: 리소스
메트릭 | REST API의 이름 | 단위 | 집계 | 차원 | 시간 조직 | DS 내보내기 |
---|---|---|---|---|---|---|
CPU 메모리 사용률 인스턴스의 메모리 사용률입니다. 사용률은 1분 간격으로 보고됩니다. |
CpuMemoryUtilizationPercentage |
퍼센트 | Minimum, Maximum, Average | instanceId |
PT1M | 예 |
CPU 사용률 인스턴스의 CPU 사용률입니다. 사용률은 1분 간격으로 보고됩니다. |
CpuUtilizationPercentage |
퍼센트 | Minimum, Maximum, Average | instanceId |
PT1M | 예 |
분당 데이터 수집 오류 분당 삭제된 데이터 수집 이벤트 수입니다. |
DataCollectionErrorsPerMinute |
Count | Minimum, Maximum, Average | instanceId , , reason type |
PT1M | 아니요 |
분당 데이터 수집 이벤트 분당 처리된 데이터 수집 이벤트 수입니다. |
DataCollectionEventsPerMinute |
Count | Minimum, Maximum, Average | instanceId , type |
PT1M | 아니요 |
배포 용량 배포의 인스턴스 수입니다. |
DeploymentCapacity |
Count | Minimum, Maximum, Average | instanceId , State |
PT1M | 아니요 |
디스크 사용률 인스턴스의 디스크 사용률입니다. 사용률은 1분 간격으로 보고됩니다. |
DiskUtilization |
퍼센트 | Minimum, Maximum, Average | instanceId , disk |
PT1M | 예 |
줄 단위의 GPU 에너지 GPU 노드의 간격 에너지(Joules). 에너지는 1분 간격으로 보고됩니다. |
GpuEnergyJoules |
Count | Minimum, Maximum, Average | instanceId |
PT1M | 아니요 |
GPU 메모리 사용률 인스턴스의 GPU 메모리 사용률입니다. 사용률은 1분 간격으로 보고됩니다. |
GpuMemoryUtilizationPercentage |
퍼센트 | Minimum, Maximum, Average | instanceId |
PT1M | 예 |
GPU 사용률 인스턴스의 GPU 사용률입니다. 사용률은 1분 간격으로 보고됩니다. |
GpuUtilizationPercentage |
퍼센트 | Minimum, Maximum, Average | instanceId |
PT1M | 예 |
범주: 트래픽
메트릭 | REST API의 이름 | 단위 | 집계 | 차원 | 시간 조직 | DS 내보내기 |
---|---|---|---|---|---|---|
대기 시간 요청 P50 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P50 요청 대기 시간 |
RequestLatency_P50 |
밀리초 | 평균 | <없음> | PT1M | 예 |
대기 시간 요청 P90 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P90 요청 대기 시간 |
RequestLatency_P90 |
밀리초 | 평균 | <없음> | PT1M | 예 |
대기 시간 요청 P95 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P95 요청 대기 시간 |
RequestLatency_P95 |
밀리초 | 평균 | <없음> | PT1M | 예 |
대기 시간 요청 P99 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P99 요청 대기 시간 |
RequestLatency_P99 |
밀리초 | 평균 | <없음> | PT1M | 예 |
분당 요청 1분 이내에 온라인 배포로 전송된 요청 수 |
RequestsPerMinute |
Count | 평균 | envoy_response_code |
PT1M | 아니요 |
대시보드 및 경고 만들기
Azure Monitor를 사용하면 메트릭을 기반으로 대시보드 및 경고를 만들 수 있습니다.
대시보드 만들기 및 쿼리 시각화
사용자 지정 대시보드를 만들고 온라인 엔드포인트에 대한 메트릭을 포함하여 Azure Portal의 여러 원본에서 메트릭을 시각화할 수 있습니다. 대시보드 만들기 및 쿼리 시각화에 대한 자세한 내용은 로그 데이터를 사용하는 대시보드 및 애플리케이션 데이터를 사용하는 대시보드를 참조하세요.
경고 만들기
온라인 엔드포인트에 대한 중요한 상태 업데이트를 알리기 위해 사용자 지정 경고를 만들 수도 있습니다.
메트릭 페이지의 오른쪽 위에서 새 경고 규칙을 선택합니다.
경고가 트리거되어야 하는 시기를 지정할 조건 이름을 선택합니다.
작업 그룹 추가>작업 그룹 만들기를 선택하여 경고가 트리거될 때 발생하는 작업을 지정합니다.
경고 규칙 만들기를 선택하여 경고 만들기를 완료합니다.
자세한 내용은 Azure Monitor 경고 규칙 만들기를 참조하세요.
메트릭에 따라 자동 크기 조정 사용
UI 또는 코드를 사용하여 메트릭을 사용하여 배포의 자동 크기 조정을 사용하도록 설정할 수 있습니다. 코드(CLI 또는 SDK)를 사용하는 경우 자동 크기 조정을 트리거하는 조건에 따라 사용 가능한 메트릭 표에 나열된 메트릭 ID를 사용할 수 있습니다. 자세한 내용은 온라인 엔드포인트 자동 크기 조정을 참조하세요.
로그
온라인 엔드포인트에 대해 사용하도록 설정할 수 있는 세 가지 로그가 있습니다.
AmlOnlineEndpointTrafficLog: 요청 정보를 확인하려는 경우 트래픽 로그를 사용하도록 선택할 수 있습니다. 다음은 몇 가지 경우입니다.
응답이 200이 아니면 "ResponseCodeReason" 열의 값을 확인하여 무슨 일이 일어났는지 확인합니다. 또한 온라인 엔드포인트 문제 해결 문서의 "HTTPS 상태 코드" 섹션에서 이유를 확인합니다.
"ModelStatusCode" 및 "ModelStatusReason" 열에서 모델의 응답 코드 및 응답 이유를 확인할 수 있습니다.
총 기간, 요청/응답 기간 및 네트워크 제한으로 인한 지연과 같은 요청 기간을 확인하려고 합니다. 로그에서 분석 대기 시간을 확인할 수 있습니다.
최근에 요청 또는 실패한 요청 수를 확인하려는 경우. 로그를 사용하도록 설정할 수도 있습니다.
AmlOnlineEndpointConsoleLog: 컨테이너가 콘솔에 출력하는 로그를 포함합니다. 다음은 몇 가지 경우입니다.
컨테이너가 시작되지 않으면 콘솔 로그가 디버깅에 유용할 수 있습니다.
컨테이너 동작을 모니터링하고 모든 요청이 올바르게 처리되는지 확인합니다.
콘솔 로그에 요청 ID를 작성합니다. Log Analytics 작업 영역에서 요청 ID, AmlOnlineEndpointConsoleLog 및 AmlOnlineEndpointTrafficLog를 조인하면 온라인 엔드포인트의 네트워크 진입점에서 컨테이너로의 요청을 추적할 수 있습니다.
모델이 각 요청을 처리하는 데 필요한 시간을 결정할 때 성능 분석을 위해 이 로그를 사용할 수도 있습니다.
AmlOnlineEndpointEventLog: 컨테이너의 수명 주기와 관련된 이벤트 정보를 포함합니다. 현재 다음 형식의 이벤트에 대한 정보를 제공합니다.
이름 메시지 백오프 실패한 컨테이너 다시 시작 백오프 풀링됨 컨테이너 이미지 "<IMAGE_NAME>"이 이미 컴퓨터에 있습니다. 종료하는 중 컨테이너 유추-서버 활동성 프로브 실패, 다시 시작됩니다. 만듦 컨테이너 이미지 페처 만들기 만듦 컨테이너 유추 서버 만들기 만듦 컨테이너 모델 탑재 만들기 LivenessProbeFailed 활동성 프로브 실패: <FAILURE_CONTENT> ReadinessProbeFailed 준비 상태 프로브 실패: <FAILURE_CONTENT> Started 컨테이너 이미지 가져오기 시작 Started 컨테이너 유추 서버 시작 Started 컨테이너 모델 탑재 시작 종료하는 중 컨테이너 유추 서버 중지 종료하는 중 컨테이너 모델 탑재 중지
로그 사용/사용 안 함 방법
Important
로깅은 Azure Log Analytics를 사용합니다. 현재 Log Analytics 작업 영역이 없는 경우 Azure Portal에서 Log Analytics 작업 영역 만들기의 단계에서 만들 수 있습니다.
Azure Portal에서 엔드포인트가 포함된 리소스 그룹으로 이동한 다음 엔드포인트를 선택합니다.
페이지 왼쪽의 모니터링 섹션에서 진단 설정을 선택한 다음 설정 추가를 선택합니다.
사용할 로그 범주를 선택하고 Log Analytics 작업 영역으로 보내기를 선택한 다음 사용할 Log Analytics 작업 영역을 선택합니다. 마지막으로 진단 설정 이름을 입력하고 저장을 선택합니다.
Important
Log Analytics 작업 영역에 대한 연결을 사용하도록 설정하는 데 최대 1시간이 걸릴 수 있습니다. 다음 단계를 계속하기 전에 한 시간 정도 기다리세요.
엔드포인트에 채점 요청을 제출합니다. 이 작업은 로그에 항목을 만들어야 합니다.
온라인 엔드포인트 속성 또는 Log Analytics 작업 영역의 화면 왼쪽에서 로그를 선택합니다.
자동으로 열리는 쿼리 대화 상자를 닫고 AmlOnlineEndpointConsoleLog를 두 번 클릭합니다. 표시되지 않으면 검색 필드를 사용합니다.
실행을 선택합니다.
예제 쿼리
로그를 보는 동안 쿼리 탭에서 쿼리 예를 찾을 수 있습니다. 온라인 엔드포인트를 검색하여 쿼리 예를 찾습니다.
로그 열 세부 정보
다음 표는 각 로그에 저장된 데이터에 대한 세부 정보를 제공합니다.
AmlOnlineEndpointTrafficLog
속성 | 설명 |
---|---|
메서드 | 클라이언트에서 요청한 메서드. |
Path | 클라이언트에서 요청한 경로. |
SubscriptionId | 온라인 엔드포인트의 기계 학습 구독 ID. |
Azure Machine LearningWorkspaceId | 온라인 엔드포인트의 기계 학습 작업 영역 ID. |
Azure Machine LearningWorkspaceName | 온라인 엔드포인트의 기계 학습 작업 영역 이름입니다. |
EndpointName | 온라인 엔드포인트의 이름. |
DeploymentName | 온라인 배포의 이름. |
프로토콜 | 요청의 프로토콜. |
ResponseCode | 클라이언트에 반환된 최종 응답 코드. |
ResponseCodeReason | 클라이언트에 반환된 최종 응답 코드 이유. |
ModelStatusCode | 모델의 응답 상태 코드. |
ModelStatusReason | 모델의 응답 상태 설명. |
RequestPayloadSize | 클라이언트에서 받은 총 바이트 수. |
ResponsePayloadSize | 클라이언트로 다시 전송된 총 바이트 수. |
UserAgent | 주석을 포함하지만 최대 70자로 잘린 요청의 사용자 에이전트 헤더입니다. |
XRequestId | 내부 추적을 위해 Azure Machine Learning에서 생성한 요청 ID. |
XMSClientRequestId | 클라이언트가 생성한 추적 ID. |
TotalDurationMs | 요청 시작 시간부터 클라이언트로 다시 전송된 마지막 응답 바이트까지의 기간(밀리초). 클라이언트 연결이 끊어진 경우 시작 시간부터 클라이언트 연결 끊기 시간까지 측정합니다. |
RequestDurationMs | 요청 시작 시간부터 클라이언트에서 받은 요청의 마지막 바이트까지의 기간(밀리초). |
ResponseDurationMs | 요청 시작 시간부터 모델에서 읽은 첫 번째 응답 바이트까지의 기간(밀리초). |
RequestThrottlingDelayMs | 네트워크 제한으로 인한 요청 데이터 전송 지연 시간(밀리초). |
ResponseThrottlingDelayMs | 네트워크 제한으로 인한 응답 데이터 전송 지연 시간(밀리초). |
AmlOnlineEndpointConsoleLog
속성 | 설명 |
---|---|
TimeGenerated | 로그가 생성된 시간의 타임스탬프(UTC)입니다. |
OperationName | 로그 레코드와 연결된 작업입니다. |
InstanceId | 이 로그 레코드를 생성한 인스턴스의 ID입니다. |
DeploymentName | 로그 레코드와 연결된 배포의 이름입니다. |
ContainerName | 로그가 생성된 컨테이너의 이름. |
메시지 | 로그 콘텐츠입니다. |
AmlOnlineEndpointEventLog
속성 | 설명 |
---|---|
TimeGenerated | 로그가 생성된 시간의 타임스탬프(UTC)입니다. |
OperationName | 로그 레코드와 연결된 작업입니다. |
InstanceId | 이 로그 레코드를 생성한 인스턴스의 ID입니다. |
DeploymentName | 로그 레코드와 연결된 배포의 이름입니다. |
이름 | 이벤트의 이름입니다. |
메시지 | 이벤트 내용. |
Application Insights 사용
큐레이팅된 환경에는 Application Insights와의 통합이 포함되며, 온라인 배포를 만들 때 이 통합을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본 제공 메트릭 및 로그는 Application Insights로 전송되며 추가 분석을 위해 Application Insights의 기본 제공 기능(예: 라이브 메트릭, 트랜잭션 검색, 오류 및 성능)을 사용할 수 있습니다.
자세한 내용은 Application Insights 개요를 참조하세요.
스튜디오에서는 온라인 엔드포인트 페이지의 모니터링 탭을 사용하여 관리형 온라인 엔드포인트에 대한 개략적인 작업 모니터 그래프를 볼 수 있습니다. 모니터링 탭을 사용하려면 엔드포인트를 만들 때 Application Insight 진단 및 데이터 수집 사용을 선택해야 합니다.
관련 콘텐츠
- 배포된 엔드포인트에 대한 비용을 확인하는 방법을 알아봅니다.
- 메트릭 탐색기에 대해 자세히 알아봅니다.