다음을 통해 공유


온라인 엔드포인트 모니터링

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로 이동하여 엔드포인트 또는 배포 메트릭 페이지를 검색할 수도 있습니다.

스튜디오에서 사용할 수 있는 링크를 통해 메트릭 페이지에 액세스하려면 다음을 수행합니다.

  1. Azure Machine Learning Studio로 이동합니다.

  2. 왼쪽 탐색 모음에서 엔드포인트 페이지를 선택합니다.

  3. 이름을 클릭하여 엔드포인트를 선택합니다.

  4. 엔드포인트의 특성 섹션에서 메트릭 보기를 선택하여 Azure Portal에서 엔드포인트의 메트릭 페이지를 엽니다.

  5. 사용 가능한 각 배포에 대한 섹션에서 메트릭 보기를 선택하여 Azure Portal에서 배포 메트릭 페이지를 엽니다.

    스튜디오 UI에서 엔드포인트 및 배포 메트릭에 액세스하는 방법을 보여 주는 스크린샷.

Azure Portal에서 메트릭에 직접 액세스하려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 온라인 엔드포인트 또는 배포 리소스로 이동합니다.

    온라인 엔드포인트 및 배포는 소유한 리소스 그룹으로 이동하여 찾을 수 있는 ARM(Azure Resource Manager) 리소스입니다. Machine Learning 온라인 엔드포인트Machine Learning 온라인 배포 리소스 유형을 찾습니다.

  3. 왼쪽 열에서 메트릭을 선택합니다.

사용 가능한 메트릭

선택한 리소스에 따라 표시되는 메트릭은 다를 수 있습니다. 메트릭은 온라인 엔드포인트와 온라인 배포에 대해 다르게 범위가 지정됩니다.

엔드포인트 범위의 메트릭

  • 트래픽
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
RequestsPerMinute Count 1분 이내에 엔드포인트로 전송된 요청 수 평균 Deployment, ModelStatusCode, StatusCode, StatusCodeClass 시스템에서 <= 0의 트랜잭션이 있는 경우 알림
RequestLatency 밀리초 요청에 응답하는 데 걸린 전체 시간 간격 평균 배포 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P50 밀리초 60초 동안 수집된 모든 요청 대기 시간 값으로 집계된 50번째 백분위수의 요청 대기 시간 평균 배포 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P90 밀리초 60초 동안 수집된 모든 요청 대기 시간 값으로 집계된 90번째 백분위수의 요청 대기 시간 평균 배포 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P95 밀리초 60초 동안 수집된 모든 요청 대기 시간 값으로 집계된 95번째 백분위수의 요청 대기 시간 평균 배포 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P99 밀리초 60초 동안 수집된 모든 요청 대기 시간 값으로 집계된 99번째 백분위수의 요청 대기 시간 평균 배포 평균 대기 시간 > 2초인 경우 알림
  • 네트워크
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
NetworkBytes 초당 바이트 엔드포인트에 제공되는 초당 바이트 평균 - -
ConnectionsActive Count 클라이언트에서 활성화된 총 동시 TCP 연결 수 평균 - -
NewConnectionsPerSecond Count 클라이언트에서 설정된 초당 새 TCP 연결의 평균 수 평균 - -
  • 모델 데이터 수집
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
DataCollectionEventsPerMinute Count 분당 처리된 데이터 수집 이벤트 수 평균 배포, 유형 -
DataCollectionErrorsPerMinute Count 분당 삭제된 데이터 수집 이벤트 수 평균 배포, 유형, 이유 -

예를 들어, 배포 차원에 따라 분할하여 엔드포인트에서 다양한 배포의 요청 대기 시간을 비교할 수 있습니다.

대역폭 제한

관리 온라인 엔드포인트에 대한 할당량 한도가 초과되면 대역폭이 제한됩니다. 제한에 대한 자세한 내용은 온라인 엔드포인트 제한 문서를 참조하세요. 요청이 제한되는지 확인하려면 다음을 수행합니다.

  • “네트워크 바이트” 메트릭 모니터링
  • 응답 트레일러에는 ms-azureml-bandwidth-request-delay-msms-azureml-bandwidth-response-delay-ms 필드가 있습니다. 필드의 값은 대역폭 제한의 지연(밀리초)입니다. 자세한 내용은 대역폭 제한 문제를 참조하세요.

배포 범위의 메트릭

  • 채도
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
CpuUtilizationPercentage 퍼센트 사용된 CPU의 비율 Minimun, Maximum, Average InstanceId 사용된 용량(%)이 > 75%일 때 알림
CpuMemoryUtilizationPercentage 퍼센트 사용된 메모리의 비율 Minimun, Maximum, Average InstanceId
DiskUtilization 퍼센트 사용된 디스크 공간 Minimun, Maximum, Average InstanceId, 디스크
GpuUtilizationPercentage 퍼센트 인스턴스의 GPU 사용률 - 사용률은 1분 간격으로 보고됩니다. Minimun, Maximum, Average InstanceId
GpuMemoryUtilizationPercentage 퍼센트 인스턴스의 GPU 메모리 사용률 - 사용률은 1분 간격으로 보고됩니다. Minimun, Maximum, Average InstanceId
GpuEnergyJoules GPU 노드의 간격 에너지(줄) - 에너지는 1분 간격으로 보고됩니다. Minimun, Maximum, Average InstanceId
  • 가용성
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
DeploymentCapacity Count 배포의 인스턴스 수 Minimum, Maximum, Average InstanceId, 상태 서비스의 가용성(%)이 100% 미만으로 떨어지면 알림
  • 트래픽
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
RequestsPerMinute Count 1분 이내에 온라인 배포로 전송된 요청 수 평균 StatusCode 시스템에서 <= 0의 트랜잭션이 있는 경우 알림
RequestLatency_P50 밀리초 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P50 요청 대기 시간 평균 - 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P90 밀리초 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P90 요청 대기 시간 평균 - 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P95 밀리초 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P95 요청 대기 시간 평균 - 평균 대기 시간 > 2초인 경우 알림
RequestLatency_P99 밀리초 선택한 기간 동안 수집된 모든 요청 대기 시간 값으로 집계된 평균 P99 요청 대기 시간 평균 - 평균 대기 시간 > 2초인 경우 알림
  • 모델 데이터 수집
메트릭 ID 단위 설명 집계 메서드 분할 가능 기준 메트릭 경고 예제
DataCollectionEventsPerMinute Count 분당 처리된 데이터 수집 이벤트 수 평균 InstanceId, Type -
DataCollectionErrorsPerMinute Count 분당 삭제된 데이터 수집 이벤트 수 평균 InstanceId, 유형, 이유 -

예를 들어, 온라인 배포에 대한 서로 다른 인스턴스 간의 CPU 및/또는 메모리 사용률을 비교할 수 있습니다.

대시보드 및 경고 만들기

Azure Monitor를 사용하면 메트릭을 기반으로 대시보드 및 경고를 만들 수 있습니다.

대시보드 만들기 및 쿼리 시각화

사용자 지정 대시보드를 만들고 온라인 엔드포인트에 대한 메트릭을 포함하여 Azure Portal의 여러 원본에서 메트릭을 시각화할 수 있습니다. 대시보드 만들기 및 쿼리 시각화에 대한 자세한 내용은 로그 데이터를 사용하는 대시보드애플리케이션 데이터를 사용하는 대시보드를 참조하세요.

경고 만들기

온라인 엔드포인트에 대한 중요한 상태 업데이트를 알리기 위해 사용자 지정 경고를 만들 수도 있습니다.

  1. 메트릭 페이지의 오른쪽 위에서 새 경고 규칙을 선택합니다.

    빨간색 상자로 둘러싸인 '새 경고 규칙' 단추를 보여 주는 스크린샷.

  2. 경고가 트리거되어야 하는 시기를 지정할 조건 이름을 선택합니다.

    빨간색 상자로 둘러싸인 '신호 논리 구성' 단추를 보여 주는 스크린샷.

  3. 작업 그룹 추가>작업 그룹 만들기를 선택하여 경고가 트리거될 때 발생하는 작업을 지정합니다.

  4. 경고 규칙 만들기를 선택하여 경고 만들기를 완료합니다.

자세한 내용은 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 작업 영역 만들기의 단계에서 만들 수 있습니다.

  1. Azure Portal에서 엔드포인트가 포함된 리소스 그룹으로 이동한 다음 엔드포인트를 선택합니다.

  2. 페이지 왼쪽의 모니터링 섹션에서 진단 설정을 선택한 다음 설정 추가를 선택합니다.

  3. 사용할 로그 범주를 선택하고 Log Analytics 작업 영역으로 보내기를 선택한 다음 사용할 Log Analytics 작업 영역을 선택합니다. 마지막으로 진단 설정 이름을 입력하고 저장을 선택합니다.

    진단 설정 대화 상자의 스크린샷

    Important

    Log Analytics 작업 영역에 대한 연결을 사용하도록 설정하는 데 최대 1시간이 걸릴 수 있습니다. 다음 단계를 계속하기 전에 한 시간 정도 기다리세요.

  4. 엔드포인트에 채점 요청을 제출합니다. 이 작업은 로그에 항목을 만들어야 합니다.

  5. 온라인 엔드포인트 속성 또는 Log Analytics 작업 영역의 화면 왼쪽에서 로그를 선택합니다.

  6. 자동으로 열리는 쿼리 대화 상자를 닫고 AmlOnlineEndpointConsoleLog를 두 번 클릭합니다. 표시되지 않으면 검색 필드를 사용합니다.

    로그 쿼리를 보여 주는 스크린샷

  7. 실행을 선택합니다.

    쿼리 실행 후 결과의 스크린샷

예제 쿼리

로그를 보는 동안 쿼리 탭에서 쿼리 예를 찾을 수 있습니다. 온라인 엔드포인트를 검색하여 쿼리 예를 찾습니다.

쿼리 예의 스크린샷

로그 열 세부 정보

다음 표는 각 로그에 저장된 데이터에 대한 세부 정보를 제공합니다.

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 진단 및 데이터 수집 사용을 선택해야 합니다.

스튜디오에서 엔드포인트 수준 메트릭 모니터링의 스크린샷